zoukankan      html  css  js  c++  java
  • ABAP BAPI 销售订单生产交货单函数

    TYPESBEGIN OF ty_so,
             vbeln LIKE  vbap-vbeln,
             posnr LIKE  vbap-posnr,
           END OF ty_so.

    FORM frm_create_dn  USING    u_so
                        CHANGING c_dn c_result.
      DATA:l_vbeln LIKE vbap-vbeln,
           l_posnr LIKE vbap-posnr.

      DATA: lt_so_item TYPE TABLE OF bapidlvreftosalesorder,
            ls_so_item TYPE bapidlvreftosalesorder,

            lt_return  TYPE TABLE OF bapiret2,
            ls_return  TYPE bapiret2.
      DATA: gt_so TYPE ty_so OCCURS 0,
            wa_so TYPE ty_so.

      CLEAR lt_so_item.
      SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_so
        FROM vbap
        WHERE vbeln EQ u_so.

      LOOP AT gt_so INTO wa_so.
        ls_so_item-ref_doc = wa_so-vbeln.
        ls_so_item-ref_item = wa_so-posnr.
        APPEND ls_so_item TO lt_so_item.
        CLEAR ls_so_item.
      ENDLOOP.


      CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
        IMPORTING
          delivery          = c_dn
        TABLES
          sales_order_items = lt_so_item
          return            = lt_return.

      READ TABLE lt_return INTO ls_return WITH KEY type 'E'.

      IF sy-subrc EQ 0.
        c_result = ls_return-message.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
    *       IMPORTING
    *         RETURN        =
          .

        EXPORT lt_return TO MEMORY ID 'LT_RETURN'.
        "PERFORM frm_show_message.
        RETURN.
      ELSE.
        c_result = ls_return-message.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait 'X'.
      ENDIF.

    ENDFORM.

  • 相关阅读:
    C++ string用法
    C++ 静态变量及函数的生命周期
    C++ const的用法和作用
    C++ 指针和引用的区别
    C++ struct 和 Class的区别
    C++对象模型-构造函数语意学
    大端模式与小端模式、网络字节顺序与主机字节顺序
    Spring Boot系列——Spring Boot如何启动
    分库分表利器——sharding-sphere
    并发和多线程-八面玲珑的synchronized
  • 原文地址:https://www.cnblogs.com/eagle-dtq/p/5467278.html
Copyright © 2011-2022 走看看