Code: Alles auswählen.
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
EXPORTING
functioncode = '=ONLI'
EXCEPTIONS
function_not_supported = 1
OTHERS = 2.
Code: Alles auswählen.
CASE sscrfields.
WHEN 'CLICK'.
...
Endcase
Hilf dir doch selbst:donossi hat geschrieben:kommt im Hintergrund ausgeführt wird, das ausgeführte Programm aber noch die Variablen kennt, welche vor dem Buttonklick berechnet wurden?
Er simuliert mit Mouseklick im Kontextmenu das Ausführen des Reports (SET_FUNCTIONCODE = ONLI).a-dead-trousers hat geschrieben:@JHM: Ich glaub nicht, dass das die Frage beantwortet.
Code: Alles auswählen.
..."Definition Eingabefelder und Buttons
AT SELECTION-SCREEN.
...
CASE sscrfields.
...
WHEN 'CLI2'.
PERFORM start_report_im_hintergrund.
ENDCASE.
START-OF-SELECTION.
.....
FORM start_report_im_hintergrund.
DATA lt_report_parameter TYPE TABLE OF rsparams.
DATA lv_jobcount TYPE tbtcjob-jobcount.
Data lv_job_release TYPE BTCH0000-CHAR1.
data print_parameters TYPE pri_params.
CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
curr_report = sy-repid
TABLES
selection_table = lt_report_parameter.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = 'jobname'
IMPORTING
jobcount = lv_jobcount.
IF sy-subrc = 0.
SUBMIT ZPM_FR_BU_REPORT
TO SAP-SPOOL
WITHOUT SPOOL DYNPRO
VIA JOB 'jobname' NUMBER lv_jobcount
WITH SELECTION-TABLE lt_report_parameter
AND RETURN.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = lv_jobcount
jobname = 'jobname'
STRTIMMED = 'X'
IMPORTING
JOB_WAS_RELEASED = lv_job_release
.
ENDIF.
ENDIF.
ENDFORM. "start_report_im_hintergrund
Code: Alles auswählen.
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
EXPORTING
functioncode = '=ONLI'
EXCEPTIONS
function_not_supported = 1
OTHERS = 2.
sind die Ursachen für die lange Laufzeit bekannt? Ist das ein selbst entwickelter Report? Falls ja, hast du schon mal die Laufzeitanalyse darauf angewendet? Bei vielen Reports lässt sich einiges an Laufzeit rausholen, wenn man die Zugriffe auf die Datenbank / interne Tabellen optimiertdonossi hat geschrieben: Da es sich um einen sehr rechenintensiven Report handelt (Laufzeit evtl. > 1Std), würde ich diesen gerne im Hintergrund ausführen lassen, damit es nicht zu einem Timeout kommt.