定义相关变量、结构、表
DATA : W_BSEG TYPE BSEG, “ 修改数据的内容结构
W_MESSAGE TYPE T100-TEXT. “ 返回的消息接收
DATA : IT_ERRTAB TYPE TPIT_T_ERRDOC WITH HEADER LINE,
IT_FLDTAB TYPE TPIT_T_FNAME WITH HEADER LINE,
IT_BUZTAB TYPE TPIT_T_BUZTAB WITH HEADER LINE.
2、维护要更新的凭证文本字段名
* 更改需要更新凭证字段的字段名,多个就添加多个
IT_FLDTAB-FNAME = 'ZUONR'. “ 字段名称
APPEND IT_FLDTAB.
CLEAR IT_FLDTAB.
3、调用函数前数据准备
* 数据初始化
CLEAR: IT_ERRTAB[],
IT_BUZTAB[].
CLEAR: W_BSEG.
* 要更新的字段的值,根据实际情况赋值
W_BSEG-ZUONR = LS_IDGT_INFO-GTVBELN. " 此业务场景的更新值
* 固定数据获取参照,按具体更新条件取出以下数据信息即可
SELECT SINGLE
BUKRS
BELNR
GJAHR
BUZEI
KOART
UMSKZ
BSCHL
MWART
MWSKZ
FROM BSEG
INTO CORRESPONDING FIELDS OF IT_BUZTAB
WHERE BUKRS = LS_BKPF-BUKRS " 公司代码
AND BELNR = LS_BKPF-BELNR " 会计凭证号码
AND GJAHR = LS_BKPF-GJAHR " 会计凭证号码
AND KUNNR <> '' " 客户编号 *此条件为具体业务添加
. "
IF SY-SUBRC = 0.
APPEND IT_BUZTAB.
CLEAR IT_BUZTAB.
ENDIF.
3、函数调用处理
CALL FUNCTION 'FI_ITEMS_MASS_CHANGE'
EXPORTING
S_BSEG = W_BSEG
IMPORTING
ERRTAB = IT_ERRTAB[] " 返回消息
TABLES
IT_BUZTAB = IT_BUZTAB
IT_FLDTAB = IT_FLDTAB
EXCEPTIONS
BDC_ERRORS = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
PERFORM GENERATE_MESSAGE. “ 消息信息处理
MESSAGE W_MESSAGE TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
3、返回消息信息处理
FORM GENERATE_MESSAGE.
CLEAR W_MESSAGE. “ 清空一下消息文本
READ TABLE IT_ERRTAB INDEX 1.
IF SY-SUBRC = 0.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_ERRTAB-ERR-MSGID
LANG = SY-LANGU
NO = IT_ERRTAB-ERR-MSGNR
V1 = IT_ERRTAB-ERR-MSGV1
V2 = IT_ERRTAB-ERR-MSGV2
V3 = IT_ERRTAB-ERR-MSGV3
V4 = IT_ERRTAB-ERR-MSGV4
IMPORTING
MSG = W_MESSAGE “ 消息文本整理返回
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
ENDIF.
ENDFORM.
————————————————
版权声明:本文为CSDN博主「你说是什么就是什么」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z_x_xing_/article/details/90080111