Weil der Aufruf mittels BSP-Seiten als Frontend aus einem anderen SystemKrueger hat geschrieben:Warum willst Du einen RFC im eigenen System programmieren???!!!???
Massenverarbeitung geht auch mit einem ganz normalen Fuba.
Schreib doch einfach einen normalen Report und drücke <F9>.
Ich möchte aber sicherstellen, dass der Prozess im Batch läuft und nicht mitKrueger hat geschrieben:Bau in den RFC ein "Commit work" ein... :idea:
Genau das habe ich ja oben bereits gefragtKrueger hat geschrieben:Dann bau Dir einen RFC, der ein Program (das was der eigentliche RFC im Batch machen soll) im Batch aufruft. :idea:
Code: Alles auswählen.
data: JOBNUMMER type TBTCJOB-JOBCOUNT,
JOBNAME type TBTCJOB-JOBNAME,
STRTIMMED type BTCH0000-CHAR1,
JOB_WAS_RELEASED type BTCH0000-CHAR1.
***#############################################
JOBNAME = 'Mein name für den Job'.
***#############################################
* Anlegen eines Hintergrundjobs
call function 'JOB_OPEN'
exporting
DELANFREP = ' '
JOBGROUP = ' '
JOBNAME = JOBNAME
importing
JOBCOUNT = JOBNUMMER
exceptions
CANT_CREATE_JOB = 01
INVALID_JOB_DATA = 02
JOBNAME_MISSING = 03.
if SY-SUBRC = 01 or SY-SUBRC = 02.
message I460(MA).
leave program.
* Hintergrundjob konnte nicht angelegt werden
elseif SY-SUBRC = 03.
message I461(MA).
leave program.
* Hintergrundjob hat keinen Namen
endif.
submit 'MEIN_ZU_STARTENDER_REPORT'
user SY-UNAME " Benutzername
via job JOBNAME " JOBNAME, d.h. TEXT
number JOBNUMMER " JOBNUMMER
with S_tab1 in R_tab1 "Übergabe Selektionstabelle
with P_var1 = Px_var1 "Übergabe Parameter
and return.
if SY-SUBRC <> 0.
* Löschen des Hintergrundjobs, da er nicht eingeplant werden kann
call function 'BP_JOB_DELETE'
exporting
FORCEDMODE = 'X'
JOBCOUNT = JOBNUMMER
JOBNAME = JOBNAME.
message E460(MA).
endif.
move 'X' to STRTIMMED. "immediatly
call function 'JOB_CLOSE'
exporting
JOBCOUNT = JOBNUMMER
JOBNAME = JOBNAME
STRTIMMED = STRTIMMED "immediatly
importing
JOB_WAS_RELEASED = JOB_WAS_RELEASED
exceptions
CANT_START_IMMEDIATE = 01
INVALID_STARTDATE = 02
JOBNAME_MISSING = 03
JOB_CLOSE_FAILED = 04
JOB_NOSTEPS = 05
JOB_NOTEX = 06
LOCK_FAILED = 07.
***
if SY-SUBRC <> 0.
* Löschen des Hintergrundjobs, da er nicht eingeplant werden kann
call function 'BP_JOB_DELETE'
exporting
FORCEDMODE = 'X'
JOBCOUNT = JOBNUMMER
JOBNAME = JOBNAME.
message E460(MA).
else.
* Hintergrundjob wurde erfolgreich eingeplant
message S000(FB) with TEXT-201 JOBNAME TEXT-202.
endif.