Allgemeines
Workflows dienen zum Beispiel der Erstellung von neuen Daten oder zur Modifikation bestehender Daten.
Sie legen eine Abfolge von Schritten fest, die von einem Benutzer ausgeführt werden müssen, damit z.B. ein neues Objekt erfasst werden kann
Beschreibung
Die Definition von Workflows findet in Form von XML-Dateien statt, die im Verzeichnis <GISX3HOME>/definitions/workflows abgelegt werden.
Beim Dateinamen handelt es sich hierbei um die ID des Workflows. Groß- und Kleinschreibung von Datei und Unterverzeichnisnamen sind hier relevant. Als Verzeichnisebenentrenner wird bei der ID-Generierung "." verwenden. (Der Workflow in der Datei <GISX3HOME>/definitions/workflows/example/Test.xml kann über die ID "example.Test
" angesprochen werden.) Es gelten die allgemeinen Hinweise zur Benamung.
Im folgenden Beispiel wird ein Workflow zur Erfassung einer Beschwerde gezeigt:
<?xml version="1.0" encoding="UTF-8"?> <SimpleCreationWorkflow xmlns="http://www.geograt.de/namespaces/gisx3/workflowdefinition/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <title>Beschwerde erfassen</title> <theme>gisx3:beschwerden</theme> <steps> <geometryStep> <title>Punkt wählen</title> <description>Wählen Sie eine Koordinate, die den Ort des Problems beschreibt.</description> <geoType>Point</geoType> <targetAttribute>geometry</targetAttribute> </geometryStep> <dataStep> <title>Details zur Beschwerde</title> <description>Geben Sie den Grund der Beschwerde und Ihre Kontaktdaten zwecks Rückmeldung an.</description> <createFormId>BeschwerdeErfassen</createFormId> </dataStep> </steps> <afterCreate> <showMap> <mapId>issues</mapId> </showMap> <showDialog /> </afterCreate> </SimpleCreationWorkflow>
Basiselement eines Workflows ist "SimpleCreationWorkflow
". Als Namespace ist "http://www.geograt.de/namespaces/gisx3/workflowdefinition/1.0" zu verwenden.
SimpleCreationWorkflow
SimpleCreationWorkflow
dient der generellen Beschreibung eines Erfassungsworkflows und kann mehrere Schritte ("steps
") definieren.
Folgende Attribute sind zu verwenden:
Attribut | Beschreibung | Datentyp | Pflichtattribut |
---|---|---|---|
title | Der Titel des Workflows, wie er dem Nutzer angezeigt wird | Text | Ja |
icon | Das Icon das in der Toolbar zu diesem Workflow angezeigt werden soll. Eine Liste verfügbarer Icons kann an dieser Stelle eingesehen werden. | Text | Nein |
theme | Das Thema, auf das sich der Workflow bezieht. Diese Angabe ist in der Form "datastore:thema" zu machen ("gisx3:beschwerden" bedeutet Thema "beschwerden" im Datastore "gisx3"). Bitte beachten: Damit der Workflow ausgeführt werden kann, muss der Benutzer Bearbeitungsrechte für dieses Thema besitzen. | Text | Ja |
steps | Ein oder mehrere Schritte des Workflows. | geometryStep | dataStep | featureSelectStep | Ja, mindestens ein Schritt muss vorhanden sein. |
afterCreate | Eine oder mehrere Aktionen die nach erfolgreicher Erfassung durchgeführt werden sollen. | showMap | showDialog | Nein |
MultiCreationWorkflow
MultiCreationWorkflow
dient der generellen Beschreibung eines Erfassungsworkflows und kann dazu verwendet werden Datensätze in mehreren Themen zu erzeugen.
Hiermit kann zum Beispiel ein Workflow definiert werden, der einen Baum anlegt, die erste Baumkontrolle dazu und (optional) mehrere Pflegemaßnahmen dazu.
Attribute | Beschreibung | Datentyp | Pflichtattribut |
---|---|---|---|
title | Der Titel des Workflows, wie er dem Nutzer angezeigt wird | Text | Ja |
icon | Das Icon das in der Toolbar zu diesem Workflow angezeigt werden soll. Eine Liste verfügbarer Icons kann an dieser Stelle eingesehen werden. | Text | Nein |
part | Die einzelnen Bestandteile des Workflows. Jeder Bestandteil kann optional oder mehrfach ausgeführt werden. Pro Ausführung eines Bestandteils wird ein neuer Datensatz erstellt. Nachfolgende Bestandteile können sich auf Werte vorheriger Bestandteile beziehen (Beispiel: Baumkontrolle verwendet ID von Baum der im vorherigen Bestandteil erzeugt wurde). | Ja, mindestens ein Bestandteil muss vorhanden sein. | |
afterCreate | Eine oder mehrere Aktionen die nach erfolgreicher Erfassung durchgeführt werden sollen. | showMap | showDialog | Nein |
MultiCreationWorkflowPart
MultiCreationWorkflowPart
beschreibt einen auszuführende Bestandteil.
Attribute | Beschreibung | Datentyp | Pflichtattribut |
---|---|---|---|
min | Beschreibt wie oft dieser Bestandteil mindestens ausgeführt werden muss. Ein Wert von 0 kennzeichnet hierbei optionale Bestandteile | Ganzzahl | Nein. Standard ist 0. |
max | Beschreibt wie oft dieser Bestandteil ausgeführt werden kann. Dieser Wert muss größer 1 sein und darf nicht kleiner als "min" sein. Keine Angabe bedeutet dass dieser Bestandteil beliebig oft ausgeführt werden kann. | Ganzzahl | Nein. Standard ist unendlich. |
theme | Das Thema, auf das sich dieser Bestandteil des Workflows bezieht. Diese Angabe ist in der Form "datastore:thema" zu machen ("gisx3:beschwerden" bedeutet Thema "beschwerden" im Datastore "gisx3"). Bitte beachten: Damit der Workflow ausgeführt werden kann, muss der Benutzer Bearbeitungsrechte für alle Themen des Workflows besitzen. Außerdem müssen sich alle hier angegebenen Themen auf den gleichen datastore beziehen (Es ist nicht möglich in einem Workflow gleichzeitig Werte in eine SHAPE Datei und eine Datenbank einzutragen). | Text | Ja |
steps | Ein oder mehrere Schritte des Workflow Bestandteils. | geometryStep | dataStep | featureSelectStep | Ja, mindestens ein Schritt muss vorhanden sein. |
workflowValue | Ein oder mehrere Werte aus den erzeugten Bestandteilen der vorherigen Bestandteilen. Hierdurch ist es z.B. möglich im Bestandteil zur Erfassung einer Baumkontrolle die ID des Baumes (der im vorherigen Bestandteil erfasst wurde) zu erfragen und für die Erzeugung zu verwenden. | WorkflowValue | Nein. Es können beliebig viele Werte angegeben werden. |
WorkflowValue
WorkflowValue
beschreibt die Verwendung eines Attributes eines Datensatzes das durch einen vorherigen Bestandteil erzeugt wurde als Attribut im Datensatz des aktuellen Bestandteils.
Hierdurch ist es z.B. möglich im Bestandteil zur Erfassung einer Baumkontrolle die ID des Baumes (der im vorherigen Bestandteil erfasst wurde) zu erfragen und für die Erzeugung zu verwenden.
Attribute | Beschreibung | Datentyp | Pflichtattribut |
---|---|---|---|
featureIndex | Verweis auf den bereits erzeugten Datensatz. Jede Ausführung eines Bestandteils erzeugt einen neuen Datensatz. Der erste Datensatz hat die Nummer 0. Kann ein Bestandteil mehrfach ausgeführt werden, bekommt jeder erzeugte Datensatz einen eigenen Index. | Ganzzahl | Ja |
sourceAttributeName | Der Name des Attributes (JSON-Name) das den Wert enthält der verwendet werden soll. | Text | Ja |
targetAttributeName | Der Name des Attributes (JSON-Name) das den Wert erhalten soll | Text | Ja |
Einzelne Datentypen
Die folgenden Datentypen werden von unterschiedlichen Workflows verwendet. Der Aufbau ist immer gleich.
featureSelectStep
featureSelectStep beschreibt die Auswahl eines Features
Attribute | Beschreibung | Datentyp | Pflichtattribut |
---|---|---|---|
title | Titel des Schrittes | Text | Ja |
description | Optionale Beschreibung | Text | Nein |
targetAttribute | Name des Attributes im Thema des Workflows, das mit der ID des gewählten Features belegt werden soll. | Text | Ja |
theme | Kann mehrfach angegeben werden: Aus diesem Thema können Features gewählt werden. Diese Angabe ist in der Form "datastore:thema" zu machen ("gisx3:beschwerden" bedeutet Thema "beschwerden" im Datastore "gisx3"). | Text | Nein |
geometryStep
geometryStep
beschreibt die Erfassung einer Geometrie
Attribut | Beschreibung | Datentyp | Pflichtattribut |
---|---|---|---|
title | Titel des Schrittes | Text | Ja |
description | Optionale Beschreibung | Text | Nein |
geoType | Geometrietyp, der zu erfassen ist. | "Point" | "Polygon" | Ja |
targetAttribute | Attributname, in dem Geometrie gespeichert werden soll. | Text | Ja |
dataStep
dataStep
beschreibt die Erfassung von Sachdaten. Es stehen folgende Attribute zur Auswahl:
Attribut | Beschreibung | Datentyp | Pflichtattribut |
---|---|---|---|
title | Titel des Schrittes | Text | Ja |
description | Optionale Beschreibung | Text | Nein |
createFormId | ID der Formularkomponente, die zur Erfassung verwendet werden soll. | Text | Ja |
showMap
showMap
beschreibt dass nach der erfolgreichen Durchführung des Workflows (bzw. nach erfolgreicher Erzeugung eines Features) eine Karte angezeigt bzw. aktualisiert werden soll.
Attribut | Beschreibung | Datentyp | Pflichtattribut |
---|---|---|---|
mapId | ID der Karte die nach Erfassung angezeigt / aktualisiert werden soll. | Text | Ja |
showDialog
showDialog
beschreibt dass nach der erfolgreichen Durchführung des Workflows (bzw. nach erfolgreicher Erzeugung eines Features) ein Dashboard mit dem erzeugten Feature aufgerufen wird.
Es wird hierbei das in der Themendefinition festgelegte Dashboard aufgerufen.
Beispiel
Im folgenden Beispiel ist ein Workflow definiert der es erlaubt einen Baum zusammen mit einer Baumkontrolle zu erfassen. Optional können außerdem Pflegemaßnahmen vergeben werden:
<?xml version="1.0" encoding="UTF-8"?> <MultiCreationWorkflow xmlns="http://www.geograt.de/namespaces/gisx3/workflowdefinition/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <title>Baum mit Baumkontrolle erfassen</title> <part> <min>1</min> <max>1</max> <theme>gisx3:tree.trees</theme> <steps> <geometryStep> <title>Punkt wählen</title> <description>Bitte setzen Sie den Baumstandort. </description> <geoType>Point</geoType> <targetAttribute>geometry</targetAttribute> </geometryStep> <dataStep> <title>Bestandsdaten zum Baum</title> <description>Bitte geben Sie hier die Bestandsdaten des Baumes an.</description> <createFormId>tree.form-treeBaseDataCreate</createFormId> </dataStep> </steps> </part> <part> <min>1</min> <max>1</max> <theme>gisx3:tree.treeInspection</theme> <steps> <dataStep> <title>Grunddaten zur Baumkontrolle</title> <description>Bitte geben Sie hier die Grunddaten der Baumkontrolle an.</description> <createFormId>tree.inspection.form-baseData</createFormId> </dataStep> </steps> <workflowValue> <featureIndex>0</featureIndex> <sourceAttributeName>id</sourceAttributeName> <targetAttributeName>treeId</targetAttributeName> </workflowValue> </part> <part> <min>0</min> <theme>gisx3:tree.treeCarePlannedTask</theme> <steps> <dataStep> <title>Pflegemaßname</title> <description>Bitte geben Sie eine Pflegemaßnahme an</description> <createFormId>tree.treeCarePlannedTask</createFormId> </dataStep> </steps> <workflowValue> <featureIndex>0</featureIndex> <sourceAttributeName>id</sourceAttributeName> <targetAttributeName>treeId</targetAttributeName> </workflowValue> </part> <afterCreate> <showMap> <mapId>map-trees</mapId> </showMap> </afterCreate> </MultiCreationWorkflow>
Besondere Bedeutung haben hierbei die Werte zu "workflowValue
".
Sowohl für die Baumkontrolle als auch für die Pflegemaßnahme ist es notwendig dass die ID des zugehörigen Baumes bei Erzeugung mit angegeben wird.
Da diese aber zum Zeitpunkt der Erfassung noch unbekannt ist, wird sie mittels "workflowValue
" direkt vom Baum genommen der im ersten Bestandteil erzeugt wurde.