Prozesse

WebSocket-Aktion

Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

In der WebSocket-Aktion gibt es eine neue Checkbox "Nachricht nach dem Transaktions-Commit senden". Wenn die Checkbox aktiviert ist, wird die erstellte Nachricht erst gesendet, wenn die aktuelle Transaktion abgeschlossen ist.

REST-Call-Action

Beschreibung

Zielsetzung

Mit Hilfe von REST-Call-Aktionen innerhalb von Prozessen können Sie REST-API-Calls automatisch bzw. eventgesteuert absetzen.

Ein Bild, das Text, Diagramm, Screenshot, Reihe enthält.

Automatisch generierte Beschreibung

Je nachdem, welche Endpunkte die entsprechende REST-API zur Verfügung stellt, können umfangreiche "Aufgaben" nahezu automatisch oder "auf Knopfdruck" erledigt werden.

Die Rest-Call Aktion ist im Prozessmanager im Bereich "Aktionen" verfügbar.

REST-CALL Aktion ausführen

Folgende Schritte sind für die Ausführung eines REST-CALLs nötig:

Allgemein

Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

In den allgemeinen Eigenschaften werden Alias, Titel und Beschreibung der Aktion definiert.

 

 

Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

Bei den Verbindungseinstellungen können folgende Aktionen aktiviert werden:

 

Request und Response loggen

Wenn Sie diese Option aktivieren, wird der Request unmittelbar vor dem Versenden und die Response direkt nach dem Empfang geloggt. Die Option dient hauptsächlich dem Debuggen des Requests und sollte im Produktivbetrieb abgeschaltet werden, da die Logdatei sonst extrem umfangreich werden kann.

 

Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

JSON parsen

 

Wenn Sie diese Option aktivieren, wird der Payload der Response generell als JSON geparst.

 

Wenn der Payload erfolgreich als JSON geparst werden kann, wird das geparste JSON-Objekt an den REST-Call angehängt und steht ab dann im Shared State zur Verfügung.

 

Wenn der Payload nicht erfolgreich als JSON geparst werden kann, wird eine Meldung in die Logdatei geschrieben (Property: parseJson). In diesem Fall steht dann kein JSON-Objekt zur Verfügung.

 

Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

Hostnamen verifizieren

Wenn Sie diese Option aktivieren, prüft der REST-API-Client, ob eine Verbindung mit dem korrekten Host hergestellt werden kann. Wenn der Host nicht verifiziert werden kann, wird die Verbindung abgelehnt und der Call scheitert (Property: hostnameVerification).

 

Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

Allen Zertifikaten vertrauen

Wenn Sie diese Option aktivieren, wird eine https-Verbindung aufgebaut. Es findet aber keine Prüfung des Zertifikates statt.

 

Das Aktivieren dieser Option bietet sich für Entwicklungsumgebungen an, so dass Sie mit selbstsignierten Zertifikaten arbeiten können. Generell kann es sich in einer Entwicklungsumgebung anbieten, dass der REST-API-Client allen Zertifikaten vertraut (Property: trustAllCertificates).

 

Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

Timeout (in Sekunden)

Hier können Sie die Zeit in Sekunden angeben, die der REST-API-Client auf den Aufbau einer Response wartet, beziehungsweise die Dauer, bis der REST-API-Client die Verbindung abbricht, wenn eine Response ausbleibt oder abreißt. Der Standard-Wert ist mit 30 Sekunden vorbelegt (Property: timeout).

 

Authentifizierung

In diesem Schritt wird die Authentifizierung festlegen. Für die Authentifizierung stehen die folgenden Möglichkeiten zur Verfügung:

Keine/Benutzerdefiniert

Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

Mit diesem Typ steht die Option "Client für Session-basierte Interaktion wiederverwenden" zur Verfügung.

 

Das Aktivieren dieser Option bietet sich insbesondere im Zusammenhang mit dem Login an einer API an und wenn die API Session-Cookies vergibt. Diese kann der REST-API-Client vorhalten und in späteren REST-Call-Aktionen innerhalb desselben Prozesses wiederverwenden.

 

Hintergrund Intrexx verwendet den "Apache HTTP Client 5" als REST-API-Client. Dieser wird bei jeder REST-Call-Aktion generiert und nach deren Ausführung gelöscht. Das Löschen des REST-API-Clients können Sie mit der Option "Client für session-based Requests wiederverwenden" unterbinden. In diesem Fall wird der Client in einer Intrexx-internen Registry abgelegt. Bei weiteren REST-Call-Aktionen innerhalb desselben Prozesses sucht Intrexx in der Registry, ob ein passend konfigurierter Client bereits vorliegt. Wenn dies der Fall ist, verwendet Intrexx automatisch diesen Client.

 

Da der Client Session-Cookies speichert und ausliefert, bleibt so ein Login bis zum Ende des jeweiligen Prozesses gültig.

 

