SAP_ABAP_SD_BAPI清单案例教程——交货单创建_BAPI_OUTB_DELIVERY_CREATE_SLS_VL01N_S4版本

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提参考ALV/REPORT|SMARTFROM|SCREEN|OLE|BAPI|BDC|PI|IDOC|RFC|API|WEBSERVICE|Enhancement|UserExits|Badi|Debughttps://blog.csdn.net/java_zhong1990/article/details/132469977


一 背景说明


        SAP BAPI(Business Application Programming Interface)是SAP系统中的一组规范和标准,用于从SAP系统中获取数据、输入数据和更新数据。这些API允许开发者以编程方式与SAP系统交互,而无需编写大量的自定义代码。 

 1.1 BAPI清单

销售订单创建BAPI_BILLINGDOC_CREATEMULTIPLE
交货单创建BAPI_OUTB_DELIVERY_CREATE_SLS
交货单过帐WS_DELIVERY_UPDATE
销售订单开票BAPI_BILLINGDOC_CREATEMULTIPLE

二 实施步骤


2.1 Copy代码 直接可使用

FORM create_delivery .

    DATA: lv_vstel TYPE vbap-vstel.
    DATA: delivery TYPE bapishpdelivnumb-deliv_numb.

    DATA: num_deliveries    TYPE bapidlvcreateheader-num_deliveries.

    DATA: sales_order_items TYPE TABLE OF bapidlvreftosalesorder.
    DATA: ls_sales_order             TYPE bapidlvreftosalesorder.

    DATA: extension_in      TYPE TABLE OF bapiparex.
    DATA: ls_extension_in            TYPE bapiparex.

    DATA: extension_out     TYPE TABLE OF bapiparex.
    DATA: ls_extension_out           TYPE bapiparex.

    DATA: return TYPE TABLE OF bapiret2.
    DATA: ls_return       TYPE bapiret2.

    DATA: zlikp_extension TYPE zlikp_extension.
    DATA: zlips_extension TYPE zlips_extension.

    DATA: message TYPE string.
    DATA: output  TYPE string.
    DATA: ls_index TYPE i.
    CLEAR: ls_index.

    CLEAR:  delivery, num_deliveries, zlikp_extension.
    REFRESH: sales_order_items, extension_in, extension_out, return.

    IF gs_header_likp IS NOT INITIAL.
      MOVE-CORRESPONDING gs_header_likp TO zlikp_extension.
    ENDIF.

    LOOP AT gt_create_lips INTO gs_create_lips.
      CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
        EXPORTING
          input          = gs_create_lips-vrkme
          language       = sy-langu
        IMPORTING
          output         = output
        EXCEPTIONS
          unit_not_found = 1
          OTHERS         = 2.
      IF output IS NOT INITIAL.
        gs_create_lips-vrkme = output.
      ENDIF.

      IF gs_header_likp IS INITIAL.
        READ TABLE gt_lips_create INTO DATA(ls_lips_create) WITH KEY index = gs_create_lips-index.
        IF sy-subrc = 0.
          READ TABLE lt_address INTO DATA(ls_address) WITH KEY ship_item = ls_lips_create-ship_item.
          MOVE-CORRESPONDING ls_address TO zlikp_extension.

          zlikp_extension-zzvendor  = zlikp_extension-zzvendor.
          ls_extension_in-structure = 'LIKP'.
          ls_extension_in+30        = zlikp_extension.

          APPEND ls_extension_in TO extension_in.
        ENDIF.
      ENDIF.

	  "-------------------------------------------- 	
   
      IF lv_vstel IS INITIAL.
        lv_vstel = gs_create_lips-vstel. "装运点
      ENDIF.

      CLEAR: ls_sales_order.
      ls_sales_order-ref_doc    = gs_create_lips-vbeln. "销售订单
      ls_sales_order-ref_item   = gs_create_lips-posnr. "销售订单行项目
      ls_sales_order-dlv_qty    = gs_create_lips-kwmeng."数量
      ls_sales_order-sales_unit = gs_create_lips-vrkme. "单位
      APPEND ls_sales_order TO sales_order_items.

	  CLEAR: zlips_extension.
      ls_extension_in-structure = 'LIPS'.
      zlips_extension-zlgort    = gs_create_lips-lgort.
      zlips_extension-vbeln     = ls_sales_order-ref_doc.
      zlips_extension-posnr     = ls_sales_order-ref_item.
      ls_extension_in+30        = zlips_extension.
      APPEND ls_extension_in TO extension_in.

    ENDLOOP.


    EXPORT extension_in    FROM extension_in    TO MEMORY ID 'EXTENSION_IN'.
    EXPORT zlikp_extension FROM zlikp_extension TO MEMORY ID 'ZLIKP_EXTENSION'.

    CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
      EXPORTING
        ship_point        = lv_vstel "装运点
      IMPORTING
        delivery          = delivery "交货单号
        num_deliveries    = num_deliveries
      TABLES
        sales_order_items = sales_order_items
        extension_in      = extension_in 
        extension_out     = extension_out
        return            = return.

    IF delivery IS NOT INITIAL.

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

    ELSE.

      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

    ENDIF.

	"-------------------------------------------- 	

  ENDFORM.

2.2 VL01N交货

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry谈企业数字化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值