1.3. Zeitgesteurte Hintergrundworkflows


Hintergrund Workflows unterscheiden sich in folgenden Punkten von normalen Workflows (XML):

-Keine <form>

-Kein <js>

-Kein <next>

Die Workflows müssen vom typ (type) „timer“ sein.

Eine „userid“ für die Ausführung muss angegeben werden und der „step“ (optional default 1).

Das „timer“ Attribute steuert die Ausführungszeit und bietet zwei Möglichkeiten:

-Alle x Sekunden: <workflow timer=“3600“> (Führt den Workflow jede Stunde einmal aus)

-Über eine Formatangabe bzw. Datetime Picture.

Dabei stehen folgende Möglichkeiten offen:

ss = Sekunden (0 – 59)

mi = Minuten (0 – 59)

hh = Stunden (0 – 23)

dd = Tag des Monats (1-x)

dw = Tag der Woche (1 - 7 wobei Sonntag 1 ist)

mm = Monat (0 – 11)

Die Angabe setzt sich aus den Zahlen und dem Format (Picture) getrennt durch ein Komma zusammen.

Beispiele:

<workflow timer=“25,ss“>				Jede Minute zur 25. Sekunde
<workflow timer=“05,mi“>				Jede Stunde zur 5 Minute
<workflow timer=“03 12:30,dw hh:mi“>		Jeden Dienstag um 12:30
<workflow timer=“15,dd“>				Jeden 15. eines Monats um 00:00
<workflow timer=“01.05 14:00,dd.mm hh:mi“>	Jeden 1. Mai um 14:00

Folgendes Beispiel legt jeden Tag um 15:01 ein Ereignis in einer bestimmten Adresse an:

<metadata table="workflow" workflow="timer_eventinfo" type="timer" entity="eventinfo" language_0="Event" language_1="Ereignis">
	<workflow timer="15:01,hh:mi" userid="16" step="1">
		<step>
		   <init>
			   <parameters>
				   <parameter name="addressid" value="90859"/>
				   <parameter name="projectid" value="16"/>
				   <parameter sql="select contactpersonid from contactperson where addressid = #addressid# and personid = 0"/>
			   </parameters>
		   </init>
		   <execute>
			   <insert element="eventid" entity="eventinfo" sequencenumber="Event">
				   <data element="projectid" value="#projectid#"/>
				   <data element="contactpersonid" value="#contactpersonid#"/>
				   <data element="userid" value="#USERID#"/>
				   <data element="mediaid" value="1"/>
				   <data element="direction" value="1"/>
				   <data element="grossstarttime" value="#CURRENTDATE#"/>
				   <data element="grossendtime" value="#CURRENTDATE#"/>
				   <data element="topicid" value="0"/>
				   <data element="categoryid" value="0"/>
				   <data element="createdby" value="#USERID#"/>
				   <data element="createddate" value="#CURRENTDATE#"/>
				   <data element="billableduration" value="0"/>
				   <data element="statusid" value="-1"/>
				   <data element="billable" value="0"/>
				   <data element="notes" value="Background workflow Test ..."/>
			   </insert>
			   <insert entity="projectaddress">
				   <data checkexists="true" element="addressid" value="#addressid#"/>
				   <data checkexists="true" element="projectid" value="#projectid#"/>
			   </insert>
			   <insert entity="projectcontactperson">
				   <data checkexists="true" element="contactpersonid" value="#contactpersonid#"/>
				   <data checkexists="true" element="projectid" value="#projectid#"/>
				   <data element="createdby" value="#USERID#"/>
				   <data element="createddate" value="#CURRENTDATE#"/>
			   </insert>
		   </execute>
		</step>
	</workflow>
</metadata>

Anhänge

Diskussionen