zoukankan      html  css  js  c++  java
  • WMS函数组: 7.交货单行项目除

    FUNCTION ZRFC_WMS_DELIVERY_DELETE.
    *"----------------------------------------------------------------------
    *"*"Local interface:
    *"  TABLES
    *"      ITAB_DETAIL STRUCTURE  ZVBPOK OPTIONAL
    *"      ITAB_RETURN STRUCTURE  ZINTERFACE_RETURN OPTIONAL
    *"      ET_LOG STRUCTURE  BAPIRET2 OPTIONAL
    *"----------------------------------------------------------------------




       DATA: WA_HDATA    LIKE BAPIOBDLVHDRCHG,
             WA_HCONT    LIKE BAPIOBDLVHDRCTRLCHG,
             D_DELIVY    LIKE BAPIOBDLVHDRCHG-DELIV_NUMB,
             ITEMCTRL LIKE BAPIOBDLVITEMCTRLCHG OCCURS 0 WITH HEADER LINE,
             ITEMDATA LIKE  BAPIOBDLVITEMCHG OCCURS 0 WITH HEADER LINE,
             IT_BAPIRET2 LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.




       DATA: ITAB_HEADER LIKE ZVBKOK OCCURS 0 WITH HEADER LINE,
             ITH LIKE ITAB_HEADER ,
             TBL_ITEMS LIKE ITAB_DETAIL,
             IP_VBELN TYPE VBELN,
             VIP TYPE VBELN,
             IP_POSNR TYPE POSNR.


    *--------------------CHA JWY_20170811
       SORT ITAB_DETAIL.
    *--------------------CHA JWY_20170811
       LOOP AT ITAB_DETAIL.
         MOVE ITAB_DETAIL-VBELN TO ITAB_HEADER-VBELN.
        MOVE ITAB_DETAIL-VBELN TO ITAB_HEADER-WMS_NO.

        MOVE ITAB_DETAIL-VBELN TO IP_VBELN.
         PERFORM F_ADD_ZERO USING IP_VBELN.

         MOVE ITAB_DETAIL-POSNR TO IP_POSNR.
         PERFORM F_ADD_ZERO USING IP_POSNR.

         SELECT SINGLE VBELN INTO VIP FROM LIPS WHERE VBELN = IP_VBELN AND POSNR = IP_POSNR.
         IF SY-SUBRC = 0.
          COLLECT ITAB_HEADER.
        ELSE.
           ITAB_RETURN-BILLNO = ITAB_DETAIL-VBELN.
          ITAB_RETURN-SAPNO = ITAB_DETAIL-POSNR.
          ITAB_RETURN-SUBRC = -1.
           ITAB_RETURN-MSG = '交货项目不存在'.
          APPEND ITAB_RETURN.
        ENDIF.
      ENDLOOP.

    *--------------------CHA JWY_20170811
       SORT ITAB_HEADER.
      SORT ITAB_DETAIL.
    *--------------------CHA JWY_20170811
       LOOP AT  ITAB_HEADER INTO ITH.

         CLEAR: WA_HDATA, WA_HCONT, D_DELIVY, IT_BAPIRET2.
         WA_HDATA-DELIV_NUMB = ITH-VBELN.
         WA_HCONT-DELIV_NUMB = ITH-VBELN.

         LOOP AT ITAB_DETAIL INTO TBL_ITEMS WHERE VBELN = ITH-VBELN .
          ITEMCTRL-DELIV_NUMB = ITH-VBELN.
           ITEMCTRL-DELIV_ITEM = TBL_ITEMS-POSNR.
          ITEMCTRL-DEL_ITEM = 'X'.
           APPEND ITEMCTRL.
           ITEMDATA-DELIV_NUMB = ITH-VBELN.
           ITEMDATA-DELIV_ITEM = TBL_ITEMS-POSNR.
          ITEMDATA-FACT_UNIT_NOM = 1.
           ITEMDATA-FACT_UNIT_DENOM = 1.
          APPEND ITEMDATA.
        ENDLOOP.


         CLEAR IT_BAPIRET2[].
    *     *---DELETING DELIVERY DOC (VL02N)
         CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
           EXPORTING
             HEADER_DATA    = WA_HDATA
             HEADER_CONTROL = WA_HCONT
             DELIVERY       = WA_HDATA-DELIV_NUMB
           TABLES
             ITEM_CONTROL   = ITEMCTRL
             ITEM_DATA      = ITEMDATA
             RETURN         = IT_BAPIRET2.

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


        MOVE SY-SUBRC TO ITAB_RETURN-SUBRC.

        IF SY-SUBRC  = 0.
           APPEND LINES OF IT_BAPIRET2 TO  ET_LOG.
           ITAB_RETURN-MSG = '成功'.
        ELSE.
           ITAB_RETURN-MSG = '失败'.
        ENDIF.

    *--------------------CHA JWY_20170811
         SORT ITEMDATA.
    *--------------------CHA JWY_20170811
         LOOP AT ITEMDATA.
           ITAB_RETURN-BILLNO = ITEMDATA-DELIV_NUMB.
          ITAB_RETURN-SAPNO = ITEMDATA-DELIV_ITEM.
           APPEND ITAB_RETURN.
         ENDLOOP.

        CLEAR VIP.
         SELECT SINGLE VBELN INTO VIP FROM LIPS WHERE VBELN = WA_HDATA-DELIV_NUMB.
        IF SY-SUBRC > 0. "删除空交货单
          WA_HCONT-DLV_DEL    = 'X'.
          CLEAR IT_BAPIRET2[].
    *---Deleting delivery doc (VL02n)
           CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
             EXPORTING
               HEADER_DATA    = WA_HDATA
               HEADER_CONTROL = WA_HCONT
               DELIVERY       = WA_HDATA-DELIV_NUMB
             TABLES
               RETURN         = IT_BAPIRET2.
    *---commit
          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
             EXPORTING
               WAIT = 'X'.

        ENDIF.



       ENDLOOP.
    ENDFUNCTION.
     

    image

    image

    image

  • 相关阅读:
    iOS面试题总结整理(附答案)
    iOS App上传项目遇到的问题
    Could not find Developer Disk Image
    xcode下载方式
    iOS App上架流程(2016详细版)
    Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得
    iOS开发之17个常用代码整理
    iOS求职之OC面试题
    Android xmpp 连接基本方法
    Ubuntu安装过程
  • 原文地址:https://www.cnblogs.com/twttafku/p/14315960.html
Copyright © 2011-2022 走看看