BAPI_NETWORK_COMP_ADD

来源:互联网 发布:淘宝客怎么找免单商品 编辑:程序博客网 时间:2024/05/19 11:38
FUNCTION ZBAPI_NETWORK_COMP_ADD.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  TABLES
*"      INPUT STRUCTURE  ZBAPI_NETWORK_COMP_ADD OPTIONAL
*"      OUTPUT STRUCTURE  ZBAPI_NETWORK_COMP_ADD_OUT OPTIONAL
*"----------------------------------------------------------------------
DATA: G_INFO TYPE STRING.
DATA:FLAG(1),
     m_MESSAGE(100),
     m_DATE TYPE D.


DATA:NUMBER TYPE BAPI_NETWORK_LIST-NETWORK,
     I_COMPONENTS_ADD  TYPE TABLE OF BAPI_NETWORK_COMP_ADD WITH HEADER LINE,
     E_MESSAGE_TABLE  TYPE TABLE OF BAPI_METH_MESSAGE WITH HEADER LINE.




DATA:t_OBJNR TYPE AFVC-OBJNR,
     m_STAT  TYPE JEST-STAT.
LOOP AT INPUT.
      MOVE-CORRESPONDING INPUT TO OUTPUT.
      NUMBER = INPUT-AUFNR.


*     以下代码如果活动TECO之后,则不允许新增物料
      CLEAR t_OBJNR.
      CLEAR m_STAT.
      SELECT SINGLE
             B~OBJNR
             INTO t_OBJNR
             FROM CAUFV AS A INNER JOIN AFVC AS B ON A~AUFPL = B~AUFPL
             WHERE A~AUFNR = INPUT-AUFNR
               AND B~VORNR = INPUT-ACTIVITY.


      SELECT SINGLE
             A~STAT
             INTO m_STAT
             FROM JEST AS A INNER JOIN TJ02T AS B ON A~STAT = B~ISTAT AND B~SPRAS = '1'
             WHERE A~OBJNR = t_OBJNR
               AND B~TXT04 = 'TECO'
               AND A~INACT <> 'X'.
      IF m_STAT <> ''.


          OUTPUT-FLAG = 'E'.
          CONCATENATE '网络:' INPUT-AUFNR '活动:' INPUT-ACTIVITY '已TECO,不能增加物料' INTO OUTPUT-MESSAGE.
          APPEND OUTPUT.
          CLEAR OUTPUT.
      ELSE.
*     以上代码如果活动TECO之后,则不允许新增物料




*         明细记录
          I_COMPONENTS_ADD-ACTIVITY        = INPUT-ACTIVITY.
          I_COMPONENTS_ADD-MATERIAL        = INPUT-MATERIAL.
          I_COMPONENTS_ADD-ENTRY_QUANTITY  = INPUT-ENTRY_QUANTITY.
          I_COMPONENTS_ADD-REQ_DATE        = INPUT-REQ_DATE.
          I_COMPONENTS_ADD-ITEM_TEXT       = INPUT-ITEM_TEXT.
          I_COMPONENTS_ADD-ITEM_CAT        = 'L'.
          I_COMPONENTS_ADD-BASE_UOM        = INPUT-BASE_UOM.




          APPEND I_COMPONENTS_ADD.
          CLEAR I_COMPONENTS_ADD.


*         在结尾的时候,保存记录
*          AT END OF AUFNR.
              CALL FUNCTION 'BAPI_NETWORK_COMP_ADD'
                EXPORTING
                   NUMBER                   = NUMBER
                TABLES
                   I_COMPONENTS_ADD          = I_COMPONENTS_ADD
                   E_MESSAGE_TABLE          = E_MESSAGE_TABLE.


              CLEAR E_MESSAGE_TABLE.
              LOOP AT E_MESSAGE_TABLE WHERE MESSAGE_TYPE = 'E' OR MESSAGE_TYPE = 'A'.
                  FLAG = 'X'.
                  OUTPUT-FLAG = 'E'.
                  CONCATENATE OUTPUT-MESSAGE '&' E_MESSAGE_TABLE-MESSAGE_TEXT INTO OUTPUT-MESSAGE.
              ENDLOOP.
              IF FLAG = 'X'.
                  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
              ELSE.
                  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
                  WAIT UP TO 1 SECONDS.
                  OUTPUT-FLAG = 'S'.


                  LOOP AT E_MESSAGE_TABLE WHERE MESSAGE_TYPE = 'I' OR MESSAGE_TYPE = 'S'.
                       m_MESSAGE = E_MESSAGE_TABLE-MESSAGE_TEXT.
                  ENDLOOP.
                  CONCATENATE '创建成功:' m_MESSAGE INTO OUTPUT-MESSAGE.
              ENDIF.
              APPEND OUTPUT.
              CLEAR OUTPUT.
              CLEAR I_COMPONENTS_ADD.
              REFRESH I_COMPONENTS_ADD.
              REFRESH E_MESSAGE_TABLE.
              CLEAR E_MESSAGE_TABLE.
              CLEAR FLAG.
              CLEAR m_MESSAGE.
*          ENDAT.
      ENDIF.
ENDLOOP.


ENDFUNCTION.
0 0
原创粉丝点击