FB02修改抬头字段函数:FI_DOCUMENT_CHANGE
DATA:lv_bukrs TYPE bukrs,
lv_belnr TYPE belnr_d,
lv_gjahr TYPE gjahr,
ls_accchg TYPE accchg,
lt_accchg TYPE TABLE OF accchg.
lv_bukrs = ls_fprl_item-bukrs.
lv_belnr = ls_fprl_item-vblnr_pay.
lv_gjahr = ls_fprl_item-zaldt+0(4).
ls_accchg-fdname = 'BKTXT'. "可替换成其他字段
ls_accchg-newval = lv_sgtxt.
APPEND ls_accchg TO lt_accchg.
CALL FUNCTION 'FI_DOCUMENT_CHANGE'
EXPORTING
i_bukrs = lv_bukrs
i_belnr = lv_belnr
i_gjahr = lv_gjahr
TABLES
t_accchg = lt_accchg
EXCEPTIONS
no_reference = 1
no_document = 2
many_documents = 3
wrong_input = 4
overwrite_creditcard = 5
OTHERS = 6.
FB02修改行项目字段函数:FI_ITEMS_MASS_CHANGE
DATA:ls_bseg TYPE bseg,
ls_buztab TYPE tpit_buztab,
lt_buztab TYPE TABLE OF tpit_buztab,
ls_fldtab TYPE tpit_fname,
lt_fldtab TYPE TABLE OF tpit_fname.
DATA:lt_return TYPE TABLE OF tpit_errdoc,
ls_return TYPE tpit_errdoc.
LOOP AT lt_bseg INTO DATA(ls_bseg2).
CLEAR:ls_buztab,lt_buztab,ls_fldtab,lt_fldtab,ls_return,lt_return.
MOVE-CORRESPONDING ls_bseg2 TO ls_buztab.
APPEND ls_buztab TO lt_buztab.
ls_fldtab-fname = 'SGTXT'."可以追加或变更其他字段
ls_fldtab-aenkz = 'X'.
APPEND ls_fldtab TO lt_fldtab.
"调取BAPI更改文本
CALL FUNCTION 'FI_ITEMS_MASS_CHANGE'
EXPORTING
s_bseg = ls_bseg
IMPORTING
errtab = lt_return
TABLES
it_buztab = lt_buztab
it_fldtab = lt_fldtab
EXCEPTIONS
bdc_errors = 1
OTHERS = 2.
IF lt_return IS NOT INITIAL.
READ TABLE lt_return INTO ls_return INDEX 1.
CLEAR:l_text.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = ls_return-err-msgid
no = ls_return-err-msgnr
v1 = ls_return-err-msgv1
v2 = ls_return-err-msgv2
v3 = ls_return-err-msgv3
v4 = ls_return-err-msgv4
IMPORTING
msg = l_text
EXCEPTIONS
not_found = 1
OTHERS = 2.
ENDIF.
CLEAR:ls_bseg2.
"等待2秒,防止凭证被锁
WAIT UP TO 2 SECONDS.
ENDLOOP.