Workflow Manager: Unterschied zwischen den Versionen

Aus infra-struktur AdminWiki 2.10
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 12: Zeile 12:
    
    
   //Verbindung zum Server
   //Verbindung zum Server
   $soap[URL] = 'http://localhost/';
   $soap[URL] = '<nowiki>http://localhost/</nowiki>';
   $soap[user] = 'admin';
   $soap[user] = 'admin';
   $soap[password] = 'infra-struktur';
   $soap[password] = 'infra-struktur';

Version vom 4. August 2009, 14:00 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 sind wie so oft die 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]));
  
  //... weitere 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.



Verwandte Themen