交货单创建BAPI扩展字段增强

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' .
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值