Wenn ein Client wiederverwendet wird, wird dies in der Log-Datei mit "Getting retained Client ..." angezeigt.

 

 

Basic Authentication

Ein Bild, das Text, Screenshot, Software, Zahl enthält.

Automatisch generierte Beschreibung

Verwenden Sie den Typ "Basic Authentication", wenn die API eine Basic Authentication erwartet.

 

Benutzername

Sie können den Benutzernamen frei eingeben oder aus dem Ressource-Mapping beziehen oder beides kombinieren.

 

Passwort

Sie können das Passwort frei eingeben, aus dem Anmeldeinformationsspeicher (Anmeldeinformationsspeicher) oder über das Ressource-Mapping beziehen.

 

Optional kann ein Header konfiguriert werden.

Im Header können Sie beliebige Einträge (Key/Value-Paare) hinzufügen.

 

Ein Bild, das Text, Screenshot, Software, Zahl enthält.

Automatisch generierte Beschreibung

API-Key

Verwenden Sie den Typ "API-Key", wenn die API einen API-Key und den dazugehörigen Informationen erwartet.

Token

 

Der Token bzw. API-Key kann frei eingegeben werden, aus dem Ressource-Mapping bezogen werden oder eine Kombination aus beidem sein.

 

Authorization Header

 

Hier können Sie auswählen, welcher Header für den API-Key verwendet werden soll. Die folgenden Optionen stehen zur Verfügung:

 

Authorization: Apikey

 

X-API-Key

Bei den Optionen "Authorization: Apikey" und "X-API-Key" wird die gewählte Option in der Tabelle im Bereich "Header" angezeigt und der Token wird automatisch eingefügt. Der erstellte Eintrag kann nicht manuell aus der Tabelle im Bereich Header gelöscht werden. Beim Absetzen des REST-Calls wird der entsprechende Header generiert.

 

Benutzerdefiniert

Wenn Sie die Option "Benutzerdefiniert" wählen, müssen Sie den Header selbst erstellen.

 

Bearer Token

Ein Bild, das Text, Screenshot, Software, Display enthält.

Automatisch generierte Beschreibung

Verwenden Sie den Typ "Bearer Token", wenn der REST-Call eine Authentifizierung mit einem Bearer Token erfordert.

 

Token

Der Token kann frei eingegeben werden, aus dem Ressource-Mapping bezogen werden oder eine Kombination aus beidem sein.

 

Bei dieser Option wird immer ein Eintrag mit dem Key BEARER_TOKEN in die Header-Tabelle eingetragen. Dieser Eintrag kann nicht manuell aus der Header-Tabelle gelöscht werden. Beim Absetzen des Calls nutzt der REST-API-Client den Header Authorization: Bearer.

Header

Bei allen Typen kann ein Header definiert werden.

Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

Dazu werden in die Header-Tabelle die Header für den Request eingetragen. Im Default-Betrieb werden die Header vom Apache Client selbstständig generiert, sodass in den meisten Fällen keine eigenen Header geschrieben werden müssen. Falls dennoch Header benötigt werden (z.B. für eine selbst angelegte Authentifizierung), müssen Sie die Header-Einträge als Key/Value-Paare eingeben. Werden im Dialog Header gesetzt, überschreiben sie Default-Header mit dem gleichen Key. Das Ressource-Mapping wird sowohl auf die Keys als auch auf die Values der Header angewendet, es sind also dynamische Header möglich. Ein typischer Anwendungsfall wäre, einen dynamisch generierten Token in einen Header zu legen (sofern das nicht mit den Optionen API-Key oder Bearer Token ohnehin schon abgedeckt ist).

 

Request erfassen

Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

In diesem Schritt müssen Sie Angaben zur API-Ressource machen und die Query-Parameter über Key/Value-Paare erfassen.

 

Methode

Wählen Sie hier das HTTP-Verb bzw. die HTTP-Methode, die für den REST-Call verwendet werden soll.

Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

Folgende Methoden können Sie auswählen:

 

  • GET

  • POST

  • PATCH

  • PUT

  • DELETE

Schema

Legen Sie hier fest, ob der REST-Call eine HTTP oder HTTPS-Verbindung nutzen soll.

Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

Wenn als Verbindung ausgewählt wird, muss ein geeignetes Zertifikat im Intrexx-Zertifikatsspeicher hinterlegt sein.

 

Die Option "Hostname verifizieren" auf der Registerkarte "Allgemein" muss deaktiviert sein und die Option "Allen Zertifikaten vertrauen" auf der Registerkarte "Allgemein" muss aktiviert sein. Wenn dies nicht der Fall ist, dann wird der REST-Call abgebrochen.

 

Wenn als Verbindung ausgewählt wurde, wird in der Log-Datei eine Warnung ausgegeben, da Login-Credentials, Keys usw. dann im Klartext bzw. nur unzureichend obfuskiert sind.

Port

Port der API des Host-Systems werden erfasst:

Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

