Job zyklisch einplanen

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

Job zyklisch einplanen

Beitrag von fbo (ForumUser / 30 / 0 / 0 ) »
Hi,
ich möchte einen Hintergrund-Job zyklisch alle 5 Minuten starten. Allerdings nur in der Zeit von 02:00 bis 08:00 Uhr. Gibt es da einfache Möglichkeiten oder muss ich einen Job kreieren, der dann ein Programm alle 5 Minuten aufruft und in diesem Programm dann ein Event nur in der entsprechenden Zeit auslöst oder die entprechende Zeit checked?
Gruß
Frank

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


Beitrag von cosmo (Specialist / 175 / 0 / 0 ) »
Wir hatten einen Job, der jeden Monat, außer im Juli laufen soll. Im Grunde ein ähnliches Problem. Der Job wurde eventperiodisch eingestellt und von einem weiteren Job angetriggert. Coding:

Code: Alles auswählen.

* Nicht im Juli!

  IF NOT sy-datum+4(2) = '07'.
    CALL FUNCTION 'BP_EVENT_RAISE'
      EXPORTING
        eventid                      = 'Z_MMPV'
*       EVENTPARM                    = ' '
*       TARGET_INSTANCE              = ' '
*     EXCEPTIONS
*       BAD_EVENTID                  = 1
*       EVENTID_DOES_NOT_EXIST       = 2
*       EVENTID_MISSING              = 3
*       RAISE_FAILED                 = 4
*       OTHERS                       = 5
              .
    IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

  ENDIF.
Jörg Krause, Anwendungsentwickler und SAP-Betreuer MM/PP

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hi cosmo.

Das interessiert mich.
Hab mir auch den Fuba mal angeschaut, werd aber nicht so ganz schlau aus diesen Events. Da steht ja nix drin bis auf den namen?! :shock:

Kannste mir mal ne kleine Info geben wie das genau geht?

Hatte hier schon in nem anderen Thread geschrieben das ich nen Hintergrundjob laufen lasse, welcher 3mal am Tag ausgeführt werden soll. Das is ja noch relativ leicht machbar, mit sa38.
Aber der haken ist, dass dieser Job nur Werktags ausgeführt werden darf/soll...das allerdings ist nen tick schwieriger...(vielleicht denk ich aber nur zu verzwickt)

Gruß
Markus

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Hi flo,

die "einfachste" - wenn auch nicht schönste - Lösung ist trivial.

Plane in der Zeit von 2:00 Uhr bis 8:00 Uhr doch alle 5 Minuten einen Job ein, der dein Programm aufruft und diese knapp 50 Jobs werden dann halt mit Periode "täglich" ausgeführt.


q.e.d.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
black_adept hat geschrieben:Hi flo,

die "einfachste" - wenn auch nicht schönste - Lösung ist trivial.

Plane in der Zeit von 2:00 Uhr bis 8:00 Uhr doch alle 5 Minuten einen Job ein, der dein Programm aufruft und diese knapp 50 Jobs werden dann halt mit Periode "täglich" ausgeführt.
Nicht schön ist gut. Was machst du wenn es statt fünf mal sieben Minuten sein sollen? 96 Jobs ändern?

Da finde ich die programmgesteuerte Lösung wirklich besser, viel weniger zeitaufwendig und erheblich transparenter.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von Precog (ForumUser / 38 / 0 / 0 ) »
Da würde ich stumpf -einen- Job einplanen, der rund um die Uhr alle fünf Minuten läuft, ist am wartungsfreundlichsten:

Code: Alles auswählen.

REPORT z_checkjobtime .

GET TIME.
IF   sy-uzeit < '020000'
  OR sy-uzeit > '080000'.
  MESSAGE s208(00) WITH 'Stop. Ausführung nur nachts.'.
  STOP.
ELSE.

* ...... weiter über Event oder direkt

ENDIF.
Frisst auch keine Ressourcen.

Gruß,

Karsten

Beitrag von Thomas R. (Expert / 755 / 78 / 34 ) »
Von mir wieder gelöscht, war schlichtweg Müll...

Nun aber eine bessere Idee:
Die Lösung benutzt 2 Einplanungen.
1. Ein manuell eingeplanter Job mit Periode täglich. Dieser macht nichts anderes, als programmgesteuert einen zweiten Job einzuplanen mit Startzeit 08:00 und kein Start nach 09:00 und Periode 5 Minuten.

Wenn man die Periodizität und die Start-/Endezeit als Parameter dem ABAP des 1. Jobs übergibt hat man keine Probleme mit Laufzeitfensterverschiebungen und Veränderungen des Laufzeitintervalls, wie sie oben angesprochen wurden.

MfG
Thomas R.

Beitrag von brinam (Specialist / 111 / 0 / 0 ) »
Hi Markus,

zu Deiner Frage nach den Events:

Du legst mit SM62 einen Event an (nur einen Namen mit Text). Mit SM64 kannst Du es (testweise) auslösen bzw. im Programm durch den o.g. FB.
"Abgefangen" wird es durch einen Job, der auf ein Event reagiert, d.h. beim Freigeben des Jobs den Button "Nach Ereignis" auswählen und das Ereignis wählen. Ich persönlich benutze als Parameter immer die Mandantennummer.

Du kannst also z.B. im Mandanten x ein Event absetzen, auf das im Mandanten y ein Job reagiert.
Zu beachten wäre ggf. noch, beim Absetzen des FB ein WAIT für ein paar Sekunden voranzuschicken, sonst ist der Event schneller ausgelöst als der Verbucher fertig ist.
In der SM37 sieht man Jobs, die nach einem Event starten nur, wenn man bei der Selektion "Erweiterte Jobauswahl" wählt und den Event-Namen angibt.
Viele Grüße
Britta

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Danke Britta.

Die Info wollte ich haben. :o

Gruß
Markus

Seite 1 von 1

Vergleichbare Themen

4
Antw.
2567
Views
job einplanen?
von juli » 11.10.2005 15:57 • Verfasst in Basis
4
Antw.
2158
Views
Jobkette einplanen
von JohnLocklay » 27.11.2019 13:45 • Verfasst in ABAP® für Anfänger
4
Antw.
2881
Views
FTP Connect als Job einplanen ???
von thesaint » 23.05.2005 08:47 • Verfasst in ABAP® Core
14
Antw.
13872
Views
Programm als Job einplanen/ Parameterübergabe
von Prego » 30.09.2010 07:52 • Verfasst in ABAP® Core
2
Antw.
2342
Views
Jobs einplanen mit FuBa
von errorist » 17.09.2008 13:35 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 5 Stunden von DeathAndPain gelöst 22 / 2797
Daten an Tabelle binden
vor 10 Stunden von Lukas Sanders 2 / 875
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 430

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

Dialog-Container mit Toolbar/Status
vor 5 Stunden von DeathAndPain gelöst 22 / 2797
Daten an Tabelle binden
vor 10 Stunden von Lukas Sanders 2 / 875
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 430

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2467
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9050