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:

<GISX3HOME>/definitions/workflows/Beschwerde/BeschwerdeErfassen.xml
<?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:

AttributBeschreibungDatentypPflichtattribut
titleDer Titel des Workflows, wie er dem Nutzer angezeigt wirdTextJa
icon

Das Icon das in der Toolbar zu diesem Workflow angezeigt werden soll.

Eine Liste verfügbarer Icons kann an dieser Stelle eingesehen werden.

TextNein
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.

TextJa
stepsEin oder mehrere Schritte des Workflows.geometryStep | dataStep | featureSelectStepJa, mindestens ein Schritt muss vorhanden sein.
afterCreateEine oder mehrere Aktionen die nach erfolgreicher Erfassung durchgeführt werden sollen.showMap | showDialogNein

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.

AttributeBeschreibungDatentypPflichtattribut
titleDer Titel des Workflows, wie er dem Nutzer angezeigt wirdTextJa
icon

Das Icon das in der Toolbar zu diesem Workflow angezeigt werden soll.

Eine Liste verfügbarer Icons kann an dieser Stelle eingesehen werden.

TextNein
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).

MultiCreationWorkflowPart

Ja, mindestens ein Bestandteil muss vorhanden sein.
afterCreateEine oder mehrere Aktionen die nach erfolgreicher Erfassung durchgeführt werden sollen.showMap | showDialogNein

MultiCreationWorkflowPart

MultiCreationWorkflowPart beschreibt einen auszuführende Bestandteil.

AttributeBeschreibungDatentypPflichtattribut
min

Beschreibt wie oft dieser Bestandteil mindestens ausgeführt werden muss.

Ein Wert von 0 kennzeichnet hierbei optionale Bestandteile

GanzzahlNein. 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.

GanzzahlNein. 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).

TextJa
stepsEin oder mehrere Schritte des Workflow Bestandteils.geometryStep | dataStep | featureSelectStepJa, 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.

AttributeBeschreibungDatentypPflichtattribut
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.

GanzzahlJa
sourceAttributeNameDer Name des Attributes (JSON-Name) das den Wert enthält der verwendet werden soll.TextJa
targetAttributeNameDer Name des Attributes (JSON-Name) das den Wert erhalten sollTextJa


Einzelne Datentypen

Die folgenden Datentypen werden von unterschiedlichen Workflows verwendet. Der Aufbau ist immer gleich.

featureSelectStep

featureSelectStep beschreibt die Auswahl eines Features

AttributeBeschreibungDatentypPflichtattribut
titleTitel des SchrittesTextJa
descriptionOptionale BeschreibungTextNein
targetAttributeName des Attributes im Thema des Workflows, das mit der ID des gewählten Features belegt werden soll.TextJa
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").

TextNein

 

geometryStep

geometryStep beschreibt die Erfassung einer Geometrie

AttributBeschreibungDatentypPflichtattribut
titleTitel des SchrittesTextJa
descriptionOptionale BeschreibungTextNein
geoType

Geometrietyp, der zu erfassen ist.

"Point" | "Polygon" Ja
targetAttributeAttributname, in dem Geometrie gespeichert werden soll.Text Ja

dataStep

dataStep beschreibt die Erfassung von Sachdaten. Es stehen folgende Attribute zur Auswahl:

AttributBeschreibungDatentypPflichtattribut
titleTitel des SchrittesTextJa
descriptionOptionale BeschreibungTextNein
createFormIdID der Formularkomponente, die zur Erfassung verwendet werden soll.TextJa

showMap

showMap beschreibt dass nach der erfolgreichen Durchführung des Workflows (bzw. nach erfolgreicher Erzeugung eines Features) eine Karte angezeigt bzw. aktualisiert werden soll.

AttributBeschreibungDatentypPflichtattribut
mapIdID der Karte die nach Erfassung angezeigt / aktualisiert werden soll.TextJa

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.