RMA5

FUNCTION ZRFC_SD_PCE_0093.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  EXPORTING
*"     VALUE(ZFLAG) LIKE  ZRMADATA-ZRMA
*"  TABLES
*"      ZRMAMASTER STRUCTURE  ZRMADATA OPTIONAL
*"      ZRMALOG STRUCTURE  ZRMALOG OPTIONAL
*"----------------------------------------------------------------------

  ZFLAG = 'Y'.
  IF ZRMAMASTER[] IS INITIAL.
    ZRMALOG-ZRMA = 'NULL'.
    ZRMALOG-ZSN = 'NULL'.
    ZRMALOG-ZMESSAGE = 'NODATA'.
    ZRMALOG-ZDATE = SY-DATUM.
    ZRMALOG-ZTIME = SY-TIMLO.
    APPEND ZRMALOG.
    ZFLAG = 'NO Data'.
    EXIT.
  ELSE.
    LOOP AT ZRMAMASTER.
      SELECT SINGLE * FROM ZRMADATA
      WHERE ZRMA = ZRMAMASTER-ZRMA
      AND ZSN = ZRMAMASTER-ZSN
      AND SOFLAG = 'Y'.
      IF SY-SUBRC = 0.
        ZRMALOG-ZRMA = ZRMAMASTER-ZRMA.
        ZRMALOG-ZRMA = ZRMAMASTER-ZSN.
        ZRMALOG-ZMESSAGE = 'SN already insert and generate SO'.
        ZRMALOG-ZDATE = SY-DATUM.
        ZRMALOG-ZTIME = SY-TIMLO.
        APPEND ZRMALOG.
        ZFLAG = 'SN already transfer to SAP'.
        ZRMAMASTER-SOFLAG = 'Y'.
        MODIFY ZRMAMASTER.
        CONTINUE.
      ELSE.
        CLEAR :ZHHPN,ZMATNR.
        CONDENSE ZRMAMASTER-CPN.
        CONDENSE ZRMAMASTER-BATCH.
        CONCATENATE '%' ZRMAMASTER-CPN '%' '+' ZRMAMASTER-BATCH '%' INTO
 ZHHPN.

        SELECT SINGLE MARA~MATNR INTO ZMATNR FROM MARC INNER JOIN MARA
        ON MARC~MATNR = MARA~MATNR
        WHERE MARA~MATNR LIKE ZHHPN
        AND MARC~WERKS = ZRMAMASTER-PLANT.

        IF ZMATNR IS INITIAL.
         SELECT SINGLE MARA~MATNR INTO ZMATNR FROM MARC INNER JOIN MARA
             ON MARC~MATNR = MARA~MATNR
             WHERE MARA~MATNR = ZRMAMASTER-CPN
             AND MARC~WERKS = ZRMAMASTER-PLANT.
          IF SY-SUBRC = 0.
            DELETE FROM ZRMADATA
    WHERE ZRMA = ZRMAMASTER-ZRMA
     AND ZSN = ZRMAMASTER-ZSN.
            INSERT INTO ZRMADATA VALUES ZRMAMASTER.
            IF SY-SUBRC <> 0.
              ZRMALOG-ZRMA = ZRMAMASTER-ZRMA.
              ZRMALOG-ZRMA = ZRMAMASTER-ZSN.
              ZRMALOG-ZMESSAGE = 'SN Insert Failed'.
              ZRMALOG-ZDATE = SY-DATUM.
              ZRMALOG-ZTIME = SY-TIMLO.
              APPEND ZRMALOG.
              ZFLAG = 'SN insert to SAP fail'.
            ENDIF.
          ELSE.
            ZFLAG = 'SN Fail,HHPN cant find in system'.
          ENDIF.
        ELSE.
          DELETE FROM ZRMADATA
  WHERE ZRMA = ZRMAMASTER-ZRMA
   AND ZSN = ZRMAMASTER-ZSN.
          INSERT INTO ZRMADATA VALUES ZRMAMASTER.
          IF SY-SUBRC <> 0.
            ZRMALOG-ZRMA = ZRMAMASTER-ZRMA.
            ZRMALOG-ZRMA = ZRMAMASTER-ZSN.
            ZRMALOG-ZMESSAGE = 'SN Insert Failed'.
            ZRMALOG-ZDATE = SY-DATUM.
            ZRMALOG-ZTIME = SY-TIMLO.
            APPEND ZRMALOG.
            ZFLAG = 'SN insert to SAP fail'.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDLOOP.
  ENDIF.

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值