Skip to main content
Skip table of contents

WebCLI Anwendungsbeispiel

Das in diesem Artikel beschriebene WebCLI Anwendungsbeispiel besteht aus einer einfachen Weboberfläche, die es ermöglicht, IBI-aws Hinweise zu erstellen und wieder abzuschliessen.

Komponenten

Beim Erstellen von Nachrichten über die Weboberfläche sind folgende Komponenten beteiligt:

Website

Die Website ist eine einfache HTML-Seite, welche mittels JavaScript (bzw. Ajax Requests) mit der IBI-aws WebCLI kommuniziert. Die Beispielwebsite ermöglicht es, Hinweise zu erstellen und wieder abzuschliessen.

IBI-aws WebCLI

Das IBI-aws WebCLI ist die Schnittstelle zwischen einer externen Anwendung (z.B. einer Webanwendung) und dem IBI-aws. Im WebCLI können Aktionen hinterlegt werden, welche auf Anfrage der externen Anwendung CLI-Aufrufe tätigt. Bei so einer Aktion kann es sich beispielsweise um den Aufruf eines PowerShell-Scripts handeln.

PowerShell-Scripts

In diesem IBI-aws WebCLI Anwendungsbeispiel werden gewisse Aktion durch die Ausführung von PowerShell-Scripts umgesetzt. Folgende PowerShell-Scripts kommen dabei zum Einsatz:

IBI-aws Admin CLI

Mit der Befehlszeilenschnittstelle können einige Funktionen des IBI-aws Admins genutzt werden, ohne die graphische Oberfläche zu verwenden.

Weitere Details zur IBI-aws Befehlszeilenschnittstelle finden sie hier.

Ablauf

Erstellen einer Nachricht

Der Ablauf von der Benutzereingabe über eine Weboberfläche bis zur erstellten IBI-aws Nachricht sieht wie folgt aus:

  1. Der Benutzer tätigt Eingaben über die Weboberfläche und sendet das Formular zur Erstellung einer IBI-aws Nachricht ab.
    Aus Sicht des Benutzers sind keine weiteren Aktionen erforderlich.

  2. Die Website ruft nun das IBI-aws WebCLI via AJAX auf.
    Dabei werden die im WebCLI auszulösende Aktion sowie die Benutzereingaben im AJAX-Request-Body übergeben.

  3. Das IBI-aws WebCLI ermittelt die aus der eingehenden Anfrage angegebene Aktion und führt diese mit den zusätzlich angegebenen Argumenten der Anfrage aus.
    In diesem Beispiel besteht die Aktion aus einem Aufruf eines PowerShell-Scripts.

  4. Das PowerShell-Script bereitet die übergebenen Daten für das CLI des IBI-aws Admin auf.

  5. Das CLI des IBI-aws Admin nimmt die Daten entgegen und erstellt den Hinweis.

  6. Das IBI-aws WebCLI hat seine Aufgabe beendet und gibt das Ergebnis der Verarbeitung als Antwort an den Aufrufer (in diesem Fall die Weboberfläche) zurück.

  7. Die Weboberfläche stellt das Ergebnis der Aktion grafisch dar.

    1. Im Erfolgsfall wird in der Beispielwebsite die neue Nachricht der Auflistung hinzugefügt.

    2. Im Fehlerfall wird der Fehler über einen Dialog ausgegeben.

Abschliessen einer Nachricht

Der Ablauf zum Abschliessen einer Nachricht ähnelt dem zum Erstellen einer Nachricht. Folgende Unterschiede sind hervorzuheben:

  • Beim Aufruf des IBI-aws WebCLI werden eine andere Aktion sowie andere Zusatzinformationen angegeben (wie z.B. die ID der abzuschliessenden Nachricht).

  • Die IBI-aws WebCLI Aktion zum Abschliessen einer Nachricht verwendet ein anderes PowerShell-Script.

Benutzeroberfläche

Die Benutzeroberfläche der Beispielwebsite stellt folgende Eingabemöglichkeiten zur Verfügung:

  • Wechseln der Sprache zwischen Englisch und Deutsch (rechts oben).
    Dies betrifft lediglich die Sprache der Weboberfläche und hat keine Auswirkung auf die zu erstellende Nachricht.

  • Grund und Nachricht.

  • Auswahl der betroffenen Anwendungen (optional).
    Über das Auswahlfeld können Anwendungen markiert werden, auf die sich die Nachricht beziehen soll. Über die STRG-Taste kann eine Mehrfachauswahl bzw. das Aufheben der Auswahl vorgenommen werden.

  • Kontrollkästchen Jetzt veröffentlichen.
    Gibt an, ob die Nachricht direkt nach dem Erstellen veröffentlicht werden soll.

  • Schaltfläche Hinweis erstellen.

  • Auswahlfeld Sprache.
    Über dieses Auswahlfeld können verschiedene Übersetzungen für die Nachricht definiert werden.

  • Auflistung Hinweise.
    Wurden bereits Hinweise erstellt, werden diese unten aufgelistet. Achtung: In dieser simplen Beispielwebsite verschwindet die Auflistung der erstellten Hinweise, sollte man die Website aktualisieren oder schliessen.

  • Schaltfläche Abschliessen.
    Ermöglicht das Abschliessen eines bereits erstellten Hinweises.

