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 .

你可能感兴趣的:(Bapi读AFE 代码里面含 有读取状态的代码)