Beispiel 3 - Applikationen auf Intrexx-Instanzen verteilen
Dieses Beispiel beschreibt, wie Sie mit Hilfe von REST-Call-Aktionen per Knopfdruck Applikationen von einer Intrexx-Instanz auf andere Intrexx-Instanzen verteilen bzw. exportieren können. Dabei rufen die REST-Call-Aktionen Endpunkte der Intrexx-eigenen IAA (Intrexx Administration API) auf.
Dieses Szenario bietet sich beispielsweise an, wenn Sie Applikationen auf einem Test-System entwickeln und nach der Entwicklungsphase auf dem Produktiv-System implementieren möchten.
Beachten Sie, dass das Beispiel keine "vollwertige" Applikation zum Verteilen und Updaten von Applikationen beschreibt. Vielmehr soll es grundlegende Einsatzmöglichkeiten der REST-Call-Aktion illustrieren. Gleichzeitig können Sie das Beispiel als Ausgangspunkt für Ihre eigenen Ausbaustufen nutzen.
Voraussetzungen
Für das hier beschriebene Beispiel bzw. Szenario benötigen Sie zwei Intrexx-Instanzen: eine Quell-Instanz (Intrexx 1) und eine Ziel-Instanz (Intrexx 2), die über eine konfigurierter IAA (Intrexx Application API) verfügt.
Zudem muss es in der Quell-Instanz eine Applikation geben, die in die Ziel-Instanz exportiert werden soll.
Informationen
Im Folgenden finden Sie ein Übersicht mit hilfreichen Links im Zusammenhang mit dem hier beschriebenen Beispiel.
IAA (Intrexx Administration API)
Applikationen erstellen
Applikationen erstellen - Zentrale Schritte
REST-Call-Aktion
Zentrale Aktionen
Um das hier beschriebene Beispiel zu erstellen, müssen Sie die drei folgenden zentralen Aktionen in Intrexx ausführen:
1. Hinterlegen des IAA-Kennworts im Anmeldeinformationsspeicher (Modul "Integration")
Für den Login am IAA der Ziel-Instanz (Intrexx 2) ist das entsprechende Passwort erforderlich. Dieses müssen Sie im Anmeldeinformationsspeicher der Quell-Instanz (Intrexx 1) hinterlegen. Das IAA-Passwort wird später im Prozess mit Hilfe einer REST-Call-Aktion in den Verarbeitungskontext geschrieben, um die Autorisierung an der Ziel-Instanz zu ermöglichen.
2. Erstellen einer Applikation ("Verwaltungs-Applikation"), die die zu exportierenden Applikationen enthält (Modul "Applikationen")
Um eine Applikation exportieren zu können, benötigen Sie eine "Verwaltungs-Applikation". Die "Verwaltungs-Applikation" wird von einem Portalbenutzer bedient. Dieser lädt die zu exportierenden Applikationen in ein Datei-Feld der "Verwaltungs-Applikation" hoch. Zudem erfasst er die erforderlichen Daten der Ziel-Instanz (Intrexx 2), wie beispielsweise Host- und Portalname.
Sobald ein Datensatz der Verwaltungs-Applikation gespeichert wird, wird der Prozess zum Exportieren der zu exportierenden Applikation gestartet.
3. Erstellen eines Prozesses, der den Export der Applikation automatisch ausführt (Modul "Prozesse")
Um den Export in die Ziel-Instanz automatisch auszuführen, benötigen Sie einen Prozess. Dieser beinhaltet u.a. zwei REST-Call-Aktionen. Die erste dient dazu, sich an der IAA der Ziel-Instanz einzuloggen bzw. sich dort zu autorisieren, die zweite führt anschließend den Export der Applikation durch.
Im Folgenden wird beschrieben, wie Sie die drei zentralen Aktionen in Intrexx umsetzen können. Dabei werden jeweils die zentralen Schritte beschrieben und an Hand von Screenshots illustriert.
IAA-Kennwort in Anmeldeinformationsspeicher hinterlegen
-
Starten Sie das Modul "Integration".
-
Öffnen Sie den Anmeldeinformationsspeicher ("Verbindungsdatenverwaltung > Anmeldeinformationsspeicher").
-
Klicken Sie auf das -Icon und erfassen Sie einen Datensatz mit dem Passwort für die IAA der Ziel-Instanz.
Weitere Informationen
Anmeldeinformationsspeicher (Credential Store)
Verwaltungs-Applikation erstellen
Portalansicht
Die Verwaltungs-Applikation stellt sich in der Portalansicht so dar:
Sie besteht aus einer Übersichtsseite, auf der die zu exportierenden Applikationen hochgeladen und mit entsprechenden Angaben zum Export versehen werden.
Der Eingabe-Dialog stellt sich so dar:
Portal Manager
Datengruppe
Die Verwaltungs-Applikation benötigt eine Datengruppe mit den folgenden Datenfeldern:
Datei (File)
Über dieses Feld wird die zu exportierende Applikation in die Verwaltungs-Applikation hochgeladen.
IAA Port (Integer)
Hier ist der Port der IAA (Intrexx Application API) der Ziel-Instanz zu erfassen.
IAA Portal (String)
Hier ist der Name des Portals der Ziel-Instanz zu erfassen.
IAA User (String)
Hier ist der Name des IAA-Benutzers der Ziel-Instanz zu erfassen..
Server Zielsystem (String)
Hier ist der Host der Ziel-Instanz zu erfassen.
Titel (String)
Hier ist ein Titel für den Datensatz zu hinterlegen.
Eingabeseite
Erstellen Sie eine Eingabeseite für die Datenfelder.
Übersichtsseite
Erstellen Sie eine Übersichtsseite mit einer Ansichtstabelle, die die Eingaben anzeigt.
Prozess erstellen
Prozess auslösen (1)
Der Prozess startet, wenn ein Datensatz in der Applikation "Verwaltungs-Applikation“ gespeichert wird.
Fügen Sie im Prozess einen Datengruppen-Ereignisbehandler hinzu und öffnen Sie mit einem Doppelklick den Eigenschaften-Dialog.
Der Ereignisbehandler soll auf das Einfügen neuer Datensätze reagieren.
Nehmen Sie die folgenden Einstellungen vor:
Titel Export von Applikationen
Applikation Verwaltungs-Applikation
Datengruppe Export-Applikationen
Datensatz-Ereignis Der Ereignisbehandler soll beim Einfügen Daten reagieren.
Ausbaustufe
Wenn Sie eine Applikation nur ändern bzw. updaten möchten, können Sie einen Ereignis-Beahnder anlegen, der bei Datensatz-Ereignissen auf "Ändern" reagiert. Für das Updaten von zu exportierenden Applikationen steht ein eigener API-Endpunkt zur Verfügung: PATCH Applications.
Werte in Verarbeitungskontext schreiben (2)
Im nächsten Schritt stellen wir die Daten für die Anmeldung an der IAA (Administration API) bereit. Diese werden wir in den Verarbeitungskontext schreiben.
Fügen Sie dem Prozess eine Groovy-Aktion mit dem Titel "Werte in Verarbeitungskontext schreiben" hinzu.
Über ein Groovy-Skript werden die im (jeweiligen) Datensatz hinterlegten Anmeldedaten für die IAA ausgelesen und in den Verarbeitungskontext geschrieben.
Wir benötigen für die Anmeldung via Administration API folgende Informationen:
-
remoteHost
-
iaaPort
-
iaaPortal
-
iaaUser
Das Passwort für die IAA ist im Anmeldeinformationsspeicher gespeichert und wird später daraus ermittelt.
// Zugangsdaten in Request schreiben
// IAA-Passwort wird aus dem Credential Store geholt ("iaaPassword")
g_sharedState["remoteHost"] = g_record["A229F3CBB5B28C229FB34A806CFDFF06E20EF3F6"].value /* datafield Server Zielsystem <string> */
g_sharedState["iaaPort"] = g_record["22509F36285E66D5D3A354DABDA6F66BBC097FF5"].value /* datafield IAA Port <integer> */
g_sharedState["iaaPortal"] = g_record["9AB6C3060C1A27F2BC997BD3938F2E95EF807A26"].value /* datafield IAA Portal <string> */
g_sharedState["iaaUser"] = g_record["DD1CF70C1C29C2603B1B0419EC85F099679BEFB3"].value /* datafield IAA User <string> */
REST-Call einrichten - Login an IAA (3)
Allgemein Erfassen Sie einen Alias für die REST-Call-Aktion.
Authentifizierung und Header Wählen Sie den Authentifizierungstyp „Keine / Benutzerdefiniert“.
Klicken Sie auf das Plus-Symbol, um einen neuen Eintrag im Header zu hinterlegen.
Der Header-Eintrag soll folgende Informationen enthalten:
Key Content-Type
Wert application/json
Übernehmen Sie den Dialog mit "OK" und klicken Sie dann auf "Weiter".
Request In diesem Dialog wird der Request definiert. Wir werden die benötigten Daten zunächst aus dem Verarbeitungskontext bzw. dem Anmeldeinformationsspeicher in das Ressource-Mapping schreiben.
Klicken Sie auf das -Icon, um den Dialog für das Ressource Mapping zu starten.
Klicken Sie im Folgedialog auf das -Icon.
Fügen Sie folgende Keys hinzu:
host Der Key "host" erhält aus dem "Verarbeitungskontext" den Wert "remoteHost".
port Der Key "port" erhält aus dem "Verarbeitungskontext" den Wert "iaaPort".
portal Der Key "portal" erhält aus dem "Verarbeitungskontext" den Wert "iaaPortal".
iaaUser Der Key "iaaUser" erhält aus dem "Verarbeitungskontext" den Wert "iaaUser".
iaaPassword Der Key "iaaPassword" erhält aus dem "Anmeldeinformationsspeicher" den Wert "iaaPassword".
Befüllen Sie den Request mit Werten:
Methode POST
Schema https
(Ob http oder https verwendet werden muss, ist im cfg-file der IAA hinterlegt. Dieses finden Sie an folgender Stelle: <Installationsverzeichnis>/adminapi/cfg/admin-api.yaml)
Wählen Sie die folgenden Werte über das Ressource-Mapping:
Port ${port}
Hostname ${host}
Pfad auth
Der Endpunkt zum IAA-Login enthält keine variablen Bestandteile, daher kann er direkt fest eingetragen werden.
Body Im Body wählen wir zunächst den Body-Typ JSON.
Informationen zu "name" und "password" werden benötigt.
Klicken Sie auf das das -Icon und hinterlegen Sie die Keys "iaaUser" und "iaaPassword".
REST-Call einrichten - Export Applikation (4)
REST-Call-Aktion kopieren
Sie können REST-Call-Aktionen kopieren. Damit ersparen Sie sich die (erneute) Eingabe der Daten für das Resource-Mapping.
Allgemein Erfassen Sie einen Alias für die REST-Call-Aktion.
Authentifizierung und Header Wählen Sie den Authentifizierungstyp "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 -Icon, um den Dialog für das Ressource Mapping zu starten.
Fügen Sie folgende Keys hinzu:
host Der Key "host" erhält aus dem "Verarbeitungskontext" den Wert "remoteHost".
port Der Key "port" erhält aus dem "Verarbeitungskontext" den Wert "iaaPort".
portal Der Key "portal" erhält aus dem "Verarbeitungskontext" den Wert "iaaPortal".
token Der Key "token" erhält seinen Wert aus der REST-Call-Aktion "login". Der Qualifier ist "Text" . Der Token wird von der IAA als Plaintext gesendet.
Wählen Sie im Feld "Token" den Key "token". Der Header wird automatisch aus den vorherigen Einträgen zusammen gesetzt.
Request Hinterlegen Sie im Request die folgenden Angaben:
Methode Post
Schema https
Wählen Sie aus dem Ressource-Mapping folgende Informationen:
Port ${port}
Hostname ${host}
Pfad ${portal}/applications (vgl. POST Applications)
Body 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.
Klicken Sie auf das -Icon, um einen Body zu erstellen.
Nehmen Sie die folgenden Eingaben vor:
Body-Typ JSON
Body
{
"permission":false
}
Klicken Sie auf "OK".
Klicken Sie auf das das -Icon, um einen weiteren Body zu erstellen.
Nehmen Sie die folgenden Eingaben vor:
Body-Typ Datei
Klicken Sie auf das -Icon, um den Body zu erfassen.
Ressource Datengruppe
Body Wählen Sie das Datenfeld, in dem die zu exportierende Applikation gespeichert ist.
Bestätigen Sie Ihre Angaben.
Sie haben nun alle erforderlichen Aktionen eingerichtet.