ABAP 更改Delivery pick qty 数量的interface 程序

*&---------------------------------------------------------------------*
*& Report Z_TEST1
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Z_TEST2.

TABLES LIKP.
PARAMETERS P_DEL LIKE LIKP-VBELN DEFAULT ''.

PARAMETERS:p_vbeln TYPE likp-vbeln.

DATA:
STR_HEADER_DATA LIKE BAPIOBDLVHDRCHG,
STR_HEADER_CONTROL LIKE BAPIOBDLVHDRCTRLCHG.

DATA IT_RETURN TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE.
DATA IT_HEADER_DEADLINES TYPE STANDARD TABLE OF BAPIDLVDEADLN WITH HEADER LINE.

DATA :ITEM_DATA LIKE BAPIOBDLVITEMCHG OCCURS 0 WITH HEADER LINE,
      ITEM_CONTROL LIKE BAPIOBDLVITEMCTRLCHG OCCURS 0 WITH HEADER LINE,
      WA_LIPS LIKE LIPS OCCURS 0 WITH HEADER LINE.

START-OF-SELECTION.
 " PERFORM MODIFY1.
  PERFORM MODIFY2 .

*&---------------------------------------------------------------------*
*&      Form  MODIFY1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM MODIFY1 .
  DATA: V_16(16) TYPE C.
  DATA V_DEL LIKE BAPIOBDLVHDRCHG-DELIV_NUMB.
  SELECT SINGLE * FROM LIKP WHERE VBELN = P_DEL.
  CONCATENATE SY-DATUM SY-UZEIT INTO V_16.

  STR_HEADER_DATA-UNLOAD_PT = LIKP-ABLAD.
  STR_HEADER_DATA-UNIT_OF_WT = LIKP-GEWEI.
  STR_HEADER_DATA-INCOTERMS1 = LIKP-INCO1.
  STR_HEADER_DATA-INCOTERMS2 = LIKP-INCO2.
  STR_HEADER_DATA-DOOR = LIKP-LGTOR.
  STR_HEADER_DATA-DLV_BLOCK = LIKP-LIFSK.
  STR_HEADER_DATA-DLV_PRIO = LIKP-LPRIO.
  STR_HEADER_DATA-NET_WEIGHT = LIKP-NTGEW.
  STR_HEADER_DATA-ROUTE = LIKP-ROUTE.
  STR_HEADER_DATA-DELIV_NUMB = LIKP-VBELN.
  STR_HEADER_DATA-VOLUMEUNIT = LIKP-VOLEH.
  STR_HEADER_DATA-VOLUME = LIKP-VOLUM.
  STR_HEADER_DATA-SHIP_COND = LIKP-VSBED.

  V_DEL = LIKP-VBELN.
  STR_HEADER_DATA-DELIV_NUMB = LIKP-VBELN.
  STR_HEADER_CONTROL-GDSI_DATE_FLG = 'X'.
  IT_HEADER_DEADLINES-TIMETYPE = 'WSHDRWADTI'.
  IT_HEADER_DEADLINES-TIMESTAMP_UTC = V_16.
  APPEND IT_HEADER_DEADLINES.

  SELECT  * INTO WA_LIPS FROM LIPS WHERE VBELN = P_DEL.
    ITEM_DATA-DELIV_NUMB = WA_LIPS-VBELN.
    ITEM_DATA-DELIV_ITEM = WA_LIPS-POSNR.
    ITEM_DATA-MATERIAL = WA_LIPS-MATNR.
    ITEM_DATA-BATCH = WA_LIPS-CHARG.
    ITEM_DATA-DLV_QTY = 1.
    ITEM_DATA-DLV_QTY_IMUNIT = 1.
    ITEM_DATA-FACT_UNIT_NOM = WA_LIPS-UMVKZ.
    ITEM_DATA-FACT_UNIT_DENOM = WA_LIPS-UMVKN.
    ITEM_DATA-CONV_FACT = WA_LIPS-UMREF.
    ITEM_DATA-GROSS_WT = WA_LIPS-BRGEW.
    ITEM_DATA-NET_WEIGHT = WA_LIPS-NTGEW.
    ITEM_DATA-UNIT_OF_WT = WA_LIPS-GEWEI.
    ITEM_DATA-VOLUMEUNIT = WA_LIPS-VOLEH.
    ITEM_DATA-SALES_UNIT = WA_LIPS-VRKME.
    ITEM_DATA-BASE_UOM = WA_LIPS-MEINS.
    ITEM_DATA-STOCK_TYPE = WA_LIPS-INSMK.
    ITEM_DATA-VAL_TYPE = WA_LIPS-BWTAR.
    ITEM_DATA-INSPLOT = WA_LIPS-QPLOS.
    ITEM_DATA-VOLUME = WA_LIPS-VOLUM.
    APPEND ITEM_DATA.
    CLEAR ITEM_DATA.

    ITEM_CONTROL-DELIV_NUMB = WA_LIPS-VBELN.
    ITEM_CONTROL-DELIV_ITEM = WA_LIPS-POSNR.
    ITEM_CONTROL-CHG_DELQTY = 'X'.
    APPEND ITEM_CONTROL.
  ENDSELECT.


  CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
    EXPORTING
      HEADER_DATA      = STR_HEADER_DATA
      HEADER_CONTROL   = STR_HEADER_CONTROL
      DELIVERY         = V_DEL
    TABLES
      HEADER_DEADLINES = IT_HEADER_DEADLINES
      ITEM_DATA        = ITEM_DATA
      ITEM_CONTROL     = ITEM_CONTROL
      RETURN           = IT_RETURN.
  IF IT_RETURN[] IS INITIAL.
    COMMIT WORK.
  ELSE.
    LOOP AT IT_RETURN.
      MESSAGE ID IT_RETURN-ID TYPE IT_RETURN-TYPE  NUMBER IT_RETURN-NUMBER.
    ENDLOOP.
  ENDIF.
ENDFORM.                                                    " MODIFY1
*&---------------------------------------------------------------------*
*&      Form  MODIFY2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM MODIFY2  .
*& 更改拣配数量
  DATA:VBKOK_WA TYPE VBKOK,
       VBPOK_TAB TYPE VBPOK OCCURS 0 WITH HEADER LINE,
       XLIPS TYPE LIPS OCCURS 0 WITH HEADER LINE .
  CLEAR: VBKOK_WA, VBPOK_TAB, XLIPS.
  REFRESH: VBPOK_TAB, XLIPS.

  VBKOK_WA-VBELN_VL = P_DEL.


  SELECT * FROM LIPS INTO TABLE XLIPS
  WHERE VBELN = VBKOK_WA-VBELN_VL.

  LOOP AT XLIPS.
    CLEAR: VBPOK_TAB.
    VBPOK_TAB-VBELN_VL = XLIPS-VBELN.
    VBPOK_TAB-POSNR_VL = XLIPS-POSNR.
    VBPOK_TAB-VBELN = XLIPS-VBELN.
    VBPOK_TAB-POSNN = XLIPS-POSNR.

    VBPOK_TAB-PIKMG = 1000."XLIPS-LFIMG.
    VBPOK_TAB-MEINS = XLIPS-MEINS.
    "VBPOK_TAB-NDIFM = 0.
    "VBPOK_TAB-TAQUI = ' '.
    VBPOK_TAB-CHARG = XLIPS-CHARG.
    VBPOK_TAB-MATNR = XLIPS-MATNR.
    "VBPOK_TAB-ORPOS = 0.
    APPEND VBPOK_TAB.
  ENDLOOP.

  CALL FUNCTION 'SD_DELIVERY_UPDATE_PICKING'
    EXPORTING
      VBKOK_WA  = VBKOK_WA
      SYNCHRON  = 'X'
    TABLES
      VBPOK_TAB = VBPOK_TAB.

  COMMIT WORK AND WAIT.
ENDFORM.                                                    " MODIFY2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值