RMA3

FUNCTION ZRFC_SD_PCE_0096.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(P_MODE) LIKE  ZRMADATA-SOFLAG OPTIONAL
*"  TABLES
*"      ZRMASLOG STRUCTURE  ZRMASLOG OPTIONAL
*"----------------------------------------------------------------------
*cici20100618.add.sn
  DATA:  RETURN_FLAG(48)  TYPE C.
  DATA:  L_ZRMANO(20) TYPE C.
  DATA:  L_SNNO(35) TYPE C.
*cici20100618.add.en
  ZQTY = '1'.
  IF P_MODE IS INITIAL.
    P_MODE = 'N'.
  ENDIF.

  SELECT *  FROM ZRMASHIPPING
  INTO CORRESPONDING FIELDS OF TABLE ZRMASHIPPING
  WHERE SHIPFLAG <> 'Y'.

  IF ZRMASHIPPING[] IS INITIAL.
    ZRMASLOG-ZRMA = 'NULL'.
    ZRMASLOG-ZSN = 'NULL'.
    ZRMASLOG-ZMESSAGE = 'No Data'.
    ZRMASLOG-ZDATE = SY-DATUM.
    ZRMASLOG-ZTIME = SY-TIMLO.
    APPEND ZRMASLOG.
    EXIT.
  ENDIF.

  SORT ZRMASHIPPING BY ZRMA ZSN.
  LOOP AT ZRMASHIPPING.
*cici20100618.add.sn
    L_ZRMANO = ZRMASHIPPING-ZRMA.
    L_SNNO   = ZRMASHIPPING-ZSN.
    CALL FUNCTION 'ZRFC_PP_PCE_0110'
         EXPORTING
              RMA_NUM    = L_ZRMANO
              SERIAL_NUM = L_SNNO
         IMPORTING
              RETURN     = RETURN_FLAG.

    IF RETURN_FLAG <> 'OK'.
      CONTINUE.
    ENDIF.
*cici20100618.add.en
    CLEAR:ZSONO,ZSOITEM.

    SELECT SINGLE * FROM ZRMADATA
    WHERE ZRMA = ZRMASHIPPING-ZRMA AND ZSN = ZRMASHIPPING-ZSN.

    SELECT SINGLE * FROM ZPCECONTROLVALUE
    WHERE  CTYPE = ZRMADATA-ZCUSTOMER
    AND INDICATOR1 = 'ACT'
    AND WERKS = ZRMASHIPPING-PLANT .

    SELECT SINGLE VBELN INTO ZSONO FROM VBAK
    WHERE BSTNK = ZRMASHIPPING-ZRMA.

    SELECT SINGLE POSNR INTO ZSOITEM FROM VBAP
    WHERE VBELN = ZSONO AND KANNR = ZRMASHIPPING-ZSN .

    SELECT SINGLE * FROM VBAP
    WHERE VBELN = ZSONO
    AND PSTYV = 'ZIRL'
*    AND pstyv = 'IRAL'
    AND VKGRU = '103' AND UEPOS = ZSOITEM .

    IF SY-SUBRC = 0.
      CLEAR IT_BDC.
      REFRESH IT_BDC.

      PERFORM. BDC_PROCESS TABLES IT_BDC.
      CALL TRANSACTION 'VL01N' USING IT_BDC MODE P_MODE UPDATE 'S'
         MESSAGES INTO ITAB_M.
      IF SY-SUBRC <> 0.
        ZRMASLOG-ZRMA = ZRMASHIPPING-ZRMA.
        ZRMASLOG-ZSN = ZRMASHIPPING-ZSN.
        ZRMASLOG-ZMESSAGE = 'Outbound DN generated error'.
        ZRMASLOG-ZDATE = SY-DATUM.
        ZRMASLOG-ZTIME = SY-TIMLO.
        APPEND ZRMASLOG.
      ELSE.
        SELECT SINGLE * FROM LIPS
        WHERE VBELV = ZSONO AND POSNV = ZSOITEM
        AND PSTYV = 'ZIRL'.
*        AND pstyv = 'IRAL'.
        UPDATE ZRMASHIPPING SET SHIPFLAG = 'Y'
                            SHIPDN = LIPS-VBELN
        WHERE ZRMA = ZRMASHIPPING-ZRMA
        AND ZSN = ZRMASHIPPING-ZSN.
      ENDIF.
    ELSE.
      ZRMASLOG-ZRMA = ZRMASHIPPING-ZRMA.
      ZRMASLOG-ZSN = ZRMASHIPPING-ZSN.
      ZRMASLOG-ZMESSAGE = 'Repair order dont confirm for SN in SAP'.
      ZRMASLOG-ZDATE = SY-DATUM.
      ZRMASLOG-ZTIME = SY-TIMLO.
      APPEND ZRMASLOG.
    ENDIF.

    INSERT ZRMASLOG FROM TABLE ZRMASLOG ACCEPTING DUPLICATE KEYS .
  ENDLOOP.
ENDFUNCTION.

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值