Nachfolgend sind die grundlegenden Funktionen sowie Aufbau der Activity beschrieben.
Zur optimalen Verwendung der Activity sind Python Grundkenntnisse von Vorteil, da Python bspw. seinen Scope über Einrückungen definiert und es dort oft zu typischen Fehlern kommt.
Grundlegender Aufbau des Skripts
Das Skript, welches vom Workflow Editor eingelesen wird ist der Einstiegspunkt jeder Python Skript Activity.
Als Benutzer kann man sich deshalb nur innerhalb dieser Klasse bewegen und auch nur auf die DQServer Objekte, die im Parameter übergeben werden, zugreifen.
Damit das Skript fehlerfrei funktioniert, ist auf eine korrekte Einrückung des Codes zu achten.
Neuer Quellcode, der in Höhe der Klasse (ohne Einrückung) definiert wird, befindet sich automatisch im Scope der PythonScriptExecute Klasse und stellt somit den äußersten Scope des kompletten Skripts dar.
Eine weitere Vorgabe, die durch die Activity definiert ist, legt der Konstruktor fest. Die Definition __init__ ist der Klassenkonstruktor mit Parametern und wird immer als erstes aufgerufen, wenn das Skript gestartet wird.
Die Parameter werden vom Workflow Editor eingespeißt und können innerhalb des Konstruktors bzw. der Klasse (z.B. Definieren neuer Methoden) aufgerufen und verwendet werden.
Im Scope der Klasse können eigene Methoden definiert und im Konstruktor bzw. in anderen Methoden aufgerufen werden. Für neue Methoden muss als erster Parameter zwingend self angegeben werden.
Möchte man Funktionen aus anderen Bibliotheken aufrufen, so genügt ein einfaches Python Import innerhalb des Konstruktors bzw. der jeweiligen Methodendefinition.
Workflow Python Activity Klasse |
---|
Class PythonScriptExecute: |
Skriptbeispiel |
---|
Class PythonScriptExecute: def __init__(self, record, logger, access, context): |
# ANFANG: Bereich des Nutzers ## Code, welcher um zwei Stellen eingerückt ist, wird im Klassenkonstruktor aufgerufen. ## Importieren der Math Library und anschließender Verwendung. (2 Leerzeichen) ## Modifiziert ein Feld im Datensatz. (2 Leerzeichen) ## Fügt mit Hilfe der unten definierten Funktion ein neues Feld zum Datensatz hinzu. (2 Leerzeichen) ## Logmeldungen schreiben (Debug, Info, Warn, Error). (2 Leerzeichen) ## Ermöglicht Zugriff auf das komplette Workflow Kontext Objekt. (2 Leerzeichen) ## Erzeuge eine leere Ergebnistabelle. (2 Leerzeichen) ## Eine Beispielmethode, die ein neues Feld zum Datensatz hinzufügt. (1 Leerzeichen) # ENDE: Bereich des Nutzers |
Definitionen der Parameter
Eigenschaften der Parameter
self beinhaltet die Klasseninstanz. Wird für das Definieren und Aufrufen von eigenen Methoden benötigt.
record beinhaltet den Eingangsdatensatz als Dictionary<string, string> (Feldname, Wert).
logger umfasst Funktionen für den Zugriff auf die Log Funktion des DQ Servers.
access beinhaltet alle vorhandenen Ergebnistabellen.
context verwaltet die komplette Datensatzhierarchie aller verwendeten Activities des Workflows über verschiedene Ebenen hinweg.