RFC als Hintergrund Job

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

RFC als Hintergrund Job

Beitrag von hudsonhawk (ForumUser / 8 / 0 / 0 ) »
Hallo,

ich möchte einen RFC zur Massenverarbeitung als Hintergrund-Job laufen lassen,
damit er mir nicht mit einem Timeout abschmiert.

Bisher dachte ich das ginge mit
CALL FUNCTION ... IN BACKGROUND TASK und COMMIT WORK.
Der ausgelöste Prozess ist aber immer noch ein Dialogprozess in der SM50 :(

Wenn ich jetzt einen Job einplanen muss, z.B. mit dem Umweg über einen
Report den der RFC aufruft, wie kann ich dem Report dann am besten die
Parameter des RFCs beibringen/übergeben?
Über den globalen Speicher ist das ja nicht so elegant.

Oder habe ich da etwas elementares übersehen/falsch verstanden?

Danke im Voraus.

Alf
Vitamin C++? Gute Besserung :shock:

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Krueger ( / / 0 / 3 ) »
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>. :lol:

Beitrag von hudsonhawk (ForumUser / 8 / 0 / 0 ) »
Krueger 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>. :lol:
Weil der Aufruf mittels BSP-Seiten als Frontend aus einem anderen System
kommt. Der RFC ist da schon notwendig. Es handelt sich auch um einen
wiederkehrenden Vorgang zur Massenverarbeitung der über einen Aufruf
durch Anwender wiederholt ausgelöst werden kann.

Der Report mit <F9> läuft als Dialogprozess und somit auch in den Timeout
und hilft mir nicht wirklich.

Alf
Vitamin C++? Gute Besserung :shock:

Beitrag von Krueger ( / / 0 / 3 ) »
aus einem anderen System
kommt.
Der RFC ist da schon notwendig.
DAS (fette) wollt ich einfach erstmal klarstellen... :wink:


Bau in den RFC ein "Commit work" ein... :idea:

Beitrag von hudsonhawk (ForumUser / 8 / 0 / 0 ) »
Krueger hat geschrieben:Bau in den RFC ein "Commit work" ein... :idea:
Ich möchte aber sicherstellen, dass der Prozess im Batch läuft und nicht mit
Tricks den Timeout verhindern. Andernfalls blockiert er ja einen Dialog-Modus.
Theoretisch könnte der Prozess mit unterschiedlichen Daten mehrfach
aufgerufen werden und das System ziemlich lahm legen.

Alf
Vitamin C++? Gute Besserung :shock:

Beitrag von Krueger ( / / 0 / 3 ) »
Dann bau Dir einen RFC, der ein Program (das was der eigentliche RFC im Batch machen soll) im Batch aufruft. :idea:

Beitrag von hudsonhawk (ForumUser / 8 / 0 / 0 ) »
Krueger hat geschrieben:Dann bau Dir einen RFC, der ein Program (das was der eigentliche RFC im Batch machen soll) im Batch aufruft. :idea:
Genau das habe ich ja oben bereits gefragt :shock:
Wie bekomme ich dann die Parameter des RFCs am elegantesten
in das ausführbare Programm hinein. ...

Alf
Vitamin C++? Gute Besserung :shock:

Beitrag von Krueger ( / / 0 / 3 ) »
Über einen/den Selektionsbildschirm....?1?

Beitrag von hudsonhawk (ForumUser / 8 / 0 / 0 ) »
Krueger hat geschrieben:Über einen/den Selektionsbildschirm....?1?
Beispiel?

Alf
Vitamin C++? Gute Besserung :shock:

Beitrag von Krueger ( / / 0 / 3 ) »
Wirklich nur ein BEiSPIEL :wink: , hoffe ist das was du suchst....

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.


Beitrag von hudsonhawk (ForumUser / 8 / 0 / 0 ) »
Krueger hat geschrieben:Wirklich nur ein BEiSPIEL :wink: , hoffe ist das was du suchst....
DAS hilft jetzt mal!
Damit kann ich was anfangen und sehen ob es als Lösung akzeptiert wird.

Danke dafür. :D

Alf
Vitamin C++? Gute Besserung :shock:

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1236
Views
VF11 im Hintergrund?
von Skydizer » 23.01.2007 08:43 • Verfasst in Sales and Distribution
11
Antw.
21831
Views
ALV im Hintergrund möglich?
von c oco » 13.01.2012 14:30 • Verfasst in ABAP® für Anfänger
5
Antw.
4306
Views
Report im Hintergrund
von Kenny » 27.05.2013 08:30 • Verfasst in ABAP® für Anfänger
10
Antw.
3842
Views
Report im Hintergrund
von khb » 09.08.2007 16:25 • Verfasst in ABAP® Core
0
Antw.
1124
Views
CAT2 im Hintergrund
von daalbrec » 18.12.2006 16:12 • Verfasst in Human Resources

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Regex in where
vor 4 Stunden von tar 8 / 183
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1489

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Regex in where
vor 4 Stunden von tar 8 / 183
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1489

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822