SAP/ABAP 개발
YFIR_AUTO_REFRESH
KindKay
2011. 1. 17. 10:10
*&------------------------------------------------------------------*
*& Report YFIR_AUTO_REFRESH
*&
*&------------------------------------------------------------------*
*&
*&
*&------------------------------------------------------------------*
REPORT YFIR_AUTO_REFRESH.
DATA: G_INIT_ONCE,
OK_CODE(20),
G_REF_FROM_TIMER.
DATA: BEGIN OF ITAB OCCURS 0,
CARRID TYPE SPFLI-CARRID,
CONNID TYPE SPFLI-CONNID,
COUNTRYFR TYPE SPFLI-COUNTRYFR,
CITYFROM TYPE SPFLI-CITYFROM,
AIRPFROM TYPE SPFLI-AIRPFROM,
COUNTRYTO TYPE SPFLI-COUNTRYTO,
CITYTO TYPE SPFLI-CITYTO,
AIRPTO TYPE SPFLI-AIRPTO,
FLTIME TYPE SPFLI-FLTIME,
DEPTIME TYPE SPFLI-DEPTIME,
ARRTIME TYPE SPFLI-ARRTIME,
DISTANCE TYPE SPFLI-DISTANCE,
DISTID TYPE SPFLI-DISTID,
FLTYPE TYPE SPFLI-FLTYPE,
PERIOD TYPE SPFLI-PERIOD,
END OF ITAB.
IF G_INIT_ONCE <> 'X'.
G_INIT_ONCE = 'X'.
CALL FUNCTION 'Z_ENQUE_SLEEP'
STARTING NEW TASK 'WAIT'
PERFORMING WHEN_FINISHED ON END OF TASK.
ENDIF.
WRITE:/ 'wait for 10 sec....'.
AT USER-COMMAND.
CASE OK_CODE.
WHEN 'FCT_R'.
SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE ITAB.
WRITE:/ SY-UZEIT.
LOOP AT ITAB.
WRITE:/ ITAB-CARRID,ITAB-CONNID.
ENDLOOP.
SY-LSIND = 0.
IF G_REF_FROM_TIMER = 'X'.
CALL FUNCTION 'Z_ENQUE_SLEEP'
STARTING NEW TASK 'INFO'
PERFORMING WHEN_FINISHED ON END OF TASK.
G_REF_FROM_TIMER = ''.
ENDIF.
ENDCASE.
*---------------------------------------------------------------------*
* FORM WHEN_FINISHED *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> TASKNAME *
*---------------------------------------------------------------------*
FORM WHEN_FINISHED USING TASKNAME.
RECEIVE RESULTS FROM FUNCTION 'Z_ENQUE_SLEEP'.
G_REF_FROM_TIMER = 'X'.
* Trigger an event to run the at user-command
SET USER-COMMAND 'FCT_R'.
OK_CODE = 'FCT_R'.
SY-UCOMM = 'FCT_R'.
ENDFORM. " WHEN_FINISHED
FUNCTION Z_ENQUE_SLEEP.
*"-------------------------------------------------------------------
*"*"Local Interface:
*"-------------------------------------------------------------------
CALL FUNCTION 'ENQUE_SLEEP'
EXPORTING
SECONDS = 10.
ENDFUNCTION.