Wird kein Wert eingeben, werden folgende Default-Werte verwendet:

 

  • Port 443 (bei HTTPS)

  • Port 80 (bei HTTP)

  •  

    Hostname

    Hostnamen der API wird erfasst.

    Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

    Wird der Hostname ohne die Angabe von "http://" oder "https://" und ohne die Angabe von Pfad- und Query-Parametern hinterlegt.

     

    Der Hostname kann direkt eingegeben werden, per Key aus dem Ressource-Mapping bezogen oder aus beidem kombiniert werden. Es sind also Host möglich wie z.B.:

    statisch:

    dynamisch:

    Kombination:

     

    Pfad

    Der Pfad zur gewünschten API-Ressource wird erfasst.

    Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

    Der Pfad bezeichnet bei einer REST-API die gewünschte Ressource. Sie könnte in einem fiktiven CSM für die Rechnung für April 2024 eines Kunden mit der Nummer 12345 beispielsweise sein:

    /api/customers/12345/bills/2024/4 oder für ein Profilbild:

    /user/54321/profila/image usw.

     

    Der Pfad kann direkt eingegeben werden, aus dem Mapping bezogen werden oder (was wahrscheinlich der häufigste Fall sein wird) aus beidem kombiniert werden, z.B. als

    /api/customers/${customerID}/bills/${year}/${month},

    wobei ${customerID}, ${year} und ${month}

    dann je nach Kunde zur Ausführungszeit gefüllt werden können. Keys können an allen Stellen auch mehrfach verwendet werden.

    Download-Dateiname (optional)

    Dateinamen kann hinterlegt werden, falls der REST-Call einen Datei-Download auslöst.

    Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

    Die Datei wird nach dem Download unter dem hier hinterlegten Namen in einem temporären Verzeichnis abgelegt, das für die Dauer der Prozess-Ausführung besteht und danach wieder gelöscht wird. Das Verzeichnis ist über das Groovy-Objekt erreichbar. Im Verarbeitungskontextobjekt des REST-Calls steht unter der absolute Pfad als String zur Verfügung.

     

    Wenn Sie keinen Dateinamen erfassen, durchsucht der REST-Call den Content-Disposition-Header der Response und prüft, ob dort gegebenenfalls ein Dateiname angegeben ist. Wenn kein Dateiname gefunden wird, dann wird der Name "download" als Default verwendet.

     

    Query-Parameter

    Ein Query-Parameter kann hinzuzufügt werden.

    Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

    Über das Plus-Symbol können Key und Wert hinterlegt werden.

     

    Der Wert kann wie folgt erfasst werden:

  • Manuell

  • Ressource-mapping

  • Manuell + Ressource-mapping

  •  

    Die Query-Parameter werden im generierten REST-Call hinter dem Pfad mit einem "?" getrennt angehängt, wobei Key und Value mit "=" verbunden und die Paare mit "&" getrennt werden.

     

    Body erstellen

    In diesem Schritt wird der Body (Payload) festgelegt. Die folgenden Auswahlen stehen zur Verfügung.

    Keiner

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Es wird an den Request keine Payload angefügt.

     

    Text

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    In einem Textfeld wird die Payload als einfacher Text erfassen.

     

    Über das Ressource-Mapping-Symbol können Ressourcen hinzugefügt werden.

    Ein Bild, das Text, Screenshot, Software, Display enthält.

