BDC錄製取消生產訂單反衝勾

 

FORM BDC_CANCEL_FC USING P_S_AUFNR.
*多次循環,必須清空 BDCDATA
  CLEAR: BDCDATA,BDCDATA[],BDCMESS,BDCMESS[].
  PERFORM bdc_dynpro      USING 'SAPLCOKO1' '0110'.
  PERFORM bdc_field       USING 'BDC_CURSOR'
                                'CAUFVD-AUFNR'.
  PERFORM bdc_field       USING 'BDC_OKCODE'
                                '=KOZE'.
  PERFORM bdc_field       USING 'CAUFVD-AUFNR'
                                P_S_AUFNR.

  LOOP AT T_TMP_FC.
    PERFORM bdc_dynpro      USING 'SAPLCOKO1' '0115'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=KPU2'.

    PERFORM bdc_dynpro      USING 'SAPLCOMK' '0120'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'FILTER_BOX'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=FIBO'.
    PERFORM bdc_field       USING 'FILTER_BOX'
                                   'NO_TIL'.
    PERFORM bdc_field       USING 'SORT_BOX'
                                  'ST_STA'.

    PERFORM bdc_dynpro      USING 'SAPLCNFA' '0100'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=ENTR'.

    PERFORM bdc_dynpro      USING 'SAPLCOMK' '0120'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'FILTER_BOX'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=FIBO'.
*  根據預留編號篩選
    PERFORM bdc_field       USING 'FILTER_BOX'
                                   'Z00001'.
    PERFORM bdc_field       USING 'SORT_BOX'
                                  'ST_STA'.
    PERFORM bdc_dynpro      USING 'SAPLCNFA' '0100'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=ENTR'.
*  預留號
    PERFORM bdc_field       USING 'RANGE-LOW(01)'
                                   T_OUT-RSPOS.

    PERFORM bdc_dynpro      USING 'SAPLCOMK' '0120'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'RESBD-POSNR(01)'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=MKAG'.
    PERFORM bdc_field       USING 'RC27X-FLG_SEL(01)'
                                    'X'.
    perform bdc_dynpro      using 'SAPLCOMD' '0110'.

*  去掉反衝勾
    perform bdc_field       using 'RESBD-RGEKZ'
                                       ''.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=ENT1'.

    PERFORM bdc_dynpro      USING 'SAPLCOMD' '0110'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'RESBD-MATNR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=BACK'.

    PERFORM bdc_dynpro      USING 'SAPLCOMK' '0120'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'FILTER_BOX'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=FIBO'.
    PERFORM bdc_field       USING 'FILTER_BOX'
                                   'NO_FIL'.

    PERFORM bdc_dynpro      USING 'SAPLCOMK' '0120'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=BACK'.
  ENDLOOP.

*---------------------------------
  PERFORM bdc_dynpro      USING 'SAPLCOKO1' '0115'.
  PERFORM bdc_field       USING 'BDC_OKCODE'
                                '=BU'.
  WAIT UP TO 1 SECONDS.
  BDC_MODE = 'N'.
    CALL TRANSACTION 'CO02' USING BDCDATA
                              UPDATE 'S' MODE  BDC_MODE
                              MESSAGES INTO BDCMESS.

  IF SY-SUBRC = 0.
        COMMIT WORK.
        EXIT.
  ELSE.
        ROLLBACK WORK.
        MESSAGE '去掉反衝勾失敗!' TYPE 'S'.
  ENDIF.


ENDFORM.                    " BDC_CANCEL_FC

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章