Benutzer-Werkzeuge

Webseiten-Werkzeuge


primus:status

Dies ist eine alte Version des Dokuments!


Status

Unter Workflow werden für jeden Status den es in Primus geben soll ein eigener Abschnitt abgelegt. Der Name der Abschnitte ist frei wählbar und muss eindeutig sein. In Primus wird das Namensschema Status_<WorkflowStatus> verwendet. Dadurch ist die Konfiguration übersichtlich und leicht anpassbar. Die Standardstatus in Primus sind:

Status Name
001Verfügbar
002Wird geprüft
003Freigegeben
004Veraltet
005Ungültig

In der Liste list_workflowstatus sind noch weitere Status definiert, diese werden z.B. für den JobServer gebraucht, haben hier aber keine Workflowdefinition.

Beispiel

<Status_001>

Aufbau eines Status

Ein Status besteht wiederum aus vier optionalen Abschnitten. Zwischen den Abschnitten sind Kommentare erlaubt, innerhalb der Abschnitte nicht.

Abschnitt Funktion
1PreCalls Funktionen die vor dem zuweisen des Status aufgerufen werden und z.B. prüfen ob alle Vorbedingungen erfüllt sind
2SetDataValues Enthält die Felder und die Werte die einem Dokument mit diesem Status zugewiesen werden
3PostCallsFunktionen die nach dem Zuweisen dieses Status aufgerufen werden
4TargetStatusZielstatus den Dokumente mit diesem Status als nächstes annehmen können

Die Abschnitte werden in der aufgelistetet Reihenfolge abgearbeitet.

SetDataValues

Hier werden den Datenfeldern Werte zugewiesen. Der Name des Tag ist der Name des Datenfelds, der Wert wird mit dem Attribut value zugewiesen. Eine wichtige Rolle spielt die Zuweisung WorkflowStatus, an diesem Feld erkennt Primus die Nummer des Status. Ohne eine Zuweisung dieses Wertes, wird nur ein leerer Status Workflow Dialog angezeigt.

Beispiel

<!--Wertzuweisung beim Status_003-->
<SetDataValues>
  <WorkflowStatus value="003" />
  <WriteStatus value="Read" />
  <CheckedName value="%USER%" />
  <CheckedDate value="%TODAY%" />
  <MODIFIED value="0" />
</SetDataValues>

TargetStatus

In diesem Abschnitt wird definiert, welchen Folge- bzw. Zielstatus ein Dokument im Lebenszyklus als nächstes annehmen kann.

Beispiel

<!--Folgestatus beim Status_003-->
<TargetStatus>
  <Status_001 condition="TRUE" direction="-1" />
  <Status_005 condition="TRUE" direction="+1" />
</TargetStatus>

PostCalls

In PostCalls werden die Methoden aufgerufen, die abgearbeitet werden nach dem ein Dokument diesen Status erreicht hat. Es können AddIns Befehle, externe Programme oder prinzipiell auch Menübefehle sein. Mit createjob_statuspostcalls können auch ein oder mehrere Methoden in eine Jobdatei geschrieben werden, welche dann von einem JobServer abgearbeitet wird.

Funktionen für PostCalls

Funktion Beschreibung
CopyFile Kopiert eine bestimmtes Dokument unter Angabe von Quell- und Zielpfad
SetXMLValue Setzt ein bestimmtes Datenfeld eines Dokuments auf einen Wert
seUpdatePropertiesByPath Öffnet und aktualisiert Das Dokument unter dem angegebenen Pfad

Siehe auch SEInterface.

Beispiel

<!--Funktionsaufrufe beim Abschluss von Status_003-->
<PostCalls>
  <Call method="SEInterface.seUpdatePropertiesByPath" parameter="%FILEPATH%|1" condition="$(Condition.isSEDocument)" />
  <Call method="SEInterface.seSetSolidEdgeFileStatusByPath" parameter="%FILEPATH%|3" condition="$(Condition.isSEDocument)" />
  <Call method="SEJob_Export.seExportJobByPath" parameter="%FILEPATH%|C300|SE-&gt;PDF|.\attachments\%FILENAME%%EXTENSION%\#(Number)|XML_DocumentAttachments" condition="$(Condition.isSEDraft)" />
</PostCalls>

PreCalls

PreCalls werden zu Beginn eines Status aufgerufen, hier kann geprüft werden ob alle Vorbedingungen erfüllt sind damit der Status dem Dokument zugewiesen werden kann. Ein typischer Befehl ist CheckChildrenStatus, mit dem z.B. geprüft werden kann ob alle untergeordneten Dokumente ebenfalls freigegeben sind. Alle Prüfungen müssen als Ergebnis TRUE zurück liefern, sonst wird der Workflow für dieses Dokument abgebrochen. Liefert eine Prüfung FALSE als Ergebnis wird PreCalls sofort beendet und die weiteren Prüfungen werden nicht mehr durchgeführt.

Funktionen für PreCalls

Funktion Beschreibung
CheckChildrenStatus Prüft ob verlinkte untergeordnete Dokumente einen bestimmten Status haben
CheckParentsStatus Prüft ob verlinkte übergeordnete Dokumente einen bestimmten Status haben
CheckParentsWriteable Prüft ob übergeordnete Elemente beschreibbar sind
CheckXMLValue Prüft ob ein Feld einen bestimmten Wert hat
IgnoreStatus Dokumente mit bestimmten Status werden für den Workflow ignoriert
SetChildrenToStatus Bezieht auch untergeordnete Elemente in den Statuswechsel mit ein
SetPrevVersionToStatus Setzt das Dokument der vorherigen Revision auf einen bestimmten Status
SetSubFilesToStatus Bezieht auch abgeleitete Dokumente wie DXF / DWG in den Statuswechsel mit ein

Beispiel

<!--Prüfung beim Aufruf von Status_003-->
<PreCalls>
  <Call method="CheckChildrenStatus" parameter="%FILEPATH%|WorkflowStatus|003" condition="$(Condition.isSEDocument)" />
</PreCalls>
primus/status.1675857672.txt.gz · Zuletzt geändert: von 127.0.0.1