Automatisch generierte Beschreibung

    Folgende Ressourcenkönnen gewählt werden.

     

  • Statischer Text

  • Request

  • Session

  • Verarbeitungskontext

  • Datengruppe

  • Systemdatengruppe

  • Benutzerwert

  • Vorgehergehender Request

  • Anmeldeinformationsspeicher

  •  

    JSON

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    In einem Textfeld wird die Payload als einfacher Text erfasst. Dabei wird der Text als JSON (application/json) an den Request angehängt.

     

    Beachten Sie, dass der Text nicht als JSON validiert wird. Das JSON wird erst beim Absenden des Requests konstruiert und ist erst dann semantisch gültig.

     

    Über das Ressource-Mapping-Symbol können Ressourcen hinzugefügt werden.

    Datei

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Eine Datei kann hochgeladen und an den Request angehängt werden. Dabei muss der Link zu der entsprechenden Datei über das Plus-Symbol erfasst werden.

     

    Intrexx versucht dabei, anhand der Dateiendung den korrekten Content-Type-Header zu setzen. Falls dies nicht möglich ist, wird "Application/octet-stream" benutzt, um einen allgemeinen Upload zu signalisieren.

     

    Beim Erfassen der Datei stehen die folgenden Ressourcen zur Verfügung:

     

  • Statischer Text

  • Request

  • Session

  • Verarbeitungskontext

  • Datengruppe

  • Vorheriger Request

  • Ausnahmebehandlungen

    Ausnahmebehandlung können erst nach dem Anlegen der REST-Call-Aktion bearbeitet werden.

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Folgende Optionen können gewählt werden:

  • Transaktion abbrechen (Standard)

  • Transaktion fortsetzen

  •  

     

     

    Expert-Attribute ansehen oder erfassen

    Expert-Attribute können erst nach dem Anlegen der REST-Call-Aktion bearbeitet werden.

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Im Reiter "Expert" können alle Properties manuell gesetzt werden. Hierbei können Sie auch Keys aus dem Ressource-Mapping verwenden.

     

    Eine Tabelle aller verfügbaren Properties finden Sie in der Online-Hilfe.

     

    Praxisübung: Automatisierter Applikationsexport

    Aufgabenbeschreibung

    Das Verteilen neuer Applikationen in unterschiedliche Portale eines Servers soll vereinfacht werden. Dabei sollen in einem (Test-)Portal Applikationen bereitgestellt werden, die dann in unterschiedliche Produktivportale importiert werden.

    Voraussetzung

    Für die Umsetzung dieses Procederes benötigen wir:

  • Eine Konfiguration der Administration API (IAA) des Zielsystems

  • Eine Administration API-Lizenz

  • Eine Applikation, in der die Applikationsexporte für den Import in andere Portale hinterlegt werden.

  • Die Information des IAA-Passworts. Dieses hinterlegen wir im Credential Store.

  • Ein Prozess mit einem REST-API-Call, der die Applikationen in die hinterlegten Portale importiert.

  • Konfiguration Administration API

    Port, Username und Passwort sowie ein Zertifikat müssen konfiguriert sein.

    Import der Applikation

    Importieren Sie aus der mitgelieferten Datei "import-applikationen.zip" die Applikation "Import von Applikationen".

    Übersicht der Aufgaben

    Zunächst wird im Credential-Store einmalig die IAA-Authentifizierung des Zielservers hinterlegt.

    Für jede Applikation wird ein Datensatz angelegt, in dem Applikationsexport, Aktion sowie Host, Port und Portalname des Zielsystems.

     

     

    Im Prozess müssen wir eine IAA-Authentifizierung durchführen. Die Anmeldedaten dazu werden wir über ein Groovy-Skript in den Verarbeitungskontext schreiben.

    Jetzt erfolgt die IAA-Anmeldung über die REST-Call Action. Die Daten werden aus dem Verarbeitungskontext gelesen.

    Im nächsten Schritt wird der Applikations-Upload auf dem Zielsystem vorbereitet. Die Daten des Zielsystems schreiben wir über ein Groovy-Skript in den Verarbeitungskontext.

    Jetzt wird in einer weiteren REST-Call Aktion der Upload der Applikation im hinterlegten Zielsystem gestartet. Die Daten werden aus dem Verarbeitungskontext gelesen, der Token zur Anmeldung wird aus dem vorhergehenden Request verwendet.

    IAA-Passwort im Credential Store speichern

    Für die IAA-Authentifizierung muss einmalig das IAA-Passwort im Credential Store gespeichert werden.

     

    Wechseln Sie in das Modul „Integration“. In der "Verbindungsdatenverwaltung" befindet sich der Anmeldeinformationsspeicher (Credential Store).

    Ein Bild, das Text, Screenshot, Software, Computersymbol enthält.

Automatisch generierte Beschreibung

    Erzeugen Sie einen neuen Eintrag und hinterlegen folgende Informationen:

     

    Anmeldeinformationsname: iaaPassword

    Passwort: [tragen Sie Ihr Passwort ein]

    Applikation für den Import bereitstellen

    Für die Bereitstellung von Applikationen in anderen Portalen erstellen wir in der Applikation "Import von Applikationen" alle nötigen Quelldaten.

    Ein Bild, das Text, Screenshot, Zahl, Schrift enthält.

Automatisch generierte Beschreibung

    In einem Datensatz werden je Applikation folgende Informationen hinterlegt:

     

  • Titel

  • Exportdatei der Applikation

  • Aktion: keine Aktion / Upload erstmalig/ Update

  • Server Zielsystem

  • IAA Portal

  • IAA Port

  • IAA User

  •  

    Beim Speichern des Datensatzes triggern wir den Prozess. Wir erfassen den Datensatz also noch nicht jetzt, sondern erst nach Fertigstellung unseres Prozesses

    Prozess erstellen

    Wir werden nun wir den Prozess erstellen, der beim Speichern des Datensatzes startet.

    Erstellen Sie einen neuen Prozess mit dem Titel "Import Applikationen".

    DG-Ereignisbehandler

    Der Prozess startet, wenn ein Datensatz in der Applikation "Import von Applikationen" gespeichert wird.

    Ein Bild, das Text, Schrift, Reihe, Zahl enthält.

Automatisch generierte Beschreibung

    Fügen Sie im Prozess einen Datengruppen-Ereignisbehandler hinzu und öffnen mit einem Doppelklick den Eigenschaften-Dialog.

    Ein Bild, das Text, Elektronik, Screenshot, Display enthält.

