需求:ME21N,ME22N采购订单行项目增加自定义数据-删除原因,用BAPI创建或者修改采购订单,BAPI中没有新增字段,需要添加增强字段
增强字段要通过 BAPI_TE_MEPOITEM 、BAPI_TE_MEPOITEMX两个结构实现
BAPI_TE_MEPOITEMX结构中可能没有新增字段,需要手工添加
STRUCTURE字段用来填写结构名字,这个结构里面就是自定义增强字段,BAPI_PO_CREATE1中可供使用的是以下6个结构名,
* BAPI_TE_MEPOHEADER--采购订单抬头
* BAPI_TE_MEPOHEADERX
* BAPI_TE_MEPOITEM--采购订单行项目
* BAPI_TE_MEPOITEMX
* BAPI_TE_MEPOACCOUNTING--采购订单科目分配
* BAPI_TE_MEPOACCOUNTINGX
VALUEPART1,VALUEPART2,VALUEPART3,VALUEPART4中保存的是自定义字段值和更新标识
FORM add_extensionin USING t_ekpo TYPE table
gt_extensionin TYPE table.
DATA: gs_ekpo TYPE zsipm_ekpo,
gs_mepoitem TYPE bapi_te_mepoitem,
gs_mepoitemx TYPE bapi_te_mepoitemx,
gs_extensionin TYPE bapiparex.
LOOP AT t_ekpo INTO gs_ekpo.
gs_mepoitem-po_item = gs_ekpo-ebelp.
gs_mepoitem-zzpo_dele_rea = gs_ekpo-zzpo_dele_rea.
gs_extensionin-structure = 'BAPI_TE_MEPOITEM'.
gs_extensionin-valuepart1 = gs_mepoitem.
APPEND gs_extensionin TO gt_extensionin.
gs_mepoitemx-po_item = gs_ekpo-ebelp.
gs_mepoitemx-zzpo_dele_rea = 'X'.
gs_extensionin-structure = 'BAPI_TE_MEPOITEMX'.
gs_extensionin-valuepart1 = gs_mepoitemx.
APPEND gs_extensionin TO gt_extensionin.
ENDLOOP.
ENDFORM. "add_extensionin