abap DN STO

创建交货单有如下场景以及对应BAPI,如下:

1)根据销售订单 / 销售计划协议创建外向交货单,对应Tcode VL01N,调用BAPI_OUTB_DELIVERY_CREATE_SLS 或者 BAPI_DELIVERYPROCESSING_EXEC(REQUEST-DOCUMENT_TYPE = ‘A’ ”销售订单)

2)根据采购订单 / 采购计划协议创建内向交货单,对应Tcode VL31N,调用BAPI_DELIVERYPROCESSING_EXEC(REQUEST-DOCUMENT_TYPE = ‘B’ “采购订单)

3)根据公司间转储订单 / 采购计划协议创建外向交货单,对应Tcode VL10D,调用BAPI_OUTB_DELIVERY_CREATE_STO

4)根据公司间转储订单/ 采购计划协议的外向交货单创建内向交货单,对应外向交货单抬头的交货输出,配置输出类型SPED,对应处理程序 /SPE/STO_ID_PROCESSING 例程 STO_ID_CREATION

CLEAR SHIP_POINT.
SELECT SINGLE VSTEL INTO SHIP_POINT FROM TVSTZ WHERE WERKS = WA_HEAD-WERKS2.
IF SHIP_POINT IS INITIAL.
SHIP_POINT = WA_HEAD-WERKS2.
ENDIF.

    LOOP AT IT_SHOW INTO WA_SHOW WHERE SEL = 'X' AND BANFN = WA_HEAD-BANFN.

      CLEAR LS_ZSD_JHD_H.
      LS_ZSD_JHD_H-VBELN2     = WA_SHOW-EBELN.
      LS_ZSD_JHD_H-ZFYGS      = WA_SHOW-ZFYGS.
      LS_ZSD_JHD_H-ZFYGSCO    = WA_SHOW-ZFYGSCO.
      APPEND LS_ZSD_JHD_H TO LT_ZSD_JHD_H.

      CLEAR LS_ITEM_EXTENSION.
      LS_ITEM_EXTENSION-REF_DOC   = WA_SHOW-EBELN.
      LS_ITEM_EXTENSION-POSNR     = WA_SHOW-EBELP.
      LS_ITEM_EXTENSION-ZFYGS     = WA_SHOW-ZFYGS.
      LS_ITEM_EXTENSION-ZFYGSCO   = WA_SHOW-ZFYGSCO.
      LS_ITEM_EXTENSION-LGORT     = WA_SHOW-LGORT2.
      LS_ITEM_EXTENSION-MATNR     = WA_SHOW-MATNR.

      LS_ITEM-REF_DOC             = WA_SHOW-EBELN.
      LS_ITEM-REF_ITEM            = WA_SHOW-EBELP.
      LS_ITEM-DLV_QTY             = WA_SHOW-MENGE.
      LS_ITEM-SALES_UNIT          = WA_SHOW-MEINS.

      CLEAR LS_EXT.
      LS_EXT-STRUCTURE  = 'ZOUTB_DLV_EXTENSION'.
      LS_EXT-VALUEPART1 = LS_ITEM_EXTENSION.
      APPEND LS_EXT TO LT_EXTIN.

      APPEND LS_ITEM_EXTENSION TO LT_ITEM_EXTENSION. " 关务平台用
      APPEND LS_ITEM TO LT_ITEM.                     " 关务平台 --- 20191130

      CLEAR STOCK_TRANS_ITEMS.
      STOCK_TRANS_ITEMS-REF_DOC    = WA_SHOW-EBELN.
      STOCK_TRANS_ITEMS-REF_ITEM   = WA_SHOW-EBELP.
      STOCK_TRANS_ITEMS-DLV_QTY    = WA_SHOW-MENGE.
      STOCK_TRANS_ITEMS-SALES_UNIT = WA_SHOW-MEINS.
      APPEND STOCK_TRANS_ITEMS.

    ENDLOOP.

***** 全局变量赋值
CALL FUNCTION ‘ZFSD_025’
TABLES
IT_HEADER = LT_ZSD_JHD_H
IT_ITEMS = LT_ITEM_EXTENSION
IT_VBPAVB = LT_VBPA .

    IF DUE_DATE IS NOT INITIAL.
      EXPORT BLDAT = DUE_DATE TO MEMORY ID 'LIKP-BLDAT_2020'.
    ENDIF.

    CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_STO'
      EXPORTING
        SHIP_POINT        = SHIP_POINT
        DUE_DATE          = DUE_DATE
      IMPORTING
        DELIVERY          = DELIVERY
        NUM_DELIVERIES    = NUM_DELIVERIES
      TABLES
        STOCK_TRANS_ITEMS = STOCK_TRANS_ITEMS
        DELIVERIES        = DELIVERIES
        CREATED_ITEMS     = CREATED_ITEMS
        EXTENSION_OUT     = EXTENSION_OUT
        RETURN            = SD_RETURN.
    IF SY-SUBRC EQ 0.
      LOOP AT SD_RETURN WHERE TYPE = 'A' OR TYPE = 'E'.
      ENDLOOP.
      IF SY-SUBRC NE 0.
        IF DELIVERY IS NOT INITIAL.
          LV_FLAG2 = 'Y'.
        ENDIF.
      ENDIF.
    ENDIF.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值