zoukankan      html  css  js  c++  java
  • BAPI_DELIVERYPROCESSING_EXEC

    根据内向采购订单创建内向交货单

    FORM CREATE_INBOUND_DELIVIRY.
     DATA: _RET          TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE,
           _CREATED_ITMES TYPE STANDARD TABLE OF BAPIDELICIOUSCREATEDITEMS WITH HEADER LINE,
           _REQUEST      TYPE STANDARD TABLE OF BAPIDELICIOUSREQUEST WITH HEADER LINE.
    
      LOOP AT GT_DO_ITEMS ASSIGNING FIELD-SYMBOL(<lfs_do>).
    
        CLEAR: _REQUEST.
    
        _REQUEST-ID  = sy-tabix.
    
        _REQUEST-DOCUMENT_NUMB = <lfs_do>-VGBEL."我这儿参考的单据为内部采购订单
    
        _REQUEST-DOCUMENT_ITEM = <lfs_do>-VGPOS."参考行项目确认控制为0001
    
        _REQUEST-DOCUMENT_TYPE = 'B'. "B: 处理采购订单 See domain : LESHP_DOCUMENT_TYPE
    
        _REQUEST-PLANT = <lfs_do>-WERKS.
    
        _REQUEST-STGE_LOC = <lfs_do>-LGORT.
    
        _REQUEST-QUANTITY_BASE__UOM = <lfs_do>-LFIMG.
    
        _REQUEST-DELIVERY_DATE = SY-DATUM.
    
        _REQUEST-DELIVERY_TIME = ''.
    
        APPEND _REQUEST.
    
      ENDLOOP.
    
      CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
        TABLES
          REQUEST      = _REQUEST
          CREATEDITEMS = _CREATED_ITMES
          RETURN       = _RET.
    
      PERFORM DEAL_BAPI_RET TABLES _RET CHANGING G_ERR_FLAG.
    
      DATA(LV_VBELN) = VALUE #( _CREATED_ITEM[ 1 ] OPTIONAL ).
    
      IF G_ERR_FLAG = ABAP_TRUE OR LV_VBELN IS INITIAL.
        RETURN.
      ENDIF.
    
      MESSAGE S001(00) WITH |内向交货单{ LV_VBELN }创建成功.|. 
    ENDFORM.
    
    
    FORM DEAL_BAPI_RET TABLES RET_ERRMSG USING STEP CHANGING ERR_FLAG.
      FIELD-SYMBOLS: <FS_RET> TYPE BAPIRET2.
      DATA: ERRMSG TYPE SMESG.
    
      CLEAR  ERR_FLAG.
      REFRESH GT_SMESG.
    
      DATA(LV_ZEILE) = LINES( GT_SMESG_ALL[] ).
    
      LOOP AT RET_ERRMSG ASSIGNING <FS_RET>.
    
        IF ERR_FLAG = ABAP_FALSE AND ( <FS_RET>-TYPE = 'E'
           OR <FS_RET>-TYPE = 'A' OR <FS_RET>-TYPE = 'X' ).
          ERR_FLAG = ABAP_TRUE.  "失败
        ENDIF.
    
        CLEAR ERRMSG.
        ERRMSG-ZEILE = LV_ZEILE + SY-TABIX.
        ERRMSG-MSGTY = <FS_RET>-TYPE.
        ERRMSG-ARBGB = <FS_RET>-ID.
        ERRMSG-TXTNR = <FS_RET>-NUMBER.
        ERRMSG-MSGV1 = <FS_RET>-MESSAGE_V1.
        ERRMSG-MSGV2 = <FS_RET>-MESSAGE_V2.
        ERRMSG-MSGV3 = <FS_RET>-MESSAGE_V3.
        ERRMSG-MSGV4 = <FS_RET>-MESSAGE_V4.
        APPEND ERRMSG TO GT_SMESG.
      ENDLOOP.
    
      APPEND LINES OF GT_SMESG TO GT_SMESG_ALL.
    
      IF ERR_FLAG = ABAP_TRUE.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    
        CALL FUNCTION 'FB_MESSAGES_DISPLAY_POPUP'
          EXPORTING
            IT_SMESG        = GT_SMESG[]
          EXCEPTIONS
            NO_MESSAGES     = 1
            POPUP_CANCELLED = 2
            OTHERS          = 3.
        RETURN.
      ENDIF.
    
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          WAIT = 'X'.
    ENDFORM.
    
    
  • 相关阅读:
    LOJ#6031. 「雅礼集训 2017 Day1」字符串
    LG P4768 [NOI2018] 归程
    LG P3250 [HNOI2016]网络
    BZOJ4644 经典傻逼题
    LG P4373 [USACO18OPEN]Train Tracking P
    CF1375H Set Merging
    LG P6541 [WC2018]即时战略
    CF1097G Vladislav and a Great Legend
    python学习笔记-基本概念
    python学习笔记十-文件操作
  • 原文地址:https://www.cnblogs.com/imimjx/p/13163739.html
Copyright © 2011-2022 走看看