image-20240416-142041.png

Installation

IBI-aws WebCLI

Stellen Sie das IBI-aws WebCLI auf einem Webserver bereit. Die Verzeichnisstruktur könnte dabei wie folgt aussehen: ./WebCLI/Server/Application

In diesem Verzeichnis befindet sich die IBI-aws WebCLI Webanwendung sowie die dazugehörige Actions.xml, in welcher die ausführbaren Aktionen definiert sind.

Details zur Installation des IBI-aws WebCLI finden Sie hier.

Beispielwebsite

Die Webressourcen (wie HTML, CSS und JavaScript) können beispielsweise unter ./WebCLI/SampleWebsites abgelegt werden.

JavaScript Variablen anpassen

Passen Sie in den JavaScript Dateien sample1.js und sample2.js die Variablen webCliBaseUrl und apiKey an.

  • webCliBaseUrl: Basis-URL der IBI-aws WebCLI.

  • apiKey: Der in der appsettings.json Datei hinterlegte API Key.

Beachten Sie, dass aus Gründen der Einfachheit in diesem Anwendungsbeispiel auf besondere Sicherheitsmaßnahmen verzichtet wurde. Der in den JavaScript Dateien angegebene API Key kann von allen Besuchern der Beispielwebsite ausgelesen und verwendet werden.

Implementieren Sie in einer produktiven Umgebung Authentifizierung und Autorisierung.

PowerShell-Scripts

In diesem Anwendungsbeispiel existieren zwei PowerShell-Scripts, welche in folgendem Verzeichnis abgelegt wurden: ./WebCLI/Server/Scripts

create_aws_message.ps1

Dieses Script dient zur Erstellung von IBI-aws Hinweisen. Es verarbeitet die übergebenen Daten und bereitet diese für die Befehlszeilenschnittstelle des IBI-aws Admin auf. Das Script ermöglicht es unter anderem, Hinweise zu erstellen, die sich auf eine Anwendungen oder Anwendungsgruppen beziehen. Dazu wurden die ID's dieser Anwendungen aus dem IBI-aws Admin entnommen und im Script hinterlegt.

  • Stellen Sie für dieses Anwendungsbeispiel sicher, dass die im UI angegebenen Anwendungen im IBI-aws Admin hinterlegt sind, und dessen ID's im PowerShell-Script aktualisiert werden.

    Die ID einer Anwendung oder Anwendungsgruppe erhalten Sie über das Aktionspanel oder über das Kontextmenü des selektierten Eintrages.

    Auszug aus dem PowerShell-Script:

    POWERSHELL
    ...
    $awsApplications = @{
        "browsers" = @{
            Type     = "group"
            Reference = "2672b6cc-1efd-444e-877e-1b03d3141516"
        }
    ...
  • Achten Sie auch darauf, dass der im Script angegebene Pfad zur IBI.aws.Admin.exe korrekt ist. Wenn Sie das Projekt so wie es zur Verfügung gestellt wurde (bzw. wie unten beschrieben) übernehmen, sollten keine Änderungen notwendig sein.

    POWERSHELL
    ...
    $exePath = Join-Path $scriptDirectory ".\Admin\IBI.aws.Admin.exe"
    ...

resolve_aws_message.ps1

Dieses Script dient zum Abschliessen von IBI-aws Hinweisen. Stellen Sie auch hier sicher, dass der Pfad zur IBI.aws.Admin.exe korrekt ist.

general_message.iaatemplate

Im Scripts Verzeichnis existiert eine weitere Datei general_message.iaatemplate. Diese dient als Vorlage für die Erstellung von IBI-aws Hinweisen.

IBI-aws Admin

Die IBI-aws Admin Anwendung, welche die IBI-aws Befehlszeilenschnittstelle zur Verfügung stellt, wurde in folgendem Verzeichnis abgelegt: ./WebCLI/Server/Scripts/Admin

Für dieses Beispiel wurde eine vorkonfigurierte Data.xml zur Verfügung gestellt, welche sich im selben Verzeichnis wie die IBI.aws.Admin.exe befindet.

Übersicht Verzeichnisstruktur

Zusammenfassend könnte die Verzeichnisstruktur dieses Anwendungsbeispiels wie folgt aussehen:

  • WebCLI

    • Server

      • Application

        • IBI.aws.WebCLI.exe 

        • Actions.xml

        • ...

      • Scripts

        • create_aws_message.ps1 

        • resolve_aws_message.ps1

        • general_message.iaatemplate

        • Admin

          • IBI.aws.Admin.exe

          • Data.xml

          • ...

    • SampleWebsites

      • index.html

      • sample1.html

      • sample2.html

      • css

      • js

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.