Workflow Manager
Die Planaktivitäten zu einem Datensatz, ermöglichen eine Multidimensionale Wiedervorlage. Das ist die Grundidee der Projektverwaltung in infra-struktur. Zu einem Projekt lassen sich also zu n-Zeitpunkten, m-Planaktivitäten (ToDos) anlegen, ganz einfach über das Shortcut
.
Ausgehend von dieser Idee, könnte man sich fragen, ob man nicht ganze Muster von immer ähnlichen/gleichen Planaktivitäten generieren kann? Dann hätte man einen strukturierten Prozess, den man einfach starten kann. Wie geht sowas?
Die Antwort ist wie so oft - Webservices. Man baut sich ein kleines Script, welches über Webservices mit einer Zeile eine Planaktivität anlegen kann. In dieser Codezeile gibt es ein Array mit Parametern: Welcher User, welche Uhrzeit, welcher Text, usw. Jetzt man eine einfach Möglichkeit mit x-Zeilen auch x-Planaktivitäten zu erzeugen. Dieses PHP Script kann natürlich einfach innerhalb der infra-struktur als Neues Item, oder über die Reiterverwaltung verbunden werden. So erhält man einen Startknopf, um beispielsweise 16 Planaktivitäten direkt zu erzeugen.
Workflow Manager EIGENBAU
Als Vorlage wie man so etwas umsetzt, haben wir hier mal ein kleines Beispiel engegeben. Das ist zwar in PHP geschrieben, könnte analog natürlich auch in anderen Sprachen entwickelt werden, denn SOA ist erstmal unabhängig von der Sprache.
<?php
//Verbindung zum Server
$soap[URL] = 'http://localhost/';
$soap[user] = 'admin';
$soap[password] = 'infra-struktur';
$default = array ();
//ID des Verfassers
$default[activityAuthorId] = 2;
//Zeitstempel der Planaktivität
$default[activityStartTime] = time();
//Status 1=rot, 2=gelb, 3=grün
$default[activityStatus] = 1;
//Kommunikationsart 8=Planaktivität
$default[activityTypeID] = 8;
$default[checkBoxAktiv] = true;
$activityTitle = array ();
$activityDescription = array ();
$activityTitle[] = '1. Einkaufen';
$activityDescription[] = ;
$activityTitle[] = '1.1. Bananen';
$activityDescription[] = ;
$activityTitle[] = '1.2. Äpfel';
$activityDescription[] = ;
$activityTitle[] = '2. Kochen';
$activityDescription[] = ;
$activityTitle[] = '2.1. Gemüse';
$activityDescription[] = ;
$activityTitle[] = '2.2. Kartoffeln';
$activityDescription[] = ;
$activityTitle[] = '3. Abwaschen';
$activityDescription[] = ;
$activityTitle[] = '3.1. Teller';
$activityDescription[] = ;
$activityTitle[] = '3.1.1. Große';
$activityDescription[] = ;
$activityTitle[] = '3.1.2. Kleine';
$activityDescription[] = ;
$activityTitle[] = '3.2. Tassen';
$activityDescription[] = ;
// AB HIER NICHTS MEHR ÄNDERN! Dynamische Generierung der Workflow Manager Seite!
header('content-type: text/html; charset=utf-8');
$client = new SoapClient( $soap[URL].'webservice/wsdl/wsdl.php?ido',
array('exceptions' => true));
$token = $client->__soapCall( 'authenticate',
array( $soap[URL],
$soap[user],
$soap[password]));
//... weiterer Code zum Aufbau der Seite, braucht nicht angepasst zu werden
?>
Das vollständige Script kann man hier runterladen: workflowbeispiel.zip
Erläuterungen zum Script
Wir notieren uns die anzulegenden Planaktivitäten als Liste, mit Einrückung:
1. Einkaufen
1.1. Bananen
1.2. Äpfel
2. Kochen
2.1. Gemüse
2.2. Kartoffeln
3. Abwaschen
3.1. Teller
3.1.1. Große
3.1.2. Kleine
3.2. Tassen
...
Dieses Struktur lässt sich jetzt auch wunderbar als EPK abbilden und entspricht im Code, dem oben angegeben Array. Der untere Teil kümmert sich darum in der grafischen Oberfläche noch die Benutzer, die Zeiten und Texte/Titel anpassbar zu machen. Dieses kleine Beispiel ist so generisch, das man damit schnell seine Workflows designen und benutzen kann. Die Anpassung der Serververbindung und die Anpassung des Arrays genügen.
In der HTML Ausgabe des Scriptes muss man oben noch die ID der IDO Instanz und die ID des Datensatzes angeben.
HINWEIS: wenn man IDs angibt die nicht existieren, werden die Planaktivitäten trotzdem angelegt, sind aber "Leichen" in der Datenbank.
Workflow Manager Zusatzmodul
Das angegebene Beispielscript gibt es auch fertig eingebaut in der infra-struktur. Es kann über zwei Wege mit der Datenbank kommunizieren, um Planaktivitäten zu einem Datensatz anzulegen:
- per SQL Statement (nur aus infra-struktur heraus)
- per Webservice (Aufruf von überall)
Das Zusatzmodul wie wird wie folgt als Neues Item angelegt:
- link auf: workflow/workflowmanager.php
- Session
- aktiviert: Script läuft über SQL innerhalb der infra-struktur
- deaktiviert: Script läuft auf fremdem Server über Webservices
Nach dem Aufruf des Items, nach erfolgreicher Anmeldung über die Session, zeigt sich das Importwerkzeug für Muster:
Mit Hilfe dieses Werkzeuges, kann man in Excel/Openoffice erzeugte Musterworkflows importieren, es werden dazu pro Excel/Openoffice Zeile je eine Planaktivität angelegt. Die Einstellungen lassen sich dann noch modifizieren und man kann für die jeweilige IDO Instanz für einen jeweiligen Datensatz die Planaktivitäten erzeugen lassen.



