zoukankan      html  css  js  c++  java
  • 创建外向交货单BAPI_OUTB_DELIVERY…

    REPORT  zlm_test_024.

    PARAMETERS: vbeln LIKE vbak-vbeln OBLIGATORY MEMORY ID aun.


    DATA: lf_vbeln     TYPE vbeln_vl,
          lf_num       TYPE vbnum,
          ls_deli      TYPE bapishpdelivnumb,
          lt_deli      TYPE TABLE OF bapishpdelivnumb,
          lt_order     TYPE TABLE OF bapidlvreftosalesorder,
          ls_order     TYPE bapidlvreftosalesorder,
          ls_itm       TYPE bapidlvitemcreated,
          lt_itm       TYPE TABLE OF bapidlvitemcreated,
          ls_ext       TYPE bapiparex,
          lt_extin     TYPE TABLE OF bapiparex,
          lt_extout    TYPE TABLE OF bapiparex,
          ls_ret       TYPE bapiret2,
          lt_return    TYPE TABLE OF bapiret2.

    TYPES:BEGIN OF ty_vbap,
          vbeln  LIKE vbap-vbeln,
          posnr  LIKE vbap-posnr,
          kwmeng LIKE vbap-kwmeng,
          meins  LIKE vbap-meins,
          END OF ty_vbap.

    DATA:it_vbap TYPE TABLE OF ty_vbap.
    DATA:ws_vbap TYPE ty_vbap.

    * SalesOrderItems (here: complete sales order)

    SELECT vbeln posnr kwmeng meins INTO TABLE it_vbap
      FROM vbap WHERE vbeln = vbeln.

    LOOP AT it_vbap INTO ws_vbap.
      ls_order-ref_doc    = ws_vbap-vbeln.
      ls_order-ref_item   = ws_vbap-posnr.
      ls_order-dlv_qty    = ws_vbap-kwmeng.
      ls_order-sales_unit = ws_vbap-meins.
      APPEND ls_order TO lt_order.
    ENDLOOP.

    *ls_order-ref_doc = vbeln.
    *append ls_order to lt_order.

    * ExtensionIn
    ls_ext = 'My additional input'.
    APPEND ls_ext TO lt_extin.

    * Synchronous RFC
    CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
    *   DESTINATION logsys
    *   EXPORTING
    *     SHIP_POINT              =
    *     DUE_DATE                =
    *     DEBUG_FLG               =
      IMPORTING
        delivery                = lf_vbeln
        num_deliveries          = lf_num
      TABLES
        sales_order_items       = lt_order
        extension_in            = lt_extin
        deliveries              = lt_deli
        created_items           = lt_itm
        extension_out           = lt_extout
        return                  = lt_return
              .


    WRITE: / 'Delivery:', lf_vbeln,
           / 'NumDeliveries:', lf_num,
           / 'Deliveries:'.
    LOOP AT lt_deli INTO ls_deli.
      WRITE ls_deli-deliv_numb.
    ENDLOOP.

    IF NOT lt_itm[] IS INITIAL.
      WRITE: / 'CreatedItems:'.
      LOOP AT lt_itm INTO ls_itm.
        WRITE: / ls_itm-ref_doc,
                 ls_itm-ref_item,
                 ls_itm-deliv_numb,
                 ls_itm-deliv_item,
                 ls_itm-material,
                 ls_itm-dlv_qty,
                 ls_itm-sales_unit,
                 ls_itm-sales_unit_iso.
      ENDLOOP.
    ENDIF.

    IF NOT lt_return[] IS INITIAL.
      WRITE: / 'Return:'.
      LOOP AT lt_return INTO ls_ret.
        WRITE: / ls_ret-type, ls_ret-id, ls_ret-number,
                 ls_ret-message,
               /.
      ENDLOOP.
    ENDIF.

    IF NOT lt_extout[] IS INITIAL.
      WRITE: / 'ExtensionOut:'.
      LOOP AT lt_extout INTO ls_ext.
        WRITE: / ls_ext.
      ENDLOOP.
    ENDIF.

    * COMMIT WORK
    IF NOT lf_vbeln IS INITIAL.
      COMMIT WORK.
    ENDIF.

    http://blog.sina.com.cn/sapliumeng
  • 相关阅读:
    centos 6 安装
    DNS介绍
    Saltstack远程执行(四)
    Saltstack数据系统Grains和Pillar(三)
    array_multisort 二维数组排序
    jqgit...
    Redis 创建多个端口 链接redis端口
    百度商桥回话接口
    加ico
    redis 新开端口号
  • 原文地址:https://www.cnblogs.com/senlinmu110/p/3802154.html
Copyright © 2011-2022 走看看