Automatisch generierte Beschreibung

    Der Ereignisbehandler soll auf das Einfügen neuer und Ändern bestehender Datensätze regieren.

     

    Hinterlegen Sie die folgende Konfiguration:

     

    Titel: "Import Applikationen"

    Applikation: "Import von Applikationen"

    Datengruppe: "Applikationen"

     

    Der Ereignisbehandler soll beim Einfügen und Ändern von Daten reagieren.

    Groovy-Aktion: Verarbeitungskontext schreiben

    Im nächsten Schritt stellen wir die Daten für die Anmeldung an der Administration API bereit. Diese werden wir in den Verarbeitungskontext schreiben.

     

    Ein Bild, das Text, Screenshot, Schrift, Reihe enthält.

Automatisch generierte Beschreibung

    Fügen Sie dem Datengruppen-Ereignisbehandler eine Groovy-Aktion mit dem Titel "Werte setzen" hinzu. Wechseln Sie mit einem Doppelklick in die Eigenschaften, benennen die Aktion um in "Werte setzen" und öffnen dort den Skript-Editor.

    Wir benötigen für die Anmeldung via Administration API folgende Informationen:

     

  • remoteHost

  • iaaPort

  • iaaPortal

  • iaaUser

  •  

    Im angezeigten Skript werden alle Informationen aus dem Datensatz gelesen und in den Verarbeitungskontext geschrieben.

     

    Das IAA-Passwort ist im Credential Store gespeichert und wird später daraus ermittelt.

    Kopieren Sie das Skript in den Skript-Editor. Markieren Sie die Guid und aktualisieren diese über die Applikationsstruktur. Fügen Sie die Guid der entsprechenden Felder über das Plus-Symbol hinter der Guid ein.

    // Zugangsdaten in Verarbeitungskontext schreiben

    // IAA-Passwort wird aus dem Credential Store geholt ("iaaPassword")

     

    g_sharedState["remoteHost"] =  g_record["[GUID]"].value /* datafield Server Zielsystem <string> */

    g_sharedState["iaaPort"] = g_record["[GUID]"].].value /* datafield IAA Port <integer> */

    g_sharedState["iaaPortal"] = g_record["[GUID]"].value /* datafield IAA Portal <string> */

    g_sharedState["iaaUser"] = g_record["[GUID]"].value /* datafield IAA User <string> */

    REST-Call-Aktion: login

    Jetzt können wir über uns über die REST-Call Aktion an der Administration API anmelden. Als Rückgabe werden wir ein Token erhalten, das wir später benötigen.

    Ein Bild, das Text, Screenshot, Schrift, Reihe enthält.

Automatisch generierte Beschreibung

    Fügen Sie dem Groovy-Skript eine REST-Call-Aktion hinzu.

     

    Öffnen Sie die Eigenschaften der REST-Call Aktion mit einem Doppelklick.

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Hinterlegen Sie zunächst Allgemeine Informationen:

     

    Alias: "login"

    Titel: "REST-Call Aktion"

     

    Aktivieren Sie die Verbindungseinstellungen

     

  • Request und Response loggen

  • JSON parsen

  • Allen Zertifikaten vertrauen

  •  

    Hinterlegen Sie ein Timeout von 30 Sekunden.

    Klicken Sie auf "Weiter".

     

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Wählen Sie den Authentifizierungstyp "Keine / Benutzerdefiniert".

     

    Klicken Sie auf das Plus-Symbol, um einen neuen Eintrag im Header zu hinterlegen.

    Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.

Automatisch generierte Beschreibung

    Der Header-Eintrag enthält folgende Information:

     

    Key: Content-Type

    Wert: application/json

     

    Übernehmen Sie den Dialog mit "OK" und klicken dann auf "Weiter".

     

    Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

    In diesem Dialog wird der Request definiert. Wir werden die benötigten Daten zunächst aus Verarbeitungskontext bzw. Credential Store in das Ressource-Mapping schreiben.

     

    Klicken Sie auf das Symbol für Ressource Mapping am rechten Rand.

     

    Ein Bild, das Text, Elektronik, Screenshot, Display enthält.

Automatisch generierte Beschreibung

    Im Ressource-Mapping klicken Sie auf das Plus-Symbol, um neue Keys hinzuzufügen.

    Ein Bild, das Text, Elektronik, Screenshot, Display enthält.

