ZCMM01-25

本文介绍了一个ABAP程序片段,该程序用于检查订单类型是否与特定类型‘H’相匹配。通过对ABAP内部表的操作及数据库查询,确保了订单类型的一致性,并实现了对订单数据的收集与整理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    WHEN 'H'.
*Ariel add 100424.sn
      CLEAR:RESBTAB_THI,RESBTAB_SEC.
      REFRESH:RESBTAB_THI,RESBTAB_SEC.
*Ariel add 100424.en
      SELECT SINGLE * FROM AUFK
      WHERE AUFNR = ZCM03-AUFNR.
      SELECT SINGLE CVALUE1 INTO L_CVALUE1 FROM ZPCECONTROLVALUE
      WHERE WERKS EQ AUFK-WERKS
        AND CTYPE EQ 'B9AWOTYPE'
        AND CVALUE EQ AUFK-AUART
        AND INDICATOR1 EQ 'ACT'.
      IF SY-SUBRC = 0.
        SELECT SINGLE INDICATOR1_MEMO INTO L_LGORT
        FROM ZPCECONTROLVALUE
        WHERE WERKS EQ AUFK-WERKS
          AND CTYPE EQ 'B9ASL'
          AND CVALUE EQ L_CVALUE1
          AND CVALUE1 EQ AFKO-FEVOR
          AND INDICATOR1 EQ 'ACT'.
        IF SY-SUBRC <> 0.
          MESSAGE E000 WITH AUFK-AUART ',This order type is disagree'
                       'with type H!'.
        ENDIF.
      ELSE.
        SELECT SINGLE CVALUE1 INTO L_CVALUE1 FROM ZPCECONTROLVALUE
        WHERE WERKS EQ AUFK-WERKS
          AND CTYPE EQ 'B9AWOTYPE'
          AND CVALUE EQ AUFK-AUART
          AND INDICATOR1 EQ ''.
        IF SY-SUBRC = 0.
          SELECT SINGLE INDICATOR1_MEMO INTO L_LGORT
          FROM ZPCECONTROLVALUE
          WHERE WERKS EQ AUFK-WERKS
            AND CTYPE EQ 'B9ASL'
            AND CVALUE EQ L_CVALUE1
            AND INDICATOR1 EQ 'ACT'.
          IF SY-SUBRC <> 0.
            MESSAGE E000 WITH AUFK-AUART ',This order type is disagree'
                         'with type H!'.
          ENDIF.
        ELSE.
          MESSAGE E000 WITH AUFK-AUART ',This order type is disagree'
                       'with type H!'.
        ENDIF.
      ENDIF.
      LOOP AT RESBTAB WHERE SHKZG = 'H'.
        MOVE-CORRESPONDING RESBTAB TO RESBTAB_SEC.
        IF RESBTAB-ALPGR = '000000'.
          APPEND RESBTAB_SEC.
        ELSE.
          COLLECT RESBTAB_SEC.
        ENDIF.
        MOVE-CORRESPONDING RESBTAB TO RESBTAB_THI.
        COLLECT RESBTAB_THI.
      ENDLOOP.
      SORT RESBTAB_THI BY MATNR.
      SORT RESBTAB_SEC BY ALPGR.
      LOOP AT RESBTAB_SEC WHERE ALPGR <> '000000'.
        L_DIFF = RESBTAB_SEC-ENMNG - RESBTAB_SEC-ERFMG.
        IF L_DIFF > 0.
          PERFORM. GET_MASTER_PART USING L_DIFF RESBTAB_SEC-ALPGR.
          CLEAR: L_DIFF.
        ENDIF.
      ENDLOOP.
*"Ariel add 100424 where condition "where alpgr = '000000'
      LOOP AT RESBTAB_THI WHERE ALPGR = '000000'.
        READ TABLE ZCM04TAB WITH KEY MATNR = RESBTAB_THI-MATNR
                                     ALPGR = '000000'."Ariel add 100424
        IF SY-SUBRC = 0.
          CONTINUE.
        ENDIF.
        L_DIFF = RESBTAB_THI-ENMNG - RESBTAB_THI-ERFMG.
        IF L_DIFF > 0.
          LOOP AT RESBTAB WHERE MATNR = RESBTAB_THI-MATNR
             AND ALPGR = '000000'."Ariel add 100424
            R_CHARG-SIGN = 'I'.
            R_CHARG-OPTION = 'EQ'.
            R_CHARG-LOW = RESBTAB-CHARG.
            APPEND R_CHARG.
            CLEAR R_CHARG.
          ENDLOOP.
          PERFORM. GET_MAX_REVISION USING RESBTAB_THI-MATNR L_DIFF.
          CLEAR: L_DIFF.
        ENDIF.
      ENDLOOP.

*   echo.en

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14397246/viewspace-666177/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14397246/viewspace-666177/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值