Bapi讀AFE 代碼裏面含 有讀取狀態的代碼
FUNCTION Z02FI_SUN_INF_AFE.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_ZZAFE) TYPE BSEG-ZZAFE
*" REFERENCE(I_ZZBUKRS) LIKE Z02FITSSDOC_H-ZZBUKRS
*" REFERENCE(I_ZZGJAHR) LIKE Z02FITSSDOC_H-ZZGJAHR
*" REFERENCE(I_ZZBELNR) LIKE Z02FITSSDOC_H-ZZBELNR
*" REFERENCE(I_ZZBUZEI) TYPE BUZEI OPTIONAL
*" VALUE(I_FUNDCTR) TYPE CHAR100 DEFAULT 'petrochinahalfaya'
*" TABLES
*" ZZMSGT STRUCTURE ZZMSGT
*"----------------------------------------------------------------------
DATA: LS_Z02FITSSAFE TYPE Z02FITSSAFE.
DATA: L_OBJNR LIKE JEST-OBJNR.
DATA: L_LINE LIKE BSVX-STTXT.
DATA: LS_PRPS TYPE PRPS.
DATA: L_UP LIKE PRHI-UP.
DATA: L_MSG LIKE Z02FITSSLOG-ZZMSG.
DATA: LS_ZZMSGT TYPE ZZMSGT.
DATA: BEGIN OF LT_BPEG OCCURS 0,
BELNR LIKE BPEG-BELNR,
WTGES LIKE BPEG-WTGES,
END OF LT_BPEG.
CLEAR:LS_Z02FITSSAFE,L_OBJNR,L_LINE,LS_PRPS,LT_BPEG,LT_BPEG[],L_UP.
SELECT SINGLE * FROM PRPS INTO LS_PRPS WHERE POSID = I_ZZAFE.
LS_Z02FITSSAFE-ZZAFE = I_ZZAFE.
LS_Z02FITSSAFE-ZZFUNDCTR = I_FUNDCTR.
LS_Z02FITSSAFE-ZZAFE_DESP = LS_Z02FITSSAFE-ZZAFE_NAME = LS_PRPS-POST1.
SELECT SINGLE UP INTO L_UP FROM PRHI WHERE POSNR = LS_PRPS-PSPNR.
IF L_UP IS NOT INITIAL.
LS_Z02FITSSAFE-ZZAFE_PARENT = L_UP.
ENDIF.
L_OBJNR = LS_PRPS-OBJNR.
CALL FUNCTION 'STATUS_TEXT_EDIT'
EXPORTING
CLIENT = SY-MANDT
OBJNR = L_OBJNR
SPRAS = SY-LANGU
BYPASS_BUFFER = 'X'
IMPORTING
LINE = L_LINE
EXCEPTIONS
OBJECT_NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
IF L_LINE CS 'CLSD'.
LS_Z02FITSSAFE-ZZAFE_STATUS = 'Y'.
ELSE.
LS_Z02FITSSAFE-ZZAFE_STATUS = 'N'.
ENDIF.
ENDIF.
SELECT BELNR WTGES INTO TABLE LT_BPEG
FROM BPEG
WHERE OBJNR = LS_PRPS-OBJNR
AND WRTTP = '41'.
SORT LT_BPEG ASCENDING BY BELNR.
LOOP AT LT_BPEG .
CASE SY-TABIX.
WHEN 1.
LS_Z02FITSSAFE-ZZAFE_AMT_ORI = LT_BPEG-WTGES.
WHEN 2.
LS_Z02FITSSAFE-ZZAFE_AMT_ADJ1 = LT_BPEG-WTGES.
WHEN 3.
LS_Z02FITSSAFE-ZZAFE_AMT_ADJ2 = LT_BPEG-WTGES.
WHEN 4.
LS_Z02FITSSAFE-ZZAFE_AMT_ADJ3 = LT_BPEG-WTGES.
WHEN 5.
LS_Z02FITSSAFE-ZZAFE_AMT_ADJ4 = LT_BPEG-WTGES.
WHEN OTHERS.
LS_Z02FITSSAFE-ZZAFE_AMT_ADJ5 = LS_Z02FITSSAFE-ZZAFE_AMT_ADJ5 + LT_BPEG-WTGES.
ENDCASE.
ENDLOOP.
LS_Z02FITSSAFE-ZZAFE_MAX = '0.1'.
MODIFY Z02FITSSAFE FROM LS_Z02FITSSAFE.
IF SY-SUBRC EQ 0.
COMMIT WORK.
LS_ZZMSGT-ZZMSGTYPE = 'S'.
CONCATENATE 'The AFE information' I_ZZAFE ' was synchronized successfully' INTO LS_ZZMSGT-ZZMSG SEPARATED BY SPACE.
APPEND LS_ZZMSGT TO ZZMSGT.
ELSE.
ROLLBACK WORK.
ENDIF.
ENDFUNCTION.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_ZZAFE) TYPE BSEG-ZZAFE
*" REFERENCE(I_ZZBUKRS) LIKE Z02FITSSDOC_H-ZZBUKRS
*" REFERENCE(I_ZZGJAHR) LIKE Z02FITSSDOC_H-ZZGJAHR
*" REFERENCE(I_ZZBELNR) LIKE Z02FITSSDOC_H-ZZBELNR
*" REFERENCE(I_ZZBUZEI) TYPE BUZEI OPTIONAL
*" VALUE(I_FUNDCTR) TYPE CHAR100 DEFAULT 'petrochinahalfaya'
*" TABLES
*" ZZMSGT STRUCTURE ZZMSGT
*"----------------------------------------------------------------------
DATA: LS_Z02FITSSAFE TYPE Z02FITSSAFE.
DATA: L_OBJNR LIKE JEST-OBJNR.
DATA: L_LINE LIKE BSVX-STTXT.
DATA: LS_PRPS TYPE PRPS.
DATA: L_UP LIKE PRHI-UP.
DATA: L_MSG LIKE Z02FITSSLOG-ZZMSG.
DATA: LS_ZZMSGT TYPE ZZMSGT.
DATA: BEGIN OF LT_BPEG OCCURS 0,
BELNR LIKE BPEG-BELNR,
WTGES LIKE BPEG-WTGES,
END OF LT_BPEG.
CLEAR:LS_Z02FITSSAFE,L_OBJNR,L_LINE,LS_PRPS,LT_BPEG,LT_BPEG[],L_UP.
SELECT SINGLE * FROM PRPS INTO LS_PRPS WHERE POSID = I_ZZAFE.
LS_Z02FITSSAFE-ZZAFE = I_ZZAFE.
LS_Z02FITSSAFE-ZZFUNDCTR = I_FUNDCTR.
LS_Z02FITSSAFE-ZZAFE_DESP = LS_Z02FITSSAFE-ZZAFE_NAME = LS_PRPS-POST1.
SELECT SINGLE UP INTO L_UP FROM PRHI WHERE POSNR = LS_PRPS-PSPNR.
IF L_UP IS NOT INITIAL.
LS_Z02FITSSAFE-ZZAFE_PARENT = L_UP.
ENDIF.
L_OBJNR = LS_PRPS-OBJNR.
CALL FUNCTION 'STATUS_TEXT_EDIT'
EXPORTING
CLIENT = SY-MANDT
OBJNR = L_OBJNR
SPRAS = SY-LANGU
BYPASS_BUFFER = 'X'
IMPORTING
LINE = L_LINE
EXCEPTIONS
OBJECT_NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
IF L_LINE CS 'CLSD'.
LS_Z02FITSSAFE-ZZAFE_STATUS = 'Y'.
ELSE.
LS_Z02FITSSAFE-ZZAFE_STATUS = 'N'.
ENDIF.
ENDIF.
SELECT BELNR WTGES INTO TABLE LT_BPEG
FROM BPEG
WHERE OBJNR = LS_PRPS-OBJNR
AND WRTTP = '41'.
SORT LT_BPEG ASCENDING BY BELNR.
LOOP AT LT_BPEG .
CASE SY-TABIX.
WHEN 1.
LS_Z02FITSSAFE-ZZAFE_AMT_ORI = LT_BPEG-WTGES.
WHEN 2.
LS_Z02FITSSAFE-ZZAFE_AMT_ADJ1 = LT_BPEG-WTGES.
WHEN 3.
LS_Z02FITSSAFE-ZZAFE_AMT_ADJ2 = LT_BPEG-WTGES.
WHEN 4.
LS_Z02FITSSAFE-ZZAFE_AMT_ADJ3 = LT_BPEG-WTGES.
WHEN 5.
LS_Z02FITSSAFE-ZZAFE_AMT_ADJ4 = LT_BPEG-WTGES.
WHEN OTHERS.
LS_Z02FITSSAFE-ZZAFE_AMT_ADJ5 = LS_Z02FITSSAFE-ZZAFE_AMT_ADJ5 + LT_BPEG-WTGES.
ENDCASE.
ENDLOOP.
LS_Z02FITSSAFE-ZZAFE_MAX = '0.1'.
MODIFY Z02FITSSAFE FROM LS_Z02FITSSAFE.
IF SY-SUBRC EQ 0.
COMMIT WORK.
LS_ZZMSGT-ZZMSGTYPE = 'S'.
CONCATENATE 'The AFE information' I_ZZAFE ' was synchronized successfully' INTO LS_ZZMSGT-ZZMSG SEPARATED BY SPACE.
APPEND LS_ZZMSGT TO ZZMSGT.
ELSE.
ROLLBACK WORK.
ENDIF.
ENDFUNCTION.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.