Automatisch generierte Beschreibung

    Fügen Sie dem Ressourcen-Mapping folgenden Keys hinzuzufügen:

     

  • Der Key "host" erhält aus dem "Verarbeitungskontext" den Wert "remoteHost"

  • Der Key "port" erhält aus dem "Verarbeitungskontext" den Wert "iaaPort"

  • Der Key "portal" erhält aus dem "Verarbeitungskontext" den Wert "iaaPortal"

  • Der Key "iaaUser" erhält aus dem "Verarbeitungskontext" den Wert "iaaUser"

  • Der Key "iaaPassword" erhält aus dem "Anmeldeinformationsspeicher" den Wert "iaaPassword"

  •  

    Übernehmen Sie anschließend das Ressource Mapping mit "OK".

     

    Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

    Jetzt füllen wir den Request mit Werten:

     

    Methode: POST

    Schema: https

     

    Ob http oder https verwendet werden muss, ist im cfg-file der Administration API hinterlegt.

    <Installationsverzeichnis>/admin-api/cfg/admin-api.yaml

     

    Wählen Sie die folgenden Werte über das Ressource-Mapping:

    Port (optional):

    Hostname:

     

    Der Endpunkt zum IAA-Login enthält keine variablen Bestandteile, daher kann er direkt fest eingetragen werden.

     

    Pfad: auth

     

    Ein Bild, das Text, Screenshot, Software, Zahl enthält.

Automatisch generierte Beschreibung

    Beachten Sie bitte, dass auf unseren Schulungsportalen in der Cloud ein NGINX verwendet wird. Durch unsere NGINX-Konfiguration muss dort die Eingabe wie folgt aussehen:

     

    Port: bleibt leer

    Pfad: iaa/auth

     

    Klicken Sie auf "Weiter"

     

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Im Body wählen wir zunächst den Body-Typ JSON.

     

    Informationen zu "name" und "password" werden benötigt.

     

    Klicken Sie auf das das Ressource-Mapping-Symbol und hinterlegen Sie die Keys "iaaUser" und "iaaPassword".

     

    {

      "name": "${iaaUser}",

      "password": "${iaaPassword}"

    }

     

    Die Konfiguration ist damit abgeschlossen. Beenden Sie die REST-Call Aktion mit "OK".

    Groovy-Bedingung: Ausgänge definieren

    Bevor wir den Import der Applikation starten, müssen wir die Transaktionsart prüfen.

    Wir müssen unterscheiden, ob die Applikation importiert werden soll (der entsprechende Endpunkt verwendet de Methode POST) oder ob ein Update einer bestehenden Applikation gemacht werden soll (Methode PATCH).

    Ein Bild, das Text, Screenshot, Schrift, Reihe enthält.

Automatisch generierte Beschreibung

    Fügen Sie der REST-Call Aktion eine Groovy-Bedingung hinzu.

     

    Wechseln Sie mit einem Doppelklick in die Eigenschaften der Bedingung und öffnen dort den Skript-Editor.

    Ein Bild, das Text, Screenshot, Zahl, Display enthält.

Automatisch generierte Beschreibung

    Hinterlegen Sie im Skript-Editor das nachfolgende Skript.

     

    Im Skript wird zunächst die im Datenfeld "Aktion" hinterlegte Aktion ausgelesen und in die Variablen transAktion geschrieben. Das Datenfeld wird über das Kontextmenü gewählt.

     

    Folgende Werte werden bei Wahl einer Aktion hinterlegt:

     

    Upload (einmalig): 2

    Update: 3

    Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.

Automatisch generierte Beschreibung

    Je nach gewählter Transaktion werden unterschiedliche Rückgaben per Return-Wert übergeben.

     

    Wert: 1

    return: noAction

    Wert: 2

    return: upload_first und always

    Wert: 3:

    return: update und always

     

    Beachten Sie, dass mehrere Rückgaben in eckigen Klammern und durch Komma getrennt hinterlegt werden müssen.

     

     

    def transAktion = g_record[""].value /* datafield Aktion <integer> */

     

    switch (transAktion)

    {

        case "1":

            return noAction

        case "2":

            return [upload_first,always]

        case "3":

            return [update,always]

        default:

            return noAction

    }

    Ausgang "upload_first”

    Ein Bild, das Text, Screenshot, Schrift, Diagramm enthält.

Automatisch generierte Beschreibung

    Fügen Sie der Groovy-Bedingung eine REST-Call Aktion hinzu. Hinterlegen Sie die Verbindungs-ID "upload_first" und übernehmen den Dialog mit "OK".

     

    Wechseln Sie mit einem Doppelklick in den Eigenschaftendialog der REST-Call Aktion.

     

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Im Reiter "Allgemein" hinterlegen Sie zunächst Allgemeine Informationen:

    Alias: uploadFirst

    Titel: REST-Call Aktion

     

    Aktivieren Sie die folgenden Verbindungseinstellungen:

     

  • Request und Response loggen

  • JSON parsen

  • Allen Zertifikaten vertrauen

  •  

    Ein Timeout von 90 Sekunden wird hinterlegt.

     

    Klicken Sie auf "Weiter"

     

    Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

    Authentifizierung und Header

    Wählen Sie den Authentifizierungs-Typ "Bearer Token".

     

    Für die Authentifizierung benötigen wir den Token, der uns als Antwort auf den vorhergegangenen Login-Request geschickt wurde.

     

    Klicken Sie auf das "Ressource Mapping" aufbauen:

     

     

    Ein Bild, das Text, Elektronik, Screenshot, Display enthält.

