"修改会计凭证抬头文本
DATA:lt_accchg TYPE TABLE OF accchg WITH HEADER LINE.
REFRESH lt_accchg.
CLEAR :lt_accchg.
lt_accchg-fdname = 'BKTXT'. "抬头文本-字段,也可以换其他字段
lt_accchg-newval = ls_t_text-text. "新的值
APPEND lt_accchg .
CALL FUNCTION 'FI_DOCUMENT_CHANGE'
EXPORTING
"i_awtyp = 'VBRK' "参考过程
"i_awref = "参考凭证号
"i_aworg = gt_data-aworg "参考组织
i_buzei = '001' "行项目
i_belnr = ls_bseg-belnr "会计凭证
i_bukrs = ls_bseg-bukrs "公司代码
i_gjahr = ls_bseg-gjahr "财年
TABLES
t_accchg = lt_accchg
EXCEPTIONS
no_reference = 1
no_document = 2
many_documents = 3
wrong_input = 4
overwrite_creditcard = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
INTO <fs_alv_1>-msg1
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
"修改会计凭证行文本
DATA:wa_bseg LIKE bseg,
lt_buztab TYPE tpit_t_buztab WITH HEADER LINE,
lt_fldtab TYPE tpit_t_fname WITH HEADER LINE,
lt_errtab TYPE tpit_t_errdoc WITH HEADER LINE.
CLEAR:
wa_bseg ,
lt_buztab,
lt_fldtab,
lt_errtab.
REFRESH:
lt_buztab,
lt_fldtab,
lt_errtab.
wa_bseg-sgtxt = <fs_h_text>-text."你要更改的值
lt_buztab-bukrs = ls_bseg-bukrs.
lt_buztab-belnr = ls_bseg-belnr.
lt_buztab-gjahr = ls_bseg-gjahr.
lt_buztab-buzei = ls_bseg-buzei.
lt_buztab-bschl = ls_bseg-bschl. "过账码
lt_buztab-umskz = ls_bseg-umskz."特别总账标示
APPEND lt_buztab .
lt_fldtab-fname = 'SGTXT'."要更改的字段
lt_fldtab-aenkz = 'X'."给该字段打上标示
APPEND lt_fldtab.
CALL FUNCTION 'ZFI_ITEMS_MASS_CHANGE'
EXPORTING
s_bseg = wa_bseg
IMPORTING
errtab = lt_errtab[]
TABLES
it_buztab = lt_buztab
it_fldtab = lt_fldtab
EXCEPTIONS
bdc_errors = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF .
READ TABLE lt_errtab WITH KEY err-msgtyp = 'E'."dc消息處理.
IF sy-subrc = 0.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = lt_errtab-err-msgid
no = lt_errtab-err-msgnr
v1 = lt_errtab-err-msgv1
v2 = lt_errtab-err-msgv2
v3 = lt_errtab-err-msgv3
v4 = lt_errtab-err-msgv4
IMPORTING
msg = <fs_alv_1>-vbeln
EXCEPTIONS
not_found = 1
OTHERS = 2.
ENDIF.