Polling- und Callback-Anforderungen

Sie können den Server abfragen, um den Status Ihrer REST-Anfrage zu prüfen, oder Sie können ein Callback abonnieren.

Diese Seite beinhaltet Folgendes:

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:

AE REST-API-Callback-Anforderung

Wenn Sie nicht möchten, dass der Server den Status einer Ausführung prüft, können Sie ein Callback abonnieren. In diesem Fall sendet das System Ihnen als Abonnenten eine REST-Anforderung, um Sie darüber zu informieren, dass die Ausführung beendet wurde (erfolgreich oder nicht). Sie können abonnieren, indem Sie der REST-Ausführungsanforderung eine optionale Callback-URL hinzufügen, damit das System weiß, wo Sie erreichbar sind.

Sie können die Benachrichtigungseinträge für Callbacks (CBCK) in der Aufgabenliste in der Process Monitoring-Perspektive im Automic Web Interface anzeigen. Sie können auch einen Filter anwenden, um spezifisch nach ihnen zu suchen, indem Sie den Filterbereich öffnen und Aufgabentyp > Laufzeitobjekte > Callback auswählen.

Mehr Informationen:

Sie können die Callback-Anforderung unter Verwendung der Variablen UC_CALLBACK_SETTINGS anpassen. Mit der Variablen können Sie die Anzahl der Wiederholungsversuche (falls der erste Versuch fehlschlägt) und ihr Intervall bestimmen, das konstant, linear oder exponentiell sein kann:

  • Konstante: Das System verwendet den im CALLBACK_INTERVAL-Schlüssel definierten Wert

  • Linear: Das System multipliziert den im Schlüssel CALLBACK_INTERVAL mit der Anzahl der fehlgeschlagenen Versuche.

    Beispiel

    Sie haben ein Intervall von 30 Sekunden definiert und möchten den linearen Modus verwenden.

    Wenn der erste Versuch fehlschlägt, findet der erste Callback-Versuch nach 30 Sekunden (1 fehlgeschlagener Versuch * 30 Sekunden), der zweite nach 60 Sekunden (2 fehlgeschlagene Versuche* 30 Sekunden) und so weiter statt.

  • Quadratisch: Das System berechnet exponentiell das Intervall aus der Definition des CALLBACK_INTERVAL-Schlüssels und der Anzahl der fehlgeschlagenen Versuche.

    Beispiel

    Sie haben ein Intervall von 30 Sekunden definiert und möchten den quadratischen Modus verwenden.

    Wenn der erste Versuch fehlschlägt, findet der erste Rückrufversuch nach 30 Sekunden (1 fehlgeschlagener Versuch: 12 * 30 Sekunden) statt, der zweite nach 120 Sekunden (2 fehlgeschlagene Versuche: 22 * 30 Sekunden), der dritte nach 270 Sekunden (3 fehlgeschlagene Versuche: 32 * 30 Sekunden) usw.

Sie können auch die Verwendung von HTTPS erzwingen und entscheiden, ob Sie eine Standardantwort für Nutzdaten möchten. In diesem Fall umfasst die Reaktion nur die run_id, den object_type und den execution_status. Sie können auch die Nutzdatenreaktion an Ihre Anforderungen anpassen. Weitere Informationen finden Sie unter UC_CALLBACK_SETTINGS - Anpassung der REST-Callback-Anforderung

Um die Nutzlast anzupassen, können Sie eine oder mehrere der folgenden Optionen verwenden:

  • Variablen, die für jedes ausführbare Objekt gültig und im gesamten System konsistent sind, finden Sie unter Liste der Systemeigenschaften
  • Variablen, die für ein Objekt spezifisch sind, finden Sie auf Seite "Variablen"
  • Vorlagenplatzhalter, die für Callbacks spezifisch sind:
    • &$EXECUTION_STATUS#

    • &$EXECUTION_STATUS_TEXT#

    • &$LAST_ERROR_MESSAGE#

    • &$LAST_ERROR_CODE#

    • &$LAST_ERROR_INSERT#

Beispiele für Objektausführungen

Anfrage: POST http://{host}:{port}/ae/api/v1/executions

Beispiel: http://ae_host:8088/ae/api/v1/executions

Objektausführung mit optionaler Callback-URL unter Verwendung der standardmäßigen Antwortdaten:

{
  "object_name": "JOBP.EXAMPLE",
  "alias": "EXAMPLE_WORKFLOW",
  "queue": "TEST_QUEUE",
  ...
  "callback":
  {
     "type": "http",
     "http":
     {
        "url": "https://axa.dxi-na1.saas.broadcom.com/ae-doi-integration/v1/54643542353543/jobStatus?caemmlutkn=LTExNzM1OTM5NTE",
     }
  }
}

HTTP 200-Antwort:

{
  "runid": "0001005016",
  "object_type": "SCRI",
  "execution_status": "1900",
}

Das Abonnieren von Callbacks für wiederkehrende Ausführungen ("execution_option":"recurring") wird nicht unterstützt. Wenn Sie eine wiederkehrende Ausführung über die REST-API einschließlich eines Callback-Abonnements starten, wird die Ausführung ausgeführt, aber der Callback tritt nicht in Kraft.

Objektausführung unter Verwendung von TEMPLATE_EXECUTION:

{
   "runid": "&$RUNID#",
   "object_type": "&$OBJECT_TYPE#",
   "execution_status": "&$EXECUTION_STATUS#",
   "execution_status_text": "&$EXECUTION_STATUS_TEXT#",
   "ae_system": "&$SYSTEM#",
   "client_number": "&$CLIENT#",
   "client_description": "&$CLIENT_DESC#",
   "user_department": "&$USER#/&$DEPARTMENT#",
   "archive_key1": "&$ARCHIVE_KEY1#",
   "last_error_message": "&$LAST_ERROR_MESSAGE#",
   "last_error_code": "&$LAST_ERROR_CODE#",
   "last_error_insert": "&$LAST_ERROR_INSERT#",
   "object_variable1": "&VAR1#",
   "object_variable2": "&VAR2#"
}

HTTP 200-Antwort:

{
  "runid": "0001005016",
  "object_type": "SCRI",
  "execution_status": "1900",
  "execution_status_text": "ENDED_OK - ended normally",
  "ae_system": "AUTOMIC",
  "client_number": "0100",
  "client_description": "Test client",
  "user_department": "CD/CD",
  "archive_key1": "Category17",
  "last_error_message": "",
  "last_error_code": "00000000",
  "last_error_insert": "",
  "object_variable1": "17842312",
  "object_variable2": "a text value"
}

Callback-Header

Sie können jedes Schlüssel-Wert-Paar im Abschnitt "headers:" einer Ausführungsanforderung definieren. Die hier angegebenen Werte werden dann in den Callback-Headere übernommen.

Beispielsweise können Sie Bearer-Token für Autorisierungszwecke verwenden und das Schlüssel-Wert-Paar im Abschnitt "headers:" der Ausführungsanforderung definieren.

Ausführungsanforderung:

{
  "object_name": "JOBP.MY_MITIGATION_WORKFLOW",
  "callback":
  {
    "type": "http",
    "http":
    {
       "url": "https://myserver:8888/ae-doi-integration/v1/jobStatus",
       "headers":
       {
         "Authorization": "Bearer 435345f1232a34543b34fff"
       }
    }
  }
}

Callback-Header:

... 
Authorization: Bearer 435345f1232a34543b34fff
...

Callback-Nutzdaten:

{
    "run_id": 2303535,
    "name": "JOBP.MY_MITIGATION_WORKFLOW",
    "status": 1900
}

Siehe auch: