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
*"----------------------------------------------------------------------

  DATALS_Z02FITSSAFE TYPE Z02FITSSAFE.
  DATAL_OBJNR LIKE JEST-OBJNR.
  DATAL_LINE LIKE BSVX-STTXT.
  DATALS_PRPS TYPE PRPS.
  DATAL_UP LIKE PRHI-UP.

  DATAL_MSG LIKE Z02FITSSLOG-ZZMSG.
  DATALS_ZZMSGT TYPE ZZMSGT.

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