Allgemein
Der Integrationserver überwacht den EventStream und kann auf Wunsch Powershell-Scripte ausführen, wenn sich der Wert eines vorgegebenen Felds ändert. Diese Funktion interagiert direkt mit dem EventStream. Somit werden die Trigger auch nachträglich ausgeführt, wenn der IntegrationService eine Weile ausgeschaltet gewesen ist und er anschließend wieder gestartet sind.
Verfügbar seit Version 2.22.88
des IntegrationsServers
Einstellungen
Die Einstellungen geschehen aktuell manuell in einer appsettings.json. Eine Integration in den AntonyHubClient kann leicht nachgeholt werden. Eine Beispieldatei ist weiter unten zu finden.
Es wird ein CustomFieldTrigger
Element erzeugt, welches eine Liste beherbergt. Es können damit beliebig viele Trigger definiert werden. Anschließend folgt eine Id, welche eindeutig sein muss. Am besten wird einfach eine neue Id gewürfelt. Anschließend folgt der Name des Felds, welches überwacht werden soll. Zunächst muss die Id des Felds herausgesucht werden - am einfachsten aus dem antony-Client und mit einem “Field_” als Präfix eingetragen werden. In unseren Beispiel also “Field_1456” für das CustomField mit der Id 1456.
{ "CustomFieldTrigger": [ { "Id": "5C1A8F61-78D1-447A-A34B-B31C4757F45A", "FieldName": "Field_1456", "ModuleName": "PowerShell", "Parameter": { // Parameter Abhängig vom Modul } } ] }
Anschließend wird der ModuleName
eingetragen. Für einen Powershell Befehl lautet dieser PowerShell
. Achtung: Dies ist nicht der ModuleKey. Diese Einstellungen sind bisher Allgemein und beschreiben nicht den “Aktor”. Dieser wird mit dem Parameter
Objekt konfiguriert. Dessen Inhalt ist abhängig vom verwendeten Modul (hier Powershell) - die verfügbaren Module werden weiter unten beschrieben.
Ist die Konfiguration eingetragen, muss der IntegrationServer neugestartet werden. Anschließend wird der Dienst die Konfiguration lesen - sofern er sich im config
Unterordner befindet und den Trigger konfigurieren.
Der Trigger wird rückwirkend auf alle bisherigen Events angewendet. Bei großen Streams und langen Ausführungszeiten des Aktors kann dies eine Weile dauern.
Powershell
Mit dem Powershell Modul können konfigurierbare Powershell Scripte ausgeführt werden. Dafür sind folgende Einstellungen erforderlich. Diese werden in dem “Parameter” Element eingefügt.
"Parameter": { "ScriptPath": "C:\\tmp\\TestScript.ps1" }
Wie zu sehen ist, muss lediglich das Powershell-Script eingetragen werden, welches ausgeführt werden soll. Hierbei ist zu beachten, dass dieses einen Parameter mit dem Namen CustomValue
akzeptieren muss. Das folgende Beispielscript schreibt die Werte de Customfields in eine Textdatei. Da dieses Script bei jeder Änderung ausgeführt wird, sammeln sich in dieser Datei alle Werte des eingestellen Felds.
param( [Parameter()] [string]$CustomValue ) Add-Content C:\tmp\test.txt "${CustomValue}"
Erweiterte Einstellungen
"Parameter": { "ScriptPath": "C:\\tmp\\TestScript.ps1", "WorkingDirectory": "C:\\tmp", "CheckExitCode": true, "CustomValueParameterName": "CustomValue", "ProcessTimeout": 1000, "Parameter": { "Parameter1": 28, "Parameter2": "testparameter" } }
Name | Beschreibung | Bemerkung |
---|---|---|
| Dies ist das einzige, notwendige Feld. Dieses Script wird durch den Trigger aufgeführt | |
| Ist dieses Feld gesetzt, wird das Arbeitsverzeichnis der Powershell auf den eingetragenen Wert gesetzt. Ist es nicht gesetzt, wird das Arbeitsverzeichnis des IntegrationServers verwendet Default: Nicht gesetzt | |
| Mit dieser Einstellung wird der IntegrationServer angewiesen den ExitCode des Scripts nicht zu überprüfen. Das hat zur Folge, dass eine Änderung eines CustomFields als Verarbeitet gilt, auch wenn das Script nicht erfolgreich beendet wurde. Default: true | |
| Mit dieser Einstellung kann der Name des Parameters konfiguriert werden, welcher den Wert des geänderten CustomFields enthält. Default: CustomValue | |
| Antwortet das Powershellscript nicht (zum Beispiel weil es einen Remote-Call ausführt) wird der Prozess nach dem Timeout beendet. Die Angabe ist in Millisekunden Default: 61440 ms = 1 Minute | |
| Hier können zusätzliche Parameter angegeben werden, welche an das Powershellscript übergeben werden sollen. Der Typ des Parameters wird leider noch nicht übernommen und muss im Powershellscript “string” ein | param( [Parameter()] [string]$CustomValue, [Parameter()] [string]$Parameter1, [Parameter()] [string]$Parameter2 ) Add-Content C:\tmp\test.txt "${CustomValue} (${Parameter1}, ${Parameter2})" |