• ABAP 参照SO item 创建DN


    DATA: it_soitem TYPE TABLE OF bapidlvreftosalesorder,
            is_soitem TYPE bapidlvreftosalesorder,
            it_return TYPE TABLE OF bapiret2,
            is_return TYPE bapiret2,

              l_dn TYPE bapishpdelivnumb-deliv_numb.

      DATA: l_date TYPE bapidlvcreateheader-due_date.

      l_date = '99991231'.

        LOOP AT gt_out INTO gs_out WHERE vbeln = ls_so-vbeln  AND street = ls_so-street AND check_box = 'X' AND text = ''.
          is_soitem-ref_doc  = gs_out-vbeln.
          is_soitem-ref_item = gs_out-posnr.
          is_soitem-dlv_qty  = gs_out-pikmg.
          is_soitem-sales_unit = gs_out-meins.
          APPEND is_soitem TO it_soitem.
        ENDLOOP.

        IF it_soitem IS NOT INITIAL.
          CLEAR l_dn.
          CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
            EXPORTING
              due_date          = l_date
            IMPORTING
              delivery          = l_dn
    *         NUM_DELIVERIES    =
            TABLES
              sales_order_items = it_soitem
    *         SERIAL_NUMBERS    =
    *         EXTENSION_IN      =
    *         DELIVERIES        =
              created_items     = lt_create
    *         EXTENSION_OUT     =
              return            = it_return.

          CLEAR    lv_message.
          LOOP AT it_return INTO is_return WHERE type = 'E' OR type = 'A'.
            CALL FUNCTION 'MESSAGE_TEXT_BUILD'
              EXPORTING
                msgid               = is_return-id
                msgnr               = is_return-number
                msgv1               = is_return-message_v1
                msgv2               = is_return-message_v2
                msgv3               = is_return-message_v3
                msgv4               = is_return-message_v4
              IMPORTING
                message_text_output = lv_message.
            CONCATENATE  gs_out-text  lv_message ';' INTO  gs_out-text.
          ENDLOOP.
          IF sy-subrc = 0.
            CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
            MODIFY gt_out FROM gs_out TRANSPORTING text
               WHERE check_box = 'X' AND vbeln = ls_so-vbeln .

          ELSE.

              CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                EXPORTING
                  wait = 'X'.

      Endif.

    闫默涵
  • 相关阅读:
    带你玩转Flink流批一体分布式实时处理引擎
    都2022年了,你的前端工具集应该有vueuse
    云图说|图解DGC:基于华为智能数据湖解决方案的一体化数据治理平台
    面试官: Flink双流JOIN了解吗? 简单说说其实现原理
    4种Spring Boot 实现通用 Auth 认证方式
    这8个JS 新功能,你应该去尝试一下
    Scrum Master需要具备哪些能力和经验
    dart系列之:时间你慢点走,我要在dart中抓住你
    dart系列之:数学什么的就是小意思,看我dart如何玩转它
    dart系列之:还在为编码解码而烦恼吗?用dart试试
  • 原文地址:https://www.cnblogs.com/yanmohan/p/14549046.html
Copyright © 2020-2023  润新知