交货单BAPI_OUTB_DELIVERY_CHANGE附加增强字段
Posted 想发财的小夏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交货单BAPI_OUTB_DELIVERY_CHANGE附加增强字段相关的知识,希望对你有一定的参考价值。
需求:通过BAPI_OUTB_DELIVERY_CHANGE,更新交货单增强字段。
我们发现bapi中含有参数EXTENSION2
通过在函数中寻找,找到对应位置SMOD_V50B0001,se19创建实施
将对应参数传入标准程序内存中
对应代码如下:
FIELD-SYMBOLS: <fs_value> TYPE any.
"修改交货单抬头字段
LOOP AT extension2 INTO DATA(ls_ext2) WHERE param = 'LIKP'.
ASSIGN COMPONENT ls_ext2-field OF STRUCTURE cs_vbkok TO <fs_value>.
IF <fs_value> IS ASSIGNED.
<fs_value> = ls_ext2-value.
ENDIF.
UNASSIGN <fs_value>.
ENDLOOP.
"修改交货单行项目字段
LOOP AT ct_vbpok ASSIGNING FIELD-SYMBOL(<fs_vbpok>).
LOOP AT extension2 INTO ls_ext2 WHERE param = 'LIPS'
AND row = sy-tabix.
ASSIGN COMPONENT ls_ext2-field OF STRUCTURE <fs_vbpok> TO <fs_value>.
IF <fs_value> IS ASSIGNED.
<fs_value> = ls_ext2-value.
ENDIF.
UNASSIGN <fs_value>.
ENDLOOP.
ENDLOOP.
创建增强实施LE_SHP_DELIVERY_UPDATE,将内存中的字段赋值到表中
分为head和item
DATA: lt_table TYPE TABLE OF dfies.
CASE sy-tcode.
WHEN 'ZSDB003' OR 'SE38'.
CALL FUNCTION 'DDIF_NAMETAB_GET'
EXPORTING
tabname = 'ZSSD022'
TABLES
dfies_tab = lt_table
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc EQ 0.
LOOP AT lt_table INTO DATA(ls_table).
ASSIGN COMPONENT ls_table-fieldname OF STRUCTURE is_vbpok TO FIELD-SYMBOL(<fs_vbpok>).
ASSIGN COMPONENT ls_table-fieldname OF STRUCTURE cs_lips TO FIELD-SYMBOL(<fs_lips>).
IF <fs_lips> IS ASSIGNED.
<fs_lips> = <fs_vbpok>.
ENDIF.
UNASSIGN:<fs_lips>,<fs_vbpok>.
ENDLOOP.
ENDIF.
WHEN OTHERS.
ENDCASE.
即可。
以上是关于交货单BAPI_OUTB_DELIVERY_CHANGE附加增强字段的主要内容,如果未能解决你的问题,请参考以下文章