Automatisch generierte Beschreibung

    Fügen Sie dem Ressourcen-Mapping folgenden Keys hinzuzufügen:

     

  • Der Key "host" erhält aus dem "Verarbeitungskontext" den Wert "remoteHost"

  • Der Key "port" erhält aus dem "Verarbeitungskontext" den Wert "iaaPort"

  • Der Key "portal" erhält aus dem "Verarbeitungskontext" den Wert "iaaportal"

  • Der Key "token" erhält seinen Wert aus dem "Vorherigen Request". Hinterlegen Sie den Alias die REST-Call-Aktion "login". Der Qualifier ist "Text" (der Token wird von der IAA als Plaintext geschickt).

  •  

    Übernehmen Sie anschließend den Dialog mit "OK".

     

    Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

    Wählen Sie im Feld "Token" den Key "token".

     

    Der Header setzt sich aus den vorherigen Einträgen automatisch zusammen.

     

    Klicken Sie auf "Weiter".

     

    Ein Bild, das Text, Screenshot, Zahl, Software enthält.

Automatisch generierte Beschreibung

    Request

    Hinterlegen Sie folgenden Request:

     

    Methode: Post

    Schema: https

     

    Wählen Sie aus dem Ressource-Mapping folgende Informationen:

     

    Port:

    Hostname:

    Pfad:

     

    Der Pfad ist im Endpunkt definiert.

    Wenn Sie auf unseren Schulungsportalen in der Cloud arbeiten, hinterlegen sie bitte folgende Konfiguration:

     

    Port: bleibt leer

    Pfad: iaa/

     

    Klicken Sie auf "Weiter"

     

    Ein Bild, das Text, Screenshot, Software, Display enthält.

Automatisch generierte Beschreibung

    Im Body wählen wir zunächst den Body-Typ "Multipart/form-data", da für einen Import neben dem eigentlichen zip der Applikation auch ein JSON mit Einstellungen geschickt werden muss.

     

    Erstellen Sie über das Plus-Symbol einen neuen Body:

     

     

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Hinterlegen Sie den folgenden Body:

    Body-Typ: JSON

    Body:

    {

      "permissions":false

    }

    Übernehmen Sie den Dialog mit "OK".

     

     

    Ein Bild, das Text, Screenshot, Zahl, Schrift enthält.

Automatisch generierte Beschreibung

    Erstellen Sie einen zweiten Body.

     

    Body-Typ: Datei

    Body: Wählen Sie das Datenfeld, in dem die Datei gespeichert ist.

     

    Die Konfiguration ist damit abgeschlossen. Beenden Sie die REST-Call Aktion mit "OK".

    Ausgang "always"

    Wir erstellen nun den Ausgang "always". In diesem Ausgang werden wir eine Datengruppen-Aktion hinterlegten, die jeweils nach den Ausgängen upload_first“ und "update" ausgeführt werden soll.

    Ziel hierbei ist es, die in der Applikation hinterlegten Transaktionen auf die Aktion "keine Aktion" zurückzusetzen und so unbeabsichtigte Importe zu vermeiden.

    Ein Bild, das Text, Screenshot, Diagramm, Reihe enthält.

Automatisch generierte Beschreibung

    Fügen Sie der Groovy-Bedingung eine Datengruppenaktion hinzu. Hinterlegen Sie die Verbindungs-ID "always".

     

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    In den Eigenschaften der Datengruppenaktion hinterlegen Sie die folgenden Eigenschaften:

     

    Titel: Aktion in App zurücksetzen

    Aktion: Datensatz ändern

     

    Klicken Sie auf "Weiter".

     

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Wählen Sie die Zieldatengruppe.

     

    Applikation: Import von Applikationen

    Datengruppe: Applikationen

    Ein Bild, das Text, Screenshot, Software, Display enthält.

Automatisch generierte Beschreibung

    Manipulationsmenge

     

    Einfacher Filter:

    Ziel-DG:

    Gleich

    Quell-DG:

    Um im Datenfeld "Aktion" den Eintrag "Keine Aktion" zu hinterlegen, muss der Wert "1" im Datenfeld gespeichert werden.

    Ein Bild, das Text, Screenshot, Zahl, Schrift enthält.

Automatisch generierte Beschreibung

    Feldzuordnung

    Erzeugen Sie über das Zahnrad-Symbol einen "Benutzerdefinierten Wert".

    Ein Bild, das Text, Screenshot, Software, Display enthält.

Automatisch generierte Beschreibung

    Wählen Sie die Option "Statischer Wert" und klicken auf das Stift-Symbol.

     

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Hinterlegen Sie den Datentyp Zeichen und den Wert "1". Übernehmen Sie beide Dialoge mit "OK".

    Ein Bild, das Text, Screenshot, Software, Zahl enthält.

