LIKP&LIPS附加结构
增强点: SE18->LE_SHP_DELIVERY_PROC
METHOD if_ex_le_shp_delivery_proc~change_delivery_item.
DATA : lv_likp TYPE zsd_likp01 , "likp增强字段
lt_lips TYPE TABLE OF LIPS , "lips增强字段
ls_lips TYPE LIPS. "lips增强字段
IMPORT lt_lips = lt_lips[] lv_likp = lv_likp FROM MEMORY ID 'SD-02' .
cs_likp-zaddress = lv_likp-zaddress .
cs_likp-zcontact = lv_likp-zcontact .
cs_likp-ztel = lv_likp-ztel .
cs_likp-zord = lv_likp-zord .
cs_likp-zwlgs = lv_likp-zwlgs .
cs_likp-zfws = lv_likp-zfws .
cs_likp-zxsqd = lv_likp-zxsqd .
cs_likp-zcrtid = lv_likp-zcrtid .
READ TABLE lt_lips INTO ls_lips WITH KEY posnr = cs_lips-posnr .
IF sy-subrc = 0 .
cs_lips-zjqbm = ls_lips-zjqbm .
ENDIF .
ENDMETHOD.
在调用BAPI的时候抛内存传值
接口端代码
DATA: lt_so TYPE TABLE OF bapidlvreftosalesorder,
ls_so TYPE bapidlvreftosalesorder,
lt_dn TYPE TABLE OF bapidlvitemcreated,
ls_dn TYPE bapidlvitemcreated,
lt_return TYPE TABLE OF bapiret2,
ls_return TYPE bapiret2.
DATA : lv_vbeln TYPE likp-vbeln,
lv_message TYPE char220.
DATA : lv_likp TYPE zsd_likp01 , "likp增强字段
lt_lips TYPE TABLE OF lips , "lips增强字段
ls_lips TYPE lips. "lips增强字段
*BAPI传参
LOOP AT import_info-mt_sd002_request-import_item[] INTO DATA(ls_item) .
ls_so-ref_doc = import_info-mt_sd002_request-import_head-xblnr .
ls_so-ref_item = ls_item-vgpos .
ls_so-dlv_qty = ls_item-lfimg .
ls_so-sales_unit = ls_item-meins .
APPEND ls_so TO lt_so .
*扩展字段处理.
IF sy-tabix = '1' .
lv_likp = CORRESPONDING #( import_info-mt_sd002_request-import_head ) .
ENDIF .
ls_lips-posnr = ls_item-vgpos .
ls_lips-zjqbm = ls_item-zjqbm .
APPEND ls_lips TO lt_lips .
CLEAR : ls_item ,ls_so ,ls_lips .
ENDLOOP .
*扩展字段跑内存到增强点->ZCL_IM_CL_IM_LE_SHP_DE_PRO->CHANGE_DELIVERY_ITEM
EXPORT lt_lips lv_likp TO MEMORY ID 'SD-02' .
*调用函数创建交货单
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
IMPORTING
delivery = lv_vbeln
TABLES
sales_order_items = lt_so
return = lt_return.
*判断是否创建成功
LOOP AT lt_return INTO ls_return WHERE type CA 'AE' .
lv_message = lv_message && ls_return-message .
CLEAR : ls_return .
ENDLOOP .
IF sy-subrc = 0 .
return_info-mt_sd002_response-return_head-ex_msginfo = '交货单创建失败:' && lv_message .
return_info-mt_sd002_response-return_head-ex_msgtype = 'E' .
ELSE .
return_info-mt_sd002_response-return_head-ex_msginfo = '交货单创建成功' .
return_info-mt_sd002_response-return_head-ex_msgtype = 'S' .
LOOP AT import_info-mt_sd002_request-import_item[] INTO ls_item .
ls_sd002_reponse_ls-vbeln = lv_vbeln .
ls_sd002_reponse_ls-posnr = ls_item-vgpos .
APPEND ls_sd002_reponse_ls TO return_info-mt_sd002_response-return_ittem .
CLEAR : ls_item .
ENDLOOP .
ENDIF .
FREE MEMORY ID 'SD-02' .