SAP ABAP BADI ACC_DOCUMENT创建财务凭证扩展字段增强
BADI:BADI_ACC_DOCUMENT 用于财务凭证创建时添加BAPI上没有的字段信息。1.创建BADI实施,并拷贝SAP示例提供的代码 。METHODCHANGEDATA: WA_EXTENSIONTYPE BAPIPAREX,EXT_VALUE(960) TYPE C,WA_ACCITTYPE ACCIT,L_REFTYPE REF TO DATA.FIELD-.
·
BADI:BADI_ACC_DOCUMENT 用于财务凭证创建时添加BAPI上没有的字段信息。
1.创建BADI实施,并拷贝SAP示例提供的代码 。METHOD CHANGE
DATA: WA_EXTENSION TYPE BAPIPAREX,
EXT_VALUE(960) TYPE C,
WA_ACCIT TYPE ACCIT,
L_REF TYPE REF TO DATA.
FIELD-SYMBOLS: <L_STRUC> TYPE ANY,
<L_FIELD> TYPE ANY.
SORT C_EXTENSION2 BY STRUCTURE.
LOOP AT C_EXTENSION2 INTO WA_EXTENSION.
AT NEW STRUCTURE.
CREATE DATA L_REF TYPE (WA_EXTENSION-STRUCTURE).
ASSIGN L_REF->* TO <L_STRUC>.
ENDAT.
CONCATENATE WA_EXTENSION-VALUEPART1 WA_EXTENSION-VALUEPART2
WA_EXTENSION-VALUEPART3 WA_EXTENSION-VALUEPART4
INTO EXT_VALUE.
MOVE EXT_VALUE TO <L_STRUC>.
ASSIGN COMPONENT 'POSNR' OF STRUCTURE <L_STRUC> TO <L_FIELD>.
READ TABLE C_ACCIT WITH KEY POSNR = <L_FIELD>
INTO WA_ACCIT.
IF SY-SUBRC IS INITIAL.
MOVE-CORRESPONDING <L_STRUC> TO WA_ACCIT.
MODIFY C_ACCIT FROM WA_ACCIT INDEX SY-TABIX.
ENDIF.
ENDLOOP.
2.设置过滤器
3.创建增强结构并添加所需字段ZFISACC_EXTE 其中POSNR是必须字段。
4.调用BAPI_ACC_DOCUMENT_POST填充增强字段信息。
*扩展字段填写
CLEAR LT_EXTENSION2.
*字段长度超过240个字节,
LT_EXTENSION2-STRUCTURE = 'ZFISACC_EXTE'.
CLEAR:LS_ZFISACC_EXTE.
LS_ZFISACC_EXTE-POSNR = LV_POSNR.
LS_ZFISACC_EXTE-BSCHL = '40'.
* LS_ZFISACC_EXTE-RSTGR = '110'."原因代码
LT_EXTENSION2+30(960) = LS_ZFISACC_EXTE.
APPEND LT_EXTENSION2.
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献4条内容
所有评论(0)