Changes for page Entwicklung eines ACMP Connectors für die ISS
Last modified by jklein on 2025/02/13 13:15
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -24,7 +24,7 @@ 24 24 1. Legen Sie einen neuen Ordner mit dem Namen //ISSACMPConnector// im Datei-Explorer an. 25 25 1. Klicken Sie mit einem Rechtsklick auf den neuen Ordner, um das Kontextmenü zu öffnen. 26 26 1. Wählen Sie im Kontextmenü den Eintrag //Mit Code öffnen //aus, damit direkt das richtige Verzeichnis geöffnet wird. 27 -1. Erstellen Sie eine neue Datei mit der Endung **//.psm1 //**(z.B. M icroservice.psm1). Bei dieser Datei handelt es sich um ein PowerShell-Modul, in dem nun die Businesslogik implementiert werden kann.{{aagon.infobox}}Das Erstellen dieser Datei ist notwendig, damit eine PowerShell-Session mit dem Terminal in Visual Studio Code geöffnet wird.{{/aagon.infobox}}27 +1. Erstellen Sie eine neue Datei mit der Endung **//.psm1 //**(z.B. Modul.psm1). Bei dieser Datei handelt es sich um ein PowerShell-Modul, in dem nun die Businesslogik implementiert werden kann.{{aagon.infobox}}Das Erstellen dieser Datei ist notwendig, damit eine PowerShell-Session mit dem Terminal in Visual Studio Code geöffnet wird.{{/aagon.infobox}} 28 28 1. Geben Sie im Terminal den Befehl //{{code language="PowerShell"}}code $profile{{/code}} //ein und bestätigen Sie mit der Eingabetaste. Nun öffnet sich die Datei //Microsoft.VSCode_profile.ps1//,// //mit der Sie das verwendete PowerShell-Profil anpassen können. 29 29 1. Fügen Sie den nachfolgenden Code in die Datei //Microsoft.VSCode_profile.ps1// ein. Beachten Sie, dass der angegebene Pfad für die AESB Shell korrekt ist. 30 30 1. Drücken Sie Strg + S, um die Datei zu speichern. ... ... @@ -124,7 +124,7 @@ 124 124 1. Klicken Sie mit einem Rechtsklick auf den Ordner //ISS_ACMP_Connector//, um das Kontextmenü zu öffnen. 125 125 1. Wählen Sie im Kontextmenü den Eintrag //Mit Code öffnen //aus, damit direkt das richtige Verzeichnis geöffnet wird. 126 126 1. Erstellen Sie einen neuen Unterordner mit dem Namen //Modules.// 127 -1. Erstellen Sie im Unterordner //Modules //eine neue Datei mit dem Namen //ISSRestConnector.psm1//. Alternativ können Sie auch die anfangs erstellte, leere Datei //M icroservice.psm1// umbenennen und in den Ordner verschieben.127 +1. Erstellen Sie im Unterordner //Modules //eine neue Datei mit dem Namen //ISSRestConnector.psm1//. Alternativ können Sie auch die anfangs erstellte, leere Datei //Modul.psm1// umbenennen und in den Ordner verschieben. 128 128 1. Fügen Sie den nachfolgenden Code in die Datei ein. 129 129 1. Drücken Sie Strg + S, um die Datei zu speichern. 130 130 ... ... @@ -381,12 +381,89 @@ 381 381 1. Erstellen Sie die Vorlage// ISSRestConnector. //Klicken Sie in der Ribbonleiste auf den Button //Speichern.// 382 382 1. Wiederholen Sie Schritt 3 und Schritt 4 für die Erstellung der Vorlage //ISSAssetImporter//. 383 383 384 -== PowerShell-Module int egrieren ==384 +== PowerShell-Module implementieren == 385 385 386 +Die Implementierung der Module in die PowerShell-Microservices erfolgt an zwei Stellen: In der Modul-Verwaltung und im Skript-Editor. 387 + 388 +=== PowerShell-Module in der Modul-Verwaltung hochladen === 389 + 390 +Zunächst müssen Sie den einzelnen PowerShell-Vorlagen die jeweiligen Module zuweisen: 391 + 392 +1. Wählen Sie die PowerShell-Vorlage //ISSRestConnector //aus und klicken Sie in der Ribbonleiste auf den Button //Module//. 393 +1. Klicken Sie auf //DLL-/PSM1-/Public API-Module hinzufügen //und geben Sie bei //Dateipfad //den Pfad der Modul-Datei //ISSRestConnector.psm1// an, indem Sie die Datei im Datei-Explorer öffnen.{{aagon.infobox}}Bei korrekter Ordnerstruktur, sollte der Pfad 0000 angegeben werden.{{/aagon.infobox}} 394 +1. Klicken Sie auf den Button //Hinzufügen//, um das Modul hochzuladen und klicken Sie in der Modul-Verwaltung auf //OK//, um die Modul-Verwaltung zu schließen. 395 +1. Wiederholen Sie die Schritte für den Microservice ISSAssetImporter mit dem Modul //ISSAssetImporter.psm1 //und dem Modul //ACMP Public API// (Modul-Typ ändern). 396 + 397 +-> Bild einfügen 398 + 399 +=== PowerShell-Module in Microservice-Skripten aufrufen === 400 + 401 +Die PowerShell-Module sind nun in der Modul-Verwaltung hochgeladen und können aus Microservice-Skripten heraus aufgerufen werden. Dafür werden nun die Skripte im Skript-Editor angepasst. 402 + 386 386 {{aagon.warnungsbox}} 387 -In diesem Beispiel werden nur die 404 +In diesem Beispiel werden nur die Event-Skripte angepasst, bei denen für dieses Beispiel eine Anpassung notwendig ist. Die nicht erwähnten Event-Skripte bleiben unverändert. Für allgemeine Informationen zu den Event-Skripten, lesen Sie den Abschnitt [[Aufbau des Skript-Editors>>doc:AESB.110.Workspaces.Powershell.Skript-Editor.WebHome]]. 388 388 {{/aagon.warnungsbox}} 389 389 407 +(% class="wikigeneratedid" %) 408 +**ISSRestConnector** 409 + 410 +(% class="wikigeneratedid" %) 411 +Der ISSRestConnector soll zu einstellbaren Zeiten die Daten von der Rest API holen. Daher werden die Skript-Events //.OnStart// und //.OnExecute //entsprechend angepasst. 412 + 413 +1. Wählen Sie den Microservice //ISSRestConnector //aus und klicken Sie in der Ribbonleiste auf den Button //Skript//. 414 +1. Wechseln Sie in den Skript-Tab //OnStart //und fügen Sie den nachfolgenden Code in die Datei ein. 415 +1. Wechseln Sie in den Skript-Tab //OnExecute //und fügen Sie den nachfolgenden Code in die Datei ein. 416 + 417 +|(% style="width:698px" %){{code}}# 418 +# This gets executed perpetually by the scheduler. Main business logic should go here. 419 +# 420 + 421 +try { 422 + # Trying to fetch new data 423 + Write-Host "Fetching new data from the api." 424 + $result = Get-ISSData -ApiUrl $configuration.ApiUrl 425 + 426 + # Converting the data to icql 427 + $icql = ConvertTo-AESBIcql $result 428 + 429 + # Sending the data to the next microserice 430 + Publish-AESBMessage -Alias $configuration.Target -Message $icql 431 +} 432 +catch { 433 + Write-Error $_ 434 +}{{/code}}|(% style="width:928px" %){{code}}# 435 +# This gets executed perpetually by the scheduler. Main business logic should go here. 436 +# 437 + 438 +try { 439 + # Trying to fetch new data 440 + Write-Host "Fetching new data from the api." 441 + $result = Get-ISSData -ApiUrl $configuration.ApiUrl 442 + 443 + # Converting the data to icql 444 + $icql = ConvertTo-AESBIcql $result 445 + 446 + # Sending the data to the next microserice 447 + Publish-AESBMessage -Alias $configuration.Target -Message $icql 448 +} 449 +catch { 450 + Write-Error $_ 451 +}{{/code}} 452 + 453 +(% class="wikigeneratedid" %) 454 +**ISSAssetImporter** 455 + 456 + 457 + 458 +(% class="wikigeneratedid" %) 459 + 460 + 461 +== Microservice-Schema erstellen == 462 + 390 390 = Fehlerbehandlung = 391 391 465 +- Language-Einstellungen in VS Code -> Syntax 466 + 467 +- SICS-Verbindung in ACMP + Zugriffsberechtigung aktiviert 468 + 392 392 = Orchestrierung =