Automatisch generierte Beschreibung

    Weisen Sie den festen Wert "1" auf der rechten Seite dem Datenfeld "Aktion" auf der linken Seite zu.

     

    Übernehmen Sie den Dialog mit "OK".

    Ausgang "update”

    Im Ausgang update werden wir ebenfalls eine REST-Call Aktion erstellen. Da diese großen Überschneidungen mit dem uplod_first-Ausgang hat, erstellen wir eine Kopie unseres ersten Ausgangs und bearbeiten diese.

    Ein Bild, das Text, Screenshot, Diagramm, Reihe enthält.

Automatisch generierte Beschreibung

    Fügen Sie der Groovy-Bedingung die kopierte REST-Call Aktion aus dem upload_fist-Ausgang hinzu.

     

    Hinterlegen Sie die Verbindungs-ID "update" und übernehmen den Dialog mit "OK".

     

    Wechseln Sie mit einem Doppelklick in den Eigenschaftendialog der REST-Call Aktion.

     

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Zunächst werden Allgemeine Informationen hinterlegt:

     

    Alias: update

    Titel: REST-Call Aktion

     

    Aktivieren Sie die folgenden Verbindungseinstellungen:

     

  • Request und Response loggen

  • JSON parsen

  • Allen Zertifikaten vertrauen

  •  

    Ein Timeout von 90 Sekunden wird hinterlegt.

     

    Ein Bild, das Text, Screenshot, Software, Display enthält.

Automatisch generierte Beschreibung

    Im Reiter "Authentifizierung und Header" übernehmen die kopierten Werte:

     

    Typ: Bearer Token

    Token: ${token}

     

    Header

    Key: Authorization

    Wert: Bearer ${token}

     

    Im Reiter "Request" ändern wir zunächst die Methode:

     

    Methode: Patch

     

    Die verbleibenden hinterlegen Requestwerte bestätigen wir:

     

    Schema: https

    Port:

    Hostname: ${host}

    Pfad:

     

    Wenn Sie auf unseren Schulungsportalen in der Cloud arbeiten, hinterlegen sie bitte folgende Konfiguration:

     

    Port: bleibt leer

    Pfad: iaa/

     

    Ein Bild, das Text, Screenshot, Software, Zahl enthält.

Automatisch generierte Beschreibung

    Im Body übernehmen wir den Body-Typ "Multipart/form-data".

     

    Der definierte Body JSON sowie die Auswahl der Datei aus der Datengruppe bleiben an dieser Stelle unverändert.

    Die Konfiguration ist damit abgeschlossen. Beenden Sie die REST-Call Aktion mit "OK".

    Ausgang "noAction"

    Für den letzten Ausgang “noAction“ fügen wir der Groovy-Bedingung die Aktion "Prozess beenden" an.

    Ein Bild, das Text, Diagramm, Reihe, Schrift enthält.

Automatisch generierte Beschreibung

    Hinterlegen Sie die Verbindungs-ID "noAction" und bestätigen mit "OK".

     

     

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    In den Eigenschaften der Aktion hinterlegen wir, dass alle Zweige der Ereignisbehandlung beendet werden.

     

    Übernehmen Sie die Einstellung mit "OK".

    Speichern Sie den Prozess. Öffnen Sie anschließend ihre Applikation im Browser. Erstellen Sie einen neuen Datensatz und hinterlegen dort die Daten des Zielsystems sowie die Applikationsdatei. Beim Speichern des Datensatzes triggern Sie den Prozess und die Applikation wird im Zielsystem erfasst.

    Neue Javaklasse in Prozessen

    In der "Generischen Bedingung" kann eine neue Javaklasse angeboten, die clusterweit einen Lock über den Lock-Service setzt und gibt ihn am Ende der Transaktion wieder frei gibt.

    Ein Bild, das Text, Screenshot, Schrift, Reihe enthält.

Automatisch generierte Beschreibung

    Es handelt sich um die Klasse .

    TransactedAcquireLockWorkflowCondition.

    Bedingung mit dieser Klasse können verwendet werden, um in Prozessen Application-API-Requests von anderen zu unterscheiden.

     

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Drei mögliche Ausgänge können definiert werden:

     

  • transitionAlways

  • transitionFalse

  • transitionTrue

  •  

    Ein Bild, das Text, Screenshot, Display, Software enthält.

Automatisch generierte Beschreibung

    Sie hat drei mögliche Ausgänge, die standardmäßig mit "true", "false" und "always" benannt sind. Die Namen können im Dialog geändert werden. Mindestens ein Ausgang muss definiert werden. Maximal drei Ausgänge dürfen bei der Bedingung definiert werden.

    Ein Bild, das Text, Diagramm, Screenshot, Reihe enthält.

Automatisch generierte Beschreibung

    Liegt ein Application-API-Request vor, wird zuerst der True-Ausgang und dann der Always-Ausgang abgearbeitet.

     

    Liegt kein Application-API-Request vor, wird zuerst der False-Ausgang und dann der Always-Ausgang abgearbeitet