Aktionen bei geänderten CustomFields

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 der appsettings.json des IntegrationService. 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

Name

Beschreibung

Bemerkung

Name

Beschreibung

Bemerkung

ScriptPath

Dies ist das einzige, notwendige Feld. Dieses Script wird durch den Trigger aufgeführt

 

WorkingDirectory

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

 

CheckExitCode

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

 

CustomValueParameterName

Mit dieser Einstellung kann der Name des Parameters konfiguriert werden, welcher den Wert des geänderten CustomFields enthält.

Default: CustomValue

 

ProcessTimeout

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

 

Parameter

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

SkipOnEmptyValues

Dieses Feld bietet die Möglichkeit auch dann das Skript auszuführen, wenn der enthaltene Wert leer (oder null) ist.

Default: true