Workflow Manager: Unterschied zwischen den Versionen
Ino (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Ino (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 64: | Zeile 64: | ||
$soap[password])); | $soap[password])); | ||
//... | //... weiterer Code zum Aufbau der Seite, braucht nicht angepasst zu werden | ||
?> | ?> | ||
Version vom 4. August 2009, 15:03 Uhr
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.
Als Vorlage wie man sowas 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.

