AE-REST-API - Allgemeine Informationen
Als Entwickler oder Systemadministrator können Sie über die REST-API mit dem Automation Engine-System über eine hochmoderne, technologieunabhängige Schnittstelle kommunizieren.
Diese Seite beinhaltet Folgendes:
Die AE-REST-API bietet eine Schnittstelle für Anwendungen von Drittanbietern, um mit der Automation Engine zu interagieren. Die AE-REST-API ermöglicht es dem Benutzer, Automation Engine nicht nur mit Java, sondern auch mit anderen Programmiersprachen anzusprechen.
Die REST-Anfragen und -Antworten enthalten JSON-strukturierte Daten:
Optionale Eigenschaften mit dem Wert Null werden in der Antwort-Payload unter Umständen weggelassen.
Die AE-REST-API unterstützt sowohl HTTP als auch HTTPS (empfohlen). HTTPS kann mit dem Parameter sslEnabled in der Konfigurationsdatei ucsrv.ini der Automation Engine eingestellt werden. Weitere Informationen finden Sie in der Beschreibung der HTTPS/SSL-Einrichtung für das AE REST-API in Installation des JCP.
Die aktuelle Version der AE-REST-API ist v1. Diese Informationen spiegeln sich in der URI wider und sind daher für den Zugriff auf Ihre AE-REST-API-Schnittstelle relevant.
Die AE-REST-API kann mehrfach installiert werden. Die Installation kann entweder mit unterschiedlichen Portnummern auf einem Knoten oder auf verschiedenen Knoten mit derselben Portnummer erfolgen.
Hinweise:
-
Alle Zeitstempelwerte werden als in der Datenbank gespeicherte Werte zurückgegeben und nicht von der Automation Engine konvertiert. Der REST-Mandant ist für die Konvertierung verantwortlich.
-
Die Automation Engine prüft nicht, ob bei der Ausführung eines Objekts ein Zeitzonenobjekt vorhanden ist. Auch die AE-REST-API überprüft dies nicht.
-
Wenn Sie die AE-Authentifizierung verwenden und ein Benutzerobjekt importieren, ist der Benutzer gesperrt. Er muss im Mandanten 0 entsperrt werden und ein neues Passwort erhalten. Dieses Verhalten gilt nicht bei Verwendung der LDAP-Authentifizierung. Weitere Informationen finden Sie unter Anmeldedaten über LDAP und/oder LDAP Sync authentifizieren.
AE-REST-API und ILM
Beim täglichen Betrieb eines Automation Engine-Systems sammeln sich große Mengen an Report-, statistischen und Verlaufsdaten an. Eine Partitionierung der Datenbank mit ILM ist eine effiziente Methode, um mit diesen Mengen umzugehen und die Objektversion ebenso zu erhalten wie die gelöschten Objektdaten. ILM-Aktionen erfordern das Ausschalten von Teilen der Automation Engine-Datenbanktabellen; daher sollten während der Arbeit mit ILM keine Datenbankaktionen stattfinden. Weitere Informationen finden Sie hier: ILM - Information Lifecycle Management.
Wichtig! Der AEREST-Webservice erkennt automatisch, ob es laufende ILM-Aktionen gibt und blockiert in diesem Fall bestimmte REST-Anfragen. In diesem Fall wird eine Fehlermeldung zurückgegeben, die anzeigt, dass die REST-API aufgrund von ILM-Aktionen vorübergehend nicht verfügbar ist.
Lokalisierung
REST-API-Meldungen sind standardmäßig auf Englisch. Die AE-REST-API unterstützt keine andere Sprache.
Mehrere REST-API-Prozesse einrichten
Die JCP-Installation ist sowohl für die AE-REST-API als auch für die erweiterte Objektsuche relevant. Sie können einen einzelnen JCP installieren. In diesem Fall werden alle REST-Anfragen an diese einzelne AE-REST-API-Instanz gesendet, und es ist keine REST-API verfügbar, wenn das JCP ausgefallen ist. Weitere Informationen finden Sie unter Installation des JCP
Sie können auch ein System mit mehreren JCPs einrichten. In diesem Fall werden zwei JCPs in einem Cluster verwendet, aber nur einer von beiden ist dann verfügbar.
Wichtig! Bei der Verwendung mehrerer JCPs ist es zwingend erforderlich, dass jeder JCP seine eigene Automation Engine-Konfigurationsdatei ucsrv.ini verwendet. Wenn nur eine INI-Datei für mehr als einen JCP verwendet wird, verbindet sich der erste erfolgreich, während die anderen beim Versuch, den gleichen REST-Port zu registrieren, abgebrochen werden, wenn beide auf demselben Knoten laufen. In die Logdatei des JCP wird eine Fehlermeldung unter Angabe des Grunds für den Abbruch geschrieben.
Die Einrichtung eines Systems mit mehreren JCPs kann für den Abgleich und die Bereitstellung von Ausfallsicherungen sinnvoll sein, da die REST-Anfragen gesendet und nur an verfügbare JCPs verteilt werden.
Um diese Konfiguration nutzen zu können, muss auf jedem Knoten ein JCP installiert sein. Port1 und Port2 können die gleiche Portnummer haben (z. B. 8088, den Standardwert in der Konfigurationsdatei), da JCPs/REST-Webdienste auf verschiedenen Hosts (Host1 und Host2) laufen. Host3:port3 muss als einziger Kontaktpunkt für alle AE-REST-API-Anfragen öffentlich zugänglich sein. Host1:port1 und Host2:Port2 dürfen nur dem HTTP/HTTPS-Proxy bekannt sein.
Wenn eine virtuelle IP verwendet wird, können beide JCPs über die gleiche IP-Adresse erreicht werden, was bedeutet, dass die Endpunkte die gleiche Basis-URI haben: http(s)://{host}:{port}/ae/api/v1/{client}/....
Der REST-Client oder ein HTTP/HTTPS-Proxy senden periodisch eine /ping-Anfrage, um die Verfügbarkeit der JCPs zu überprüfen. Abhängig vom Ergebnis weiß der HTTP/HTTPS-Proxy, welche JCPs derzeit verfügbar sind.
- In einer aktiv/aktiv-Einstellung für hohe Verfügbarkeit sollen beide verfügbar sein.
- In einer aktiv/passiv-Einstellung für hohe Verfügbarkeit soll nur einer verfügbar sein.
Der REST-Mandant oder HTTP/HTTPS entscheiden dann, wohin die REST-Anfragen gesendet werden, abhängig von der Auswahlstrategie des Proxys. Wenn der REST-Mandant Anfragen an den HTTP/HTTPS-Proxy (Host3:Port3) sendet, sendet der Proxy diese automatisch an einen JCP/REST-Webdienst.
- Bei einer aktiv/aktiv-Einstellung für hohe Verfügbarkeit sendet er sie an einen der beiden verfügbaren. Welcher davon verwendet wird, hängt von der Auswahlstrategie des Proxys ab (z. B. niedrigste Last oder Verbindungen).
- Bei einer aktiv/passiv-Einstellung für hohe Verfügbarkeit sendet er sie normalerweise an den verfügbaren.
Die AE-REST-API bietet zwei verschiedene Statusprüfungen:
-
eine schnelle /ping-Anfrage, die von HTTP/HTTPS-Proxys verwendet werden soll, um sicherzustellen, dass der JCP- und REST-Webservice verfügbar ist. Diese Statusprüfung liefert keine Details zu den benötigten Backend-Komponenten:
../ping
-
eine Systeminformations-Statusprüfung, die Details über den JCP- und REST-Webservice liefert. Diese Statusprüfung liefert auch Details zu den benötigten Backend-Komponenten:
../{client}/system/health
Authentifizierung
Die AE-REST-API unterstützt die Standardauthentifizierung. Die Mandanten-, Benutzer-, Abteilungs- und Passwortinformationen sind Teil des HTTP(S)-Headers und der URI und werden daher für die Standardauthentifizierung verwendet. Die Automation Engine entscheidet, ob eine REST-Anfrage im Benutzerkontext erlaubt ist oder nicht und antwortet entsprechend.
Die Anfrage wird verarbeitet, wenn die in den Authentifizierungsinformationen eingegebene Mandantennummer mit derjenigen in der URI übereinstimmt. Wenn die Mandantennummern unterschiedlich sind, wird ein Fehler zurückgegeben.
Die AE-REST-API unterstützt keine Passwortverschlüsselung für das Passwort, das in der REST-Anfrage angegeben ist. Es wird empfohlen, HTTPS zu verwenden, um die Übertragung dieser Informationen zu sichern. Weitere Informationen finden Sie unter Passwörter verschlüsseln.
Berechtigungen
Ein effizientes und sicheres System zum Schutz des Datenzugriffs ist ein wesentlicher Bestandteil unseres Sicherheitskonzepts. Die Sicherheit auf Datenebene kann so umfassend sein wie der Administratorzugriff auf eine Rolle oder so hochdetailliert wie "Lesezugriff auf nur einen Job in einem bestimmten Ordner". Weitere Informationen finden Sie unter Zugriff
Die AE-REST-API erfordert auch bestimmte Berechtigungen, um verschiedene Operationen durchzuführen, und prüft, ob sie bei der Ausführung vorhanden sind.
-
Um Variablen, Kommentare und Reports einer Ausführung (GET) abzurufen, benötigen Sie die Berechtigung S - Ausführungen.
-
Um einer Ausführung (POST) Kommentare hinzuzufügen, benötigen Sie die Berechtigung M - Modifizieren zur Laufzeit.
Weitere Informationen finden Sie unter Automation Engine-Berechtigungen gewähren.
Zur Laufzeit generieren
Um Timeouts bei Anfragen zu vermeiden, müssen die auszuführenden Objekte das Attribut Aufgabe generieren zur: Laufzeit haben. Beim Ausführen eines Objekts prüft das System, ob dieses Attribut entsprechend gesetzt wurde. Wenn es nicht gesetzt ist, wird die Ausführung nicht gestartet. Weitere Informationen finden Sie auf der Seite Seite "Attribute".
Durch das Setzen dieses Attributs wird die RunID sofort zurückgegeben, sodass die REST-Antwort sofort der Anfrage folgt.
Wenn diese Eigenschaft auf Generiere Aufgabe zur Aktivierungszeit gesetzt ist, kann eine lange Verarbeitung die sofortige REST-Antwort verhindern, was zu einem Timeout führen kann.
Hinweis: Beim Neustart einer Ausführung ist das Attribut Aufgabe generieren zur Laufzeit nicht gesetzt.
AE REST-API-Polling
Sie können den Server abfragen, um den Status einer REST-Anfrage/Antwort-Sequenz zu überprüfen, falls das gewünschte Ergebnis noch nicht verfügbar ist. Beispielsweise können Sie den Server abfragen, nachdem Sie ein Objekt ausgeführt und die RunID erhalten haben, um zu überprüfen, ob die Ausführung beendet ist.
Das folgende Beispiel zeigt, wie die Abfrage des Ausführungsstatus über die AE-REST-API erfolgen kann:
Eingabe über PromptSet
PromptSet-Variablen können bei der Ausführung durch die AE-REST-API-Anforderung übergeben werden, da den auszuführenden Objekten mindestens ein PromptSet zugeordnet ist.
Beispiel für den Inhalt einer REST-Anfrage:
-
"&TEXT1#"
Feldtyp: Textfeld
-
"&NUMBER1#
Feldtyp: Zahlenfeld
-
"&CHECKBOX_ARRAY#"
Feldtyp: Kontrollkästchenfeld
Es wird empfohlen, ein Kontrollkästchenfeld als Array zu definieren, wenn es verwendet wird, um Werte über die AE-REST-API zu übergeben.
Empfehlungen: Array = true
-
&CHECKBOX_STRING#
Feldtyp: Textfeld
Empfehlungen: Array = false, Trennzeichen = ";"
-
"&MULTILINE1#"
Feldtyp: Textfeld
Empfehlungen: Attribut "Mehrzeilig" aktiviert, \n für Zeilenumbrüche
Hinweise:
-
Das Attribut "Array" des PromptSet-Feldes CHECKBOX_ARRAY muss auf true gesetzt werden, da es von Automation Engine als Array behandelt werden muss.
-
Hier können keine Objektvariablen gesetzt werden.
-
Einige REST-Anfragen enthalten die inputs-Parameter, die PromptSet-Variablen auflisten. Dieser Kontext impliziert, dass es sich bei allen um Variablen handelt und es besteht keine Notwendigkeit, explizit ein vorangestelltes "&" anzugeben. Das nachgestellte "#" hängt von der Variablendefinition ab. Weitere Informationen finden Sie unter Variablen und VARA-Objekte.
Filter für Ausführungsliste
Die Anfrage GET ../v1/{client}/executions liefert eine Liste aller Ausführungen. Sie können Abfrageparameter als Teil der URI hinzufügen, um sie zu filtern.
Hinweis: Die Automic Web Interface hat verschiedene Einstellungen für Listenansichten, die für die Anwendung von Filtern relevant sind. Die hierarchische Ansicht, die bei Verwendung von Filtern nur Parent-Aufgaben betrifft, und die Listenansicht, die sowohl Parent- als auch Child-Aufgaben betrifft. Die AE-REST-API unterstützt nur die Listenansicht.
Sie können Filter für die folgenden Ausführungsparameter anwenden:
-
name
Geben Sie den Namen (..?name=[NAME]) oder einen Teil des Namens (..?name=[NAM]*) der gesuchten Ausführung ein.
Hinweis: Sie können den Abfrageparameter nur einmal verwenden.
-
name_exclude
Verwenden Sie diesen Parameter, um die Ausführungen mit einem bestimmten Namen auszuschließen.
-
Alias
Der Alias ist ein optionaler, zusätzlicher Name, der einer Aufgabe gegeben wird, wenn sie Teil eines Workflows ist. Ist ein Alias definiert, wird er anstelle des Namens angezeigt.
Geben Sie den Alias (..?alias=[NAME]) oder einen Teil des Alias (..?alias=[NAM]*) der gesuchten Ausführung ein.
Hinweis: Sie können den Abfrageparameter nur einmal verwenden.
Wenn Sie Sonderzeichen für den Ausführungs-Alias festlegen möchten, müssen Sie den Schlüssel ALIAS_SPECIAL_CHARACTERS in der Variablen UC_CLIENT_SETTINGS im entsprechenden Mandanten definieren, siehe ALIAS_SPECIAL_CHARACTERS.
-
Typ
Sie können Abfrageparameter hinzufügen, um nach folgenden Objekttypen zu filtern: CALL, SCRI, JOBD, CPIT, JOBG, C_PERIOD, JOBF, REPORT (nur Agentenjob-Reports), JSCH, JOBP, JOBS, JOBQ, EVNT, API, C_HOSTG.
Hinweis: Mit diesem Parameter können Sie mehrere Werte verwenden. Sie können den Parameter entweder einmal verwenden und die Werte durch Kommas trennen (type=JOBS,JOBP), oder den Parameter mehrmals in einer Anfrage verwenden (type=JOBS&type=JOBP).
-
Zeitraum
Verwenden Sie eine Kombination der folgenden Parameter, um Ausführungen innerhalb eines bestimmten Zeitraums zu finden.
-
time_frame_option: Verwenden Sie diesen Parameter, um festzulegen, welche Art von Ausführungen Sie innerhalb eines bestimmten Zeitraums finden möchten. Die erlaubten Werte sind:
-
all: alle Ausführungen, die innerhalb des angegebenen Zeitraums starten, enden oder ausgeführt werden
-
activation: alle Ausführungen, die innerhalb des angegebenen Zeitraums aktiviert wurden
-
start: alle Ausführungen, die innerhalb des angegebenen Zeitraums gestartet wurden
-
end: alle Ausführungen, die innerhalb des angegebenen Zeitraums beendet wurden
-
-
time_frame_from: Startdatum und Zeitraum
-
time_frame_to: Enddatum und Zeitraum
-
-
status
Verwenden Sie diesen Parameter, um nach einem möglichen Status zu suchen, der von der Automation Engine aufgezeichnet wurde. Weitere Informationen finden Sie unter System-Rückgabewerte von ausführbaren Objekten.
Hinweis: Mit diesem Parameter können Sie mehrere Werte verwenden. Sie können den Parameter entweder einmal verwenden und die Werte durch Kommas trennen (status=1900,1800), oder den Parameter mehrmals in einer Anfrage verwenden (status=1900&status=1800).
-
agent
Geben Sie den Agentennamen (..?agent=[NAME]) oder einen Teil des Agentennamens (..?agent=[NAM]*) der gesuchten Ausführung ein.
Hinweis: Sie können den Abfrageparameter nur einmal verwenden.
-
agent_exclude
Verwenden Sie diesen Parameter, um die von einem bestimmten Agentennamen verarbeiteten Ausführungen auszuschließen.
-
platform
Verwenden Sie diesen Parameter, um Ausführungen zu finden, die von einem bestimmten Agententyp verarbeitet wurden. Zum Beispiel alle Ausführungen, die von Windows-Agenten verarbeitet werden.
Hinweis: Mit diesem Parameter können Sie mehrere Werte verwenden. Sie können den Parameter entweder einmal verwenden und die Werte durch Kommas trennen (platform=WIN,LINUX), oder den Parameter mehrmals in einer Anfrage verwenden (platform=WIN&platform=LINUX).
-
queue
Verwenden Sie diesen Parameter, um nach Ausführungsqueues zu suchen.
Hinweis: Mit diesem Parameter können Sie mehrere Werte verwenden. Sie können den Parameter entweder einmal verwenden und die Werte durch Kommas trennen (queue=CLIENT_QUEUE,PRIO_QUEUE), oder den Parameter mehrmals in einer Anfrage verwenden (queue=CLIENT_QUEUE&queue=PRIO_QUEUE).
-
include_deactivated
Verwenden Sie include_deactivated, um deaktivierte Ausführungen bei der Anwendung von Filtern in die Suche einzubeziehen, da sie standardmäßig nicht berücksichtigt werden.
Dieser Parameter kann sich auf den Zeitraum auswirken:
-
Wenn der Parameter =false oder missing ist und kein Zeitraum definiert ist, ist der interne Standardwert für den Zeitraum unbegrenzt.
-
Wenn der Parameter =true ist und kein Zeitraum definiert ist, ist der interne Standardwert für den Zeitraum 12 Stunden.
-
-
run_id
Verwenden Sie diesen Parameter, um eine Ausführung mit einer bestimmten RunID zu suchen.
-
user
Geben Sie den Namen des Benutzers ein, der die von Ihnen gesuchten Ausführungen besitzt.
Hinweis: Wenn der Benutzerobjektname als {Benutzer}/{Abteilung} definiert wurde, muss die Abfrage dies wiedergeben (user=smith/development). Wenn die Abteilungen nicht relevant sind, können Sie den Benutzer alleine oder gefolgt von einem Platzhalter (user=smith, user=smith*) verwenden.
-
user_exclude
Verwenden Sie diesen Parameter, um Ausführungen auszuschließen, die einem bestimmten Benutzer gehören.
-
archive_key1 und archive_key2
Archivschlüssel sind frei definierbare Schlüsselwörter, die Objekten zugewiesen werden können, um Benutzern zu helfen.
Geben Sie einen oder beide Archivschlüssel der Ausführungen ein, nach denen Sie suchen.
-
archive_key1_exclude und archive_key2_exclude
Verwenden Sie diese Parameter, um Ausführungen mit bestimmten Archivschlüsseln auszuschließen.
-
commented_only
Verwenden Sie diesen Parameter, um nur nach Ausführungen zu suchen, die einen Kommentar enthalten.
-
modified_only
Verwenden Sie diesen Parameter, um nur nach Ausführungen von Workflows (JOBP) zu suchen, die zur Laufzeit geändert wurden.
-
Remote-Statusnummer und Text
Verwenden Sie diese Parameter, um nach Ausführungen zu suchen, die von externen Systemen basierend auf ihrem Status in diesen Anwendungen verarbeitet werden.
Hinweis: Diese Parameter können in SAP-, Datenbank- und Rapid Automation-Jobs (JOBS) und für RemoteTaskManager (JOBQ) verwendet werden. Bei SAP-, SAP RemoteTaskManager- und Datenbank-Jobs muss die Meldungsnummer des Remote-Status angegeben werden.
-
remote_status_number
Geben Sie die Meldungsnummer der Ausführung ein, nach der Sie im Remote-System suchen.
Möglich sind dabei die Werte:
-
SAP
6500 - geplant
6501 - freigegeben
6502 - bereit
6503 - aktiv
6504 - fertig
6505 - abgebrochen
6514 - angehalten
2004972 - Wartet auf SAP-Server
-
DB
2012025 - Wartet auf Datenbank
-
-
remote_status_text
Geben Sie den Status der Ausführung im Remote-System ein.
-
-
zdu_version
Bei der Aktualisierung der Automation Engine mit der Zero Downtime Upgrade laufen die aktuelle und die neue Version gleichzeitig, sodass alle Ihre Prozesse trotz der Aktualisierung fortgesetzt werden können.
Verwenden Sie zdu_version, um nach Ausführungen zu suchen, die in Ihrem aktuellen (B) oder im neuen (T) System verarbeitet werden.
-
sync_usage
Aufgaben, die aufgrund von Abhängigkeiten, die in dem ihnen zugeordneten Sync (SYNC)-Objekt definiert sind, nicht gestartet oder beendet werden, erhalten den Status Warten auf Sync.
Verwenden Sie sync_usage, um nach Ausführungen zu suchen, die das zugehörige Synchronisierungsobjekt enthalten.
Hinweis: Mit diesem Parameter können Sie mehrere Werte verwenden. Sie können den Parameter entweder einmal verwenden und die Werte durch Kommas trennen, oder den Parameter mehrmals in einer Anfrage verwenden.
Wichtig! Parameter, die es Ihnen ermöglichen, bestimmte Eigenschaften auszuschließen, sind nur in Kombination mit ihren Gegenstücken wirksam.
Beispiel
name und name_exclude
-
../executions?name=SCRI1
Die Anfrage umfasst Ausführungen mit dem Namen SCRI1.
-
../executions?name=SCRI&name_exclude=true
Die Anfrage schließt Ausführungen mit dem Namen "SCRI1" aus.
Sie können die Abfrageparameter beliebig kombinieren, um einfache oder komplexe Filter zu erstellen. Zum Beispiel können Sie:
-
Nach einem bestimmten Ausführungsnamen mit Ausnahme deaktivierter Ausführungen suchen
../executions?name=JOBS.24
-
Nach einem bestimmten Ausführungsnamen inklusive deaktivierter Ausführungen suchen
../executions?name=JOBS.24&include_deactivated=true
-
Nach einem bestimmten Satz von Ausführungsarten suchen
../executions?type=JOBP&type=JOBS
../executions?type=JOBP,JOBS
-
Nach einem absoluten Zeitraum suchen
../executions?time_frame_option=all&time_frame_from=2017-07-04T12:43:45Z&time_frame_to=2017-07-04T06:23:12Z
-
Platzhalterzeichen verwenden (unterstützt für name, alias, agent, user und archive_key1&2)
../executions?name=NAME
../executions?alias=NAM*
-
Komplexe Filter verwenden
../executions?name=OBJECT&type=JOBP&type=JOBS&queue=CLIENT_QUEUE&queue=PRIO_QUEUE&status=1900,1800&include_deactivated=true&time_frame_option=all&time_frame_from=2017-07-04T12:43:45Z&time_frame_to=2017-07-04T06:23:12Z
../executions?name=OBJECT& type=JOBP,JOBS&platform=WIN,LINUX,BS2000&queue=CLIENT_QUEUE&status=1900&archive_key1=hallo&archive_key1_exclude=true&include_deactivated=true&commented_only=true&modified_only=true
Paginierung für Child-Aufgabenausführungen und Ausführungslisten
Eine Paginierung kann nützlich sein, wenn eine Anfrage an die AE-REST-API zahlreiche Ergebnisse liefert, da die Ergebnismenge, die sich schnell und oft ändern kann, pro Anfrage/Antwort in Blöcke (Seiten) unterteilt wird. Wenn Sie beispielsweise eine Anfrage senden, um alle Child-Aufgabenausführungen einer bestimmten Ausführung zu erhalten, werden möglicherweise Tausende von Datensätzen abgerufen. In der AE-REST-API können Sie die Nummerierung verwenden, um die Ergebnisse einfach zu handhaben.
Grenzparameter
Die AE REST-API ermöglicht es Ihnen, die folgenden Grenzparameter einzustellen:
-
max_results
Definiert die maximale Anzahl der Ergebnisse pro Seite.
Standardwert: 50
Wenn dieser Parameter weggelassen wird, wird der Standardwert verwendet.
-
start_at_run_id
Definiert die RunID des letzten Eintrags der vorherigen Seite.
Wenn dieser Parameter weggelassen wird, wird die erste Seite zurückgegeben.
URI-Struktur mit Paginierungsparametern
Die URI einschließlich der Paginierungsparameter besteht aus den folgenden Elementen:
http://{host}:{port}/ae/api/v1/{client}/executions/{runid}/children?max_results={number}&start_at_run_id={runid}
Beispiel
http://192.168.40.116:8088/ae/api/v1/100/executions/1003003/children?max_results=10&start_at_run_id=100301
In diesem Beispiel hat die angeforderte Parent-Ausführung 1003003 25 angeforderte Child-Aufgaben-Ausführungen. Die paginierte Antwort ist wie folgt verteilt:
-
Seite 1
Anfrage-URI: ../executions/1003003/children?max_results=10
Antwort-Payload: Liste der ersten 10 Ausführungen
RunID der letzten aufgelisteten Ausführung =1003045
"hasmore"=true(*)
"total"=25(**)
Kommentar: Wenn der Parameter start_at_run_id weggelassen wird, wird die erste Seite zurückgegeben.
-
Seite 2
Anfrage-URI: ../executions/1003003/children?max_results=10&start_at_run_id=1003045
Antwort-Payload: Liste der nächsten 10 Ausführungen
RunID der ersten aufgelisteten Ausführung <1003045
RunID der letzten aufgelisteten Ausführung =1003034
"hasmore"=true(*)
"total"=25(**)
Kommentar: Die RunID der ersten Ausführung auf Seite 2 ist niedriger als die RunID der letzten Ausführung auf Seite 1, wodurch doppelte Einträge vermieden werden.
-
Seite 3
Anfrage-URI: ../executions/1003003/children?max_results=10&start_at_run_id=1003034
Antwort-Payload: Liste der nächsten 5 Ausführungen
RunID der ersten aufgelisteten Ausführung <1003034
RunID der letzten aufgelisteten Ausführung =1003028
"hasmore"=false(*)
"total"=25(**)
Kommentar: "hasmore"=false bedeutet, dass dies die letzte Seite ist.
-
* total: gibt die Gesamtzahl an Ressourcen in der Sammlung an und hilft zu bestimmen, wie viele Seiten das Ergebnis haben würde.
-
**hasmore: hat die folgenden möglichen Werte:
-
true = es sind mehr Seiten verfügbar
-
false = Sie haben die letzte Seite erreicht
-
Hinweise:
-
Die Ausführungen, die auf einer bestimmten Seite angezeigt werden, sind nach Aktivierungszeit und RunID absteigend geordnet.
-
Die Paginierung kann eine unvollständige Liste der Child-Aufgaben-Ausführungen enthalten. Wenn beispielsweise eine angeforderte Seite P alle Ausführungen mit Aktivierungszeit >=T1 und RunID < R1 auflistet und zu einem späteren Zeitpunkt eine neue Ausführung E mit gleicher Aktivierungszeit, aber mit RunID < R1 erzeugt wird, ist die Ausführung E weder auf Seite P noch auf einer Folgeseite aufgeführt.
Paginierung für Reports
Die Paginierung ist auch nützlich, wenn ein Report relativ groß ist und sein Inhalt in Reportseiten aufgeteilt ist. Die AE-REST-API blendet diese Reportseiten ein.
Grenzparameter
-
max_results
Definiert die maximale Anzahl der zurückgegebenen Einträge (Reportseiten).
Standardwert: 1
Wenn dieser Parameter auf Null (0) gesetzt ist, werden keine Einträge zurückgegeben.
-
start_at
Definiert die Nummer der zurückgegebenen Startseite (Eingabe-/Reportseite).
Standardwert: 1
Wenn dieser Parameter nicht definiert ist, beginnen die zurückgegebenen Einträge mit der ersten Reportseite. Wenn der definierte Wert größer ist als die Anzahl der verfügbaren Einträge, werden keine Informationen zurückgegeben, da die Anfrage den Bereich der verfügbaren Reportseiten überschreitet.
Beispiel
-
...exectutions/{run id}/reports/REP gibt den vollständigen Report (alle Reportseiten) zurück
-
...exectutions/{run id}/reports/REP?max_results=3 gibt den ersten Teil von drei (3) Reportseiten zurück (Reportseiten 1, 2 und 3)
-
...exectutions/{run id}/reports/REP?max_results=3&start_at=4 gibt den zweiten Teil von drei (3) zurück (Reportseiten 4, 5 und 6)
-
...exectutions/{run id}/reports/REP?start_at=2 gibt alle Reportseiten mit Ausnahme der ersten zurück
-
Wichtig! Die AE-REST-API kann nur den Inhalt von Reports anfordern, die in der AE-Datenbank verfügbar sind. Ein Job-Report wird nur dann in der Datenbank gespeichert, wenn die Option "Speichere in: Datenbank" im Bereich "Job-Report" der Seite "Jobdefinition" ausgewählt wurde. Diese Option ist standardmäßig aktiviert.
Tracing
Alle REST-Aktivitäten können zu Analysezwecken verfolgt werden. Wählen Sie dazu einen JCP aus und klicken Sie mit der rechten Maustaste darauf, um Erweiterte Optionen auszuwählen. Daraufhin erscheint ein Dialog, in dem Sie Trace-Flags spezifizieren können.
Das Trace Flag kann auch in der Automation Engine-Konfigurationsdatei (INI) gesetzt werden. Setzen Sie dazu den JCL-Schlüssel im Abschnitt TRACE der INI-Datei. Die relevanten Werte für RA Web Service REST Agent sind:
- 0: Tracing deaktiviert
- 1: Verfolgt REST-Header und -Inhalte
- 2: Verfolgt auch Login-Informationen
Webserver-Konfiguration
Der Automation Engine-REST-Webdienst verwendet einen Webserver, der weitgehend eine vordefinierte Konfiguration verwendet. Als Systemadministrator können Sie die Parameter anpassen, die hier im Abschnitt [REST] der Konfigurationsdatei ucsrv.ini der Automation Engine aufgeführt sind:
-
Cross-Origin Resource Sharing / Same Origin Policy (CORS/SOP)
-
corsSupportEnabled
-
corsAccessControlAllowOrigin
-
-
GZIP-Komprimierung
-
gzipSupportEnable
-
-
ThreadPool
-
minPoolSize
-
maxPoolSize
-
idleTimeout
-
CORS/SOP
Die Same Origin Policy (SOP) verhindert, dass Webclients Cross-Origin-Anfragen ausführen. Sie können diese Richtlinie mit Cross-Origin Resource Sharing (CORS) umgehen, um Ursprünge (Origins) explizit zu erlauben.
Zum Beispiel:
Host 3 fordert ein Webdokument von Origin 1 (Host 1, Webserver) unter http://host1:80 (standardmäßiger http-Port) an. Host 3 fordert dann Informationen von Origin 2 (Host 2, AE) unter http://host2:8080 (standardmäßiger AE-REST-Webdienst-Port) an. Die gängigsten Webbrowser prüfen, ob domänenübergreifende Anfragen erlaubt sind oder nicht. Andernfalls ist die Anfrage an den zweiten Origin http://host2:8080 nicht zulässig.
Um solche Cross-Origin-Anfragen zuzulassen, muss der AE-REST-Webdienst dem Webbrowser explizit mitteilen, dass er die Anfrage zulassen soll. Sie können dies mit den folgenden CORS-Parametern im Abschnitt [REST] der Konfigurationsdatei (ucsrv.ini) der Automation Engine definieren:
- corsSupportEnabled=1
- corsAccessControlAllowOrigin=http://host1:80
Wenn der Webserver auf demselben lokalen Host läuft wie der Browser oder Webclient (Host1 = Host3), müssen Sie einen einfachen webbasierten REST-Client implementieren, indem Sie den Parameter corsAccessControlAllowOrigin auf http://localhost:80 setzen.
Komprimierung
Ein REST-Client kann in einer Anfrage angeben, dass die Antwort-Payload komprimiert werden soll, um die Performance zu verbessern. Wenn der REST-Webdienst die Kompression unterstützt, sendet er die Payload im gzip-Format zurück.
Die Kompressionsunterstützung ist standardmäßig deaktiviert. Sie können sie mit dem Parameter gzipSupportEnabled im [REST]-Abschnitt der Konfigurationsdatei ucsrv.ini der Automation Engine aktivieren.
Thread-Pooling
Der Webserver, der vom JCP/REST-Webdienst verwendet wird, verarbeitet Anfragen mit Hilfe von Threads. Je mehr Threads verwendet werden, desto mehr REST-Anfragen können parallel verarbeitet werden.
Ein Thread-Pool hält mehrere Threads bereit, um REST-Anfragen zu verarbeiten. Je mehr Anfragen eingehen, desto mehr Threads stellt der Webserver automatisch innerhalb des Bereichs zur Verfügung, der in minPoolSize >= N <= maxPoolSize definiert ist. Wenn einige der N Threads für einen längeren Zeitraum als den im Parameter idleTimeout definierten Timeout-Zeitraum ungenutzt bleiben, werden sie beendet, um Ressourcen auf dem JCP-Prozess freizugeben.
Siehe auch:
- REST-API-Referenz
- Analytics REST API – Allgemeine Informationen
- Analytics REST API-Schlüssel-Management