Mit diesem Options-XML kann angegeben werden, welche Vorgänge in der zurückgegebenen Vorgangsliste enthalten sein sollen.
Mögliche Einstellunge
- Rückgabe der vom Benutzer selbst erzeugten Vorgänge (default bei Übergabe eines Leerstrings).
- Rückgabe der Vorgänge die an den Benutzer direkt oder an eine Benutzergruppe, der der Benutzer angehört, weitergeleitetet wurden.
- Rückgabe der eigenen sowie der weitergeleiteten Vorgänge. Wird für diesen Parameter ein Leerstring übergeben, so werden nur die vom Benutzer selbst erzeugten Vorgänge (siehe Punkt 1) zurückgegeben.
<mws> <processlist> <item name="forwarded" include="1" /> <item name="nonforwarded" include="0"/> </processlist> </mws>
Die Items des Elementes processlist legen fest, welche Vorgänge in der zurückgegebenen Vorgangsliste enthalten sind.
Die Attribute haben folgende Bedeutung:
Element | Beschreibung |
---|---|
name |
forwarded: Es werden alle weitergeleiteten Vorgänge zurückgegeben. Dies sind die Vorgänge, die entweder an den Benutzer selbst oder an eine Benutzergruppe, der der Benutzer angehört, weitergeleitet wurden. nonforwarded: Es werden alle nicht weitergeleiteten Vorgänge zurückgegeben. Dies sind die Vorgänge, die der Benutzer selbst erstellt hat. |
include |
0: Die entsprechenden Vorgänge werden nicht in die Rückgabeliste aufgenommen. 1: Die durch das Attribut name spezifizierten Vorgänge sollen in der Liste enthalten sein. |
Besonderheiten
Wird für die Options ein Leerstring übergeben, oder werden beide Attribute ausgeschaltet (include="0"), dann werden defaultmäßig nur die vom Benutzer selbst erstellten Vorgänge zurückgegeben.
Erweiterte, optionale XML Attribute
Optional können die folgenden Attribute zur weiteren Anpassung der zurückgelieferten Vorgangsliste angegeben werden:
<mws> <processlist> ... <item name="listuser" include="Admin" /> <item name="shortprocdesc" include="10"/> <item name="additionalCondition" include=" AND (MWS_STATUS = 2)" /> <item name="replacecondition" include="(MWS_STATUS = 2)" /> ... </processlist> </mws>
Die Attribute haben folgende Bedeutung:
Element | Beschreibung |
---|---|
name |
listuser: Wird dieses Attribut spezifiziert, wird die entsprechende Prozessliste des angegebenen Users zurückgegeben. Dabei werden bei den weitergeleiteten Prozessen nur diejenigen berücksichtigt, die an den angegebenen User direkt weitergeleitet wurden. shortprocdesc: Wird dieses Attribut spezifiziert und ein Prozess hat eine Prozessbeschreibung, ist in seinem process-Element innerhalb des zurückgegebenen ProcessList XML das Attribut shortprocdesc enthalten. Das Attribut shortprocdesc ist mit den ersten x Zeichen der Prozessbeschreibung befüllt. Ist keine Prozessbeschreibung vorhanden, ist das entsprechende Attribut nicht enthalten. Beispiel <process id="ade9e10d-ccfb-490f-a5b4-6fb1ac69bfd8" user="Admin" system="dm1" type="" objectname="TestBundle" title="My Title" state="0" created_at="27012010140555" lastsaved="04022010173422" created_by="Admin" shortprocdesc="ShortDescription" /> additionalcondition: Wird dieses Attribut spezifiziert, wird die Bedingung des SelectStatements um die angegebene Bedingung erweitert. Damit können die Bedingungen, die sich aufgrund anderer processlist options ergeben, individuell erweitert werden. replacecondition: Wird dieses Attribut spezifiziert, wird die Bedingung des SelectStatements komplett durch die hier angegebene Bedingung ersetzt. Alle anderen spezifizierten prozesslist options werden überschrieben. Dadurch besteht die Möglichkeit, innerhalb der Prozessliste genau die Prozesse zu bekommen, die die angegebene Bedingung erfüllen. |
include |
Username: Enthält dieses Attribut einen Leerstring, wird es ignoriert Anzahl Zeichen: Anzahl der zurückzugebenden Zeichen der Prozessbeschreibung. Enthält dieses Attribut den Wert 0, wird es ignoriert. Hinzuzufügende Bedingung: Enthält dieses Attribut einen Leerstring, wird es ignoriert Neue Bedingung: Enthält dieses Attribut einen Leerstring, wird es ignoriert |
Anwendungsbeispiel
In diesem Beispielskript werden alle Prozesse gelöscht, die entweder abgeschlossen (Status = 2) oder gesperrt (Status=1) sind und länger als einen Tag nicht mehr bearbeitet wurden.
Dazu wird mittels der Prozesslist Option replacecondition die Bedingung für das Select-Statement komplett neu definiert und anschließend alle in der erhaltenen Prozessliste vorhandenen Prozesse gelöscht.
;********************* MLMwsClient **************************************** GetObject("MwsClient","MLMwsClient") MwsClient.MwsUrl = "http://localhost:8011/mws/mwsprocess" GetObject("date", "MLDate") ; ; Current date CurrDateAsInt = date.CurrentDate() ; ; current date minus 1 day SearchDateInt = date.IncDate(CurrDateAsInt, -1, 0, 0) ; ;SearchDate as string SearchDateStr = date.Int64ToDateString("dd.MM.yyyy", SearchDateInt) FreeObject("date") Protocol(SearchDateStr, 8) ; ; replacecondition --> Status = 1 and last edit less than SearchDate options = FormatStr("<mws><processlist><item name=""replacecondition"" include=""(MWS_STATUS = 2) OR ((MWS_STATUS = 1) AND (MWS_LASTSAVED <= '%s'))"" /></processlist></mws>", SearchDateStr) myXmlResult = "" res = MwsClient.Process_GetList(0, 100, options) ; Protocol(res, 8) myXmlResult = MwsClient.LastXmlResult Protocol(result, 8) ; if (myXmlResult <> "") GetObject("xml", "MLXmlDocument") xml.LoadXml(myXmlResult) root = xml.DocumentElement ;rootElement holen nodeList = root.SelectNodes("/mws/processlist/process") ;get all nodes of the process list Protocol("Number of processes: {0}", 8, nodeList.Count) nodeListEnumerator = nodeList.GetEnumerator() ; Get an enumerator for the nodes ; ; Iterate over all items... readNext = nodeListEnumerator.MoveNext() while (readNext) node = nodeListEnumerator.Current ; get current item node ; ;read processid attrColl = node.Attributes attr = attrColl.GetNamedItem("id") processId = attr.Value Protocol("ProcessId: {0}", 8, processId) if (processId <> "") MwsClient.Process_Delete(processId) ; Delete process Protocol("Process [{0}] deleted", 8, processId) end-if readNext = nodeListEnumerator.MoveNext() ; get next item node end-while FreeObject("xml") end-if FreeObject("MwsClient") ;