SD-交货过账-WS_DELIVERY_UPDATE

**********************************************************************    ls_vbkok-vbeln_vl  = gt_out-vbeln.
  DATA: LS_VBKOK TYPE VBKOK.
  DATA: LT_PROT  LIKE TABLE OF PROTT WITH HEADER LINE.
  DATA: BEGIN OF LT_VBPOK OCCURS 0.
          INCLUDE STRUCTURE VBPOK.
  DATA: END OF LT_VBPOK.

  LS_VBKOK-VBELN_VL  = P_VBELN.         " Delivery number
  LS_VBKOK-WABUC     = GC_X.            " Automatic PGI
  LS_VBKOK-WADAT_IST = P_DATUM.         " 实际货物移动日期
  LS_VBKOK-TDDAT     = SY-DATUM.        " 运输计划日期
  LS_VBKOK-BLDAT     = SY-DATUM.        " 凭证中的凭证日期

**
  CALL FUNCTION 'WS_DELIVERY_UPDATE'
    EXPORTING
      VBKOK_WA      = LS_VBKOK
      COMMIT        = 'X'
      DELIVERY      = P_VBELN
**      UPDATE_PICKING = 'X'
    TABLES
*     VBPOK_TAB     = LT_VBPOK
      PROT          = LT_PROT
    EXCEPTIONS
      ERROR_MESSAGE = 1
      OTHERS        = 2.


* 过账成功时,
    IF LT_PROT[] IS INITIAL.

      LS_SD3030-MSGTY  = GC_DODPS_GI_SUCC.
      LS_SD3030-MESS   = TEXT-R09.
      $$DATE_USER 'M' LS_SD3030.              " lycao 2015.02.16
      APPEND LS_SD3030 TO LT_P_3030.          " lycao 2015.03.16
*      MODIFY ZTSD3030 FROM LS_SD3030.        " lycao 2015.03.16
*      IF SY-SUBRC = 0.
*        COMMIT WORK.
*      ELSE.
*        ROLLBACK WORK.
*      ENDIF.

      CS_DATA-IFRESULT = GC_DODPS_GI_SUCC.
      CS_DATA-IFMSG    = TEXT-R09.

      LS_LOG-MSGTY = GC_DODPS_GI_SUCC.
      LS_LOG-MESS  = TEXT-R09.
      $$DATE_USER 'C' LS_LOG.              " lycao 2015.03.20
      APPEND LS_LOG TO LT_P_LOG.              " lycao 2015.03.16
*      $$LOG_UPDATE 'C' LS_LOG CS_DATA ZTSD0001XI04.       " lycao 2015.03.16

      CLEAR: LS_SD3030, LS_LOG.
    ELSE.
* 过账失败时
      DATA: L_MESS    TYPE STRING.
      DATA: LT_STR_MSG TYPE TABLE OF STRING WITH HEADER LINE.
      CLEAR: L_MESS, LT_STR_MSG[], LT_STR_MSG.
      LOOP AT LT_PROT WHERE MSGTY EQ  'E' OR MSGTY = 'A' OR MSGTY = 'X'.
        CALL FUNCTION 'MESSAGE_TEXT_BUILD'
          EXPORTING
            MSGID               = LT_PROT-MSGID
            MSGNR               = LT_PROT-MSGNO
            MSGV1               = LT_PROT-MSGV1
            MSGV2               = LT_PROT-MSGV2
            MSGV3               = LT_PROT-MSGV3
            MSGV4               = LT_PROT-MSGV4
          IMPORTING
            MESSAGE_TEXT_OUTPUT = LT_STR_MSG.
        APPEND LT_STR_MSG.
        CLEAR: LT_STR_MSG.
      ENDLOOP.
      SORT  LT_STR_MSG.
      DELETE ADJACENT DUPLICATES FROM LT_STR_MSG.
      LOOP AT LT_STR_MSG.
        CONCATENATE LT_STR_MSG  ';' L_MESS INTO L_MESS.
      ENDLOOP.

      CS_DATA-IFRESULT = GC_DODPS_GI_FAIL.
      CS_DATA-IFMSG    = L_MESS.

      LS_LOG-MSGTY = GC_DODPS_GI_FAIL.
      LS_LOG-MESS  = L_MESS.
      $$DATE_USER 'C' LS_LOG.              " lycao 2015.03.20
      APPEND LS_LOG TO LT_P_LOG.              " lycao 2015.03.16
*      $$LOG_UPDATE 'C' LS_LOG CS_DATA ZTSD0001XI04.
    ENDIF.
 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值