zoukankan      html  css  js  c++  java
  • DN创建

    1. 参考采购订单创建DN : 

    BAPI_OUTB_DELIVERY_CREATE_STO
    FUNCTION zmmfm0202.
    *"----------------------------------------------------------------------
    *"*"本地接口:
    *"  EXPORTING
    *"     REFERENCE(O_RETURN) TYPE  ZMMS0021
    *"  TABLES
    *"      IT_ITEM STRUCTURE  ZMMS0185
    *"----------------------------------------------------------------------
      DATA:lt_stock_items TYPE TABLE OF bapidlvreftosto.
      DATA:ls_stock_items TYPE bapidlvreftosto.
      DATA:lt_created_items TYPE TABLE OF bapidlvitemcreated.
      DATA:ls_created_items TYPE bapidlvitemcreated.
      DATA:lv_delivery TYPE bapishpdelivnumb-deliv_numb.
      DATA:lv_vstel TYPE vstel.
      DATA:lv_ledat TYPE ledat.
      DATA:lt_return TYPE TABLE OF bapiret2.
    
    
      LOOP AT it_item INTO DATA(ls_item).
        ls_stock_items-ref_doc = ls_item-ebeln."参考凭证
        ls_stock_items-ref_item = ls_item-ebelp."参考项
        ls_stock_items-dlv_qty = ls_item-menge."数量
        ls_stock_items-sales_unit = ls_item-meins."数量单位
        APPEND ls_stock_items TO lt_stock_items.
    
        ls_created_items-ref_doc = ls_item-ebeln."参考凭证
        ls_created_items-ref_item = ls_item-ebelp."参考项
        ls_created_items-material = ls_item-matnr."物料编号
        ls_created_items-material_long = ls_item-matnr."物料编号
        ls_created_items-dlv_qty = ls_item-menge."数量
        ls_created_items-sales_unit = ls_item-meins."数量单位
        APPEND ls_created_items TO lt_created_items.
      ENDLOOP.
    
      CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_STO'
        EXPORTING
          ship_point        = lv_vstel
          due_date          = lv_ledat
        IMPORTING
          delivery          = lv_delivery
        TABLES
          stock_trans_items = lt_stock_items
          created_items     = lt_created_items
          return            = lt_return.
    
      DELETE lt_return WHERE type = 'E' AND id = 'BAPI' AND number = '001'.
    
      "20190628 需求
      READ TABLE lt_return INTO DATA(ls_return) WITH KEY id = 'VLBAPI'
                                                           number = '061'
                                                           type   = 'I'.
      IF sy-subrc = 0.
        o_return-message = ls_return-message.
    
        "创建失败
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    
        o_return-type = 'E'.
        CONCATENATE '交货单创建失败:' o_return-message INTO o_return-message.
      ELSE.
        LOOP AT lt_return INTO ls_return WHERE type = 'E'.
          CONCATENATE o_return-message ls_return-message INTO o_return-message SEPARATED BY '/'.
        ENDLOOP.
    
        IF sy-subrc = 0.
    
          "创建失败
          CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    
          o_return-type = 'E'.
          CONCATENATE '交货单创建失败:' o_return-message INTO o_return-message.
    
        ELSE.
          "创建成功
          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
            EXPORTING
              wait = 'X'.
    
          o_return-zdjh = lv_delivery."交货单
          o_return-type = 'S'.
          o_return-message = '交货单创建成功'.
    
        ENDIF.
      ENDIF.
    ENDFUNCTION.

    2. 参考销售订单创建DN : 

    BAPI_OUTB_DELIVERY_CREATE_SLS
    FUNCTION zsdfm0032.
    *"----------------------------------------------------------------------
    *"*"本地接口:
    *"  EXPORTING
    *"     REFERENCE(O_RETURN) TYPE  ZMMS0021
    *"  TABLES
    *"      IT_ITEM STRUCTURE  ZSDS0011
    *"----------------------------------------------------------------------
    ***********************************************
    *     Program     :  参考SO创建DN 控制到行项目数量
    *******************************************************************
    *     Modified Recorder :
    *     Date         C#NO        Author                Content
    *     -----------  -------    ------------------     ---------------
    *   修改日期    修改产生请求    修改人                修改内容描述
    ********************************************************************
      DATA:lv_delivery TYPE bapishpdelivnumb-deliv_numb,
           lv_num      TYPE bapidlvcreateheader-num_deliveries.
      DATA:lv_vstel  TYPE vstel.
      DATA:lv_ledat  TYPE ledat.
      DATA:lt_return TYPE TABLE OF bapiret2.
    
    
      DATA:lv_shippoint TYPE bapidlvcreateheader-ship_point,
           lv_duedate   TYPE bapidlvcreateheader-due_date.
      DATA:lt_so_items LIKE TABLE OF bapidlvreftosalesorder,
           ls_so_items LIKE bapidlvreftosalesorder.
    
    
      LOOP AT it_item INTO DATA(ls_item).
        ls_so_items-ref_doc  = ls_item-vbeln."参考凭证
        ls_so_items-ref_item = ls_item-posnr."参考项
        ls_so_items-dlv_qty  = ls_item-menge."数量
        ls_so_items-sales_unit = ls_item-meins."数量单位
        APPEND ls_so_items TO lt_so_items.
        CLEAR:ls_so_items.
    
        IF lv_vstel IS INITIAL.
          SELECT SINGLE vstel INTO lv_vstel
            FROM vbap
           WHERE vbeln = ls_item-vbeln
             AND posnr = ls_item-posnr.
        ENDIF.
      ENDLOOP.
    
      lv_shippoint = lv_vstel.
    *---Call BAPI Function
      CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
        EXPORTING
          ship_point        = lv_shippoint
          due_date          = sy-datum
        IMPORTING
          delivery          = lv_delivery
          num_deliveries    = lv_num
        TABLES
          sales_order_items = lt_so_items
          return            = lt_return.
    
      LOOP AT lt_return INTO DATA(ls_return) WHERE type  = 'A'
                                                 OR type = 'E'
                                                 OR type = 'X'.
        o_return-type  ='E'.
        CONCATENATE o_return-message ls_return-message INTO o_return-message SEPARATED BY '/'.
        EXIT.
      ENDLOOP.
    
    
      IF o_return-type  ='E'.
        "创建失败
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
        CONCATENATE '交货单创建失败:' o_return-message INTO o_return-message.
      ELSE.
        "创建成功
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait = 'X'.
        o_return-zdjh = lv_delivery."交货单
        o_return-type = 'S'.
        o_return-message = '交货单创建成功'.
      ENDIF.
    
    ENDFUNCTION.
     
  • 相关阅读:
    tomcat加载项目原理解惑
    英语口语大全
    ubuntu中wubi正在下载ubuntu11.04desktopi386.iso
    Strust2获得session和request
    字符串转成对象
    DevExpress控件使用
    DevExpress控件之GridControl控件(控件篇)
    ASP.NET AJAX + JSON 实现对象调用
    WinForm窗体之间交互的一些方法[转]
    barmanager设置
  • 原文地址:https://www.cnblogs.com/rainysblog/p/11593368.html
Copyright © 2011-2022 走看看