ABAP – Job-Management
Ihr AE-System bietet verschiedene Möglichkeiten, die Verarbeitung in SAP zu unterstützen. Sie können Jobs ausführen, die in SAP vordefiniert sind, oder Reports ausführen, bei denen es sich um ausführbare ABAP-Programme handelt. Sie können externe Befehle oder Programme, Intercepted Jobs usw. ausführen. Sie verwenden dafür bestimmte SAP-Jobobjekte und Unterjobs. Sie können auch Anwendungsrückgabewerte von SAP-Schritten analysieren.
Diese Seite beinhaltet Folgendes:
Ausführung von Jobs im ABAP Stack (CCMS)
Auf den Prozessseiten der SAP-Jobobjekte können Sie Anweisungen definieren, die dann im SAP-System verarbeitet werden. Die Ansicht Formulare eines SAP-Jobobjekts bietet eine grafische Schnittstelle, die mit dem SAP-System verbunden ist. Über diese Schnittstelle können Sie Daten wie Varianten direkt auswählen.
Sie können auch den Objekttyp RemoteTaskManager verwenden, um Jobs in SAP zu überwachen und zu starten. Dieser Objekttyp ist besonders für Intercepted Jobs nützlich. Siehe
Die Process Monitoring-Perspektive informiert Sie über Aufgabenstatus, wobei auch die Child-Prozesse berücksichtigt werden. Bei Bedarf können Sie Aufgaben neu starten oder abbrechen. Nach der Beendigung der Aufgabe in der AE können Sie auf den Report zugreifen, der auch Meldungen des SAP-Systems enthält. Weitere Informationen finden Sie unter Reports
AE-JCL für SAP
Die folgenden Script-Elemente stehen zur Verfügung:
-
Ausführen eines externen Kommandos.
-
Ausführen eines externen Programmes.
-
Führt Intercepted Jobs unter Kontrolle aus
-
Führt in SAP eingeplante Jobs unter der Kontrolle der AE aus.
-
Führt den angegebenen Report aus.
-
Wählt SAP-Jobs aus und listet das Ergebnis im Aktivierungsreport oder in einer Datei auf
-
Modifiziert einen ABAP-Step
-
Setzt einen bereits freigegebenen SAP-Job auf den Status Geplant zurück.
Siehe auch: Beispiel: Einen SAP-ABAP-Job erstellen innerhalb der AE
Child-Prozesse (JOBD)
SAP-Jobs können aus einem oder mehreren Unterjobs (uChild-Prozesse) bestehen, beispielsweise in Prozessketten. Die AWI kann diese untergeordneten Prozesse in ihrer Process Monitoring-Perspektive anzeigen. Alle SAP-Jobs haben eine spezielle Seite für Child-Prozesse. Diese Seite wird verarbeitet, wenn ein einzelner Child-Prozess beendet wird, wodurch Sie Ergebnisse sofort analysieren können.
Wichtig!
-
Sie können die Parent/Child-Funktion in der SE38-Transaktion mithilfe des Programms INITXBP2 aktivieren.
-
Der Objekttyp der Child-Prozesse lautet JOBD.
-
Damit eine Nachbildung der Child-Prozesse im AE
-
Beachten Sie, dass Child-Prozesse ihrerseits wiederum auch Child-Prozesse besitzen können. Sie können sie in der Spalte Parent sehen.
-
Das Feld Statustext im Teilfenster Detail der Child-Prozesse zeigt den Namen des SAP-Jobs an, das Feld Prozess-ID die SAP-Jobnummer. Mit dieser Information können Sie den Job in SAP finden.
-
Sie können Child-Prozesse in den entsprechenden Parent-Prozessen deaktivieren.
Für jeden Child-Prozess werden Listen von Aufgabenausführungen und Reports erstellt. Sie können sie über die jeweiligen Ausführungslisten öffnen. Siehe Ausführungsdaten
Reports über die Child-Prozesse sind auf die gleiche Weise aufgebaut wie der Report ihres obersten Parent-Prozesses. Die einzige Ausnahme ist, dass sie nur Informationen über den jeweiligen Prozessschritt enthalten. Die Einstellungen für Job-Reports (Datenbank, Datei oder nur bei Fehlern) werden vom obersten Parent-Prozess übergeben. Sie können die Reportlänge mit den Parametern JOBLOG=, PROCESSLOG= und LONGTEXT= der Script-Elemente BW_ACTIVATE_CHAIN und BW_RESTART_CHAIN definieren. Siehe auch Reports
AE-JCL für SAP
Die folgenden Script-Elemente stehen zur Verfügung:
-
Startet eine Prozesskette.
-
Setzt eine abgebrochene Prozesskette fort.
-
Führt Intercepted Jobs unter der Kontrolle von AE aus.
-
Führt in SAP eingeplante Jobs unter der Kontrolle der AE aus.
-
Führt den angegebenen Report aus.
Intercepted Jobs
SAP-Jobs enthalten eine TBCICPT1-Tabelle, in der Sie Filterkriterien definieren können. Sie können auf diese Tabelle zugreifen und ihre Einträge über die Formularansicht auf der Seite Prozess von SAP-Jobs (XBP 2.0) verwalten. Verwenden Sie das Programm INITXBP2, um die Intercept-Funktion in der SE38-Transaktion zu aktivieren. Alternativ können Sie den Kriterienmanager (XBP3.0) auf der Seite Prozess verwenden, um komplexe Filter in einem oder mehreren Profilen zu definieren. Verwenden Sie in diesem Fall die SM62-Transaktion.
Filterkriterien können einen Mandanten, einen Jobnamen oder einen Benutzer enthalten. Wenn ein Benutzer, der in dieser Tabelle definiert ist, einen Job startet, der die angegebenen Filterkriterien erfüllt, ändert sich der Status des Jobs in einen eingeplanten Status. Diese Statusänderung erfolgt unabhängig vom definierten Startmodus(z. B. Sofort).
Um Intercepted Jobs auszuführen, können Sie entweder
- Den Remote Task Manager verwenden, um Intercepted Jobs zu steuern und zu überwachen. Siehe Remote Task Manager-Objekte definieren
- Das unten beschriebene Script-Element R3_ACTIVATE_INTERCEPTED_JOBS verwenden.
AE-JCL für SAP
Die folgenden Script-Elemente sind verfügbar, um Intercepted Jobs auszuführen oder zu ändern:
-
Führt Intercepted Jobs unter der AE Kontrolle von aus.
-
Liest die Filtertabelle für Intercepted Jobs aus und speichert sie im Aktivierungslog oder in einer Datei
-
Ändert die Filtertabelle von Intercepted Jobs. Verwenden Sie es, um die Tabelleneinträge dynamisch zu ändern.
Anwendungsrückgabewert von SAP Steps auswerten
Ein SAP-Job-Schritt kann auch einen Anwendungsrückgabewert haben. Sie können auf diesen Wert entweder über das Script-Element R3_GET_APPLICATION_RC oder über einen Schrittlistenreport zugreifen. Dieser Report enthält Informationen zu den Schritten und damit auch den Anwendungsrückgabewert. Sie können auf den Anwendungsrückgabewert auch über den Job-Report zugreifen.
Wichtig! Wenn Sie die XBP-Schnittstelle verwenden, gibt es keinen Anwendungsrückgabewert.
Zugriff über ein Script-Element
Sie können das Script-Element R3_GET_APPLICATION_RC verwenden, um den Anwendungsrückgabewert eines oder mehrerer Job-Schritte zu überprüfen. Bei Bedarf können Sie den AE-Job abbrechen. Weitere Informationen finden Sie unter R3_GET_APPLICATION_RC.
Zugriff über den Schrittlistenreport
Dieser spezielle Reporttyp enthält Informationen zu den Steps und damit auch den Anwendungsrückgabewert. Lesen Sie den Rückgabewert mit Hilfe von XML-Script-Elementen aus. Weitere Informationen finden Sie unter Script-Funktionen für XML-Elemente und Spezielle Reports für SAP-Jobs
Beispiel
:SET &xmlreport# = XML_OPEN(REPORT,,SSTP)
! Das erste Element lesen
:SET &job# = XML_GET_FIRST_CHILD(&xmlreport#)
:SET &name# = XML_GET_NODE_NAME(&job#)
:PRINT "Erstes Element: &name#"
! Das zweite Element lesen
:SET &child# = XML_GET_FIRST_CHILD(&step#)
! Die Child-Elemente des Steps lesen
:WHILE &child# <> ""
:SET &name# = XML_GET_NODE_NAME(&child#)
! Den Anwendungsrückgabewert lesen
:IF &name# = "RC"
: SET &applrc# = XML_GET_NODE_TEXT(&child#)
: PRINT "Anwendungsrückgabewert: &applrc#"
:ENDIF
:SET &child# = XML_GET_NEXTSIBLING(&child#)
:ENDWHILE
:XML_CLOSE
Zugriff über den Job-Report
Informationen zu SAP Job-Steps werden im Job-Report protokolliert. Dazu gehört auch der Anwendungsrückgabewert, wenn Sie die AE
Hinweise:
- Wenn ein Schritt keinen Anwendungsrückgabewert hat, wird Appl-RC n/a in den Job-Report geschrieben.
- Mit der Script-Funktion können Sie die Anwendungsrückgabewerte auslesen und weiterverarbeiten. Weitere Informationen finden Sie unter PREP_PROCESS_REPORT.
Das folgende Beispiel ruft die ABAP ZZ_TEST_APPL_RC einmal in einem Job auf. Sein Anwendungsrückgabewert soll ausgelesen werden.
! Wählen Sie die Zeile mit ABAP und den Anwendungsrückgabewert aus.
: SET &HND# = PREP_PROCESS_REPORT (,,REP, "*ZZ_TEST_APPL_RC*Appl-RC*" )
: PROCESS &HND#
: SET &LINE# = GET_PROCESS_LINE ( &HND# )
! Suchen Sie die genaue Position in einer Zeile, an der der "Appl RC" startet.
: SET &POS_STR# = STR_FIND ( &LINE# , "Appl-RC" )
! Der Anwendungsrückgabewert befindet sich hinter 8 Zeichen.
: SET &POS_ARC# = ADD ( &POS_STR# ,8)
! Lesen Sie den Anwendungsrückgabewert.
: SET &ARC# = STR_CUT ( &LINE# , &POS_ARC# )
! Überprüfen Sie, ob im Step wirklich ein Anwendungsrückgabewert bereitgestellt wird.
: IF &ARC# <> "n/a"
! Der gelesene Wert ist ein String und muss daher in eine Zahl konvertiert werden.
: SET &ARC# = CINT ( &ARC# )
! Darüber hinaus gibt es Script-Anweisungen, die den Anwendungsrückgabewert weiterverarbeiten.
: PRINT &ARC#
: ENDIF
: ENDPROCESS
Siehe auch: