Benutzer-Werkzeuge

Webseiten-Werkzeuge


primus:status

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
primus:status [2022/08/05 12:39] – gelöscht - Externe Bearbeitung (Unknown date) 127.0.0.1primus:status [2023/07/20 11:59] (aktuell) – [Funktionen für PostCalls] Warnung für SetParentToStatus mgras
Zeile 1: Zeile 1:
 +====== Status ======
 +Unter [[StatusWorkflow_Settings#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^
 +|001|Verfügbar|
 +|002|Wird geprüft|
 +|003|Freigegeben|
 +|004|Veraltet|
 +|005|Ungü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 =====
 +<code xml><Status_001></code>
 +
 +====== Aufbau eines Status ======
 +Ein Status besteht wiederum aus vier optionalen Abschnitten. Zwischen den Abschnitten sind [[Glossar#Kommentare]] erlaubt, innerhalb der Abschnitte nicht.
 +^ ^Abschnitt ^Funktion^
 +^1|[[Status#PreCalls]] | Funktionen die vor dem zuweisen des Status aufgerufen werden und z.B. prüfen ob alle Vorbedingungen erfüllt sind|
 +^2|[[Status#SetDataValues]] |Enthält die Felder und die Werte die einem Dokument mit diesem Status zugewiesen werden|
 +^3|[[Status#PostCalls]]|Funktionen die nach dem Zuweisen dieses Status aufgerufen werden|
 +^4|[[Status#TargetStatus]]|Zielstatus den Dokumente mit diesem Status als nächstes annehmen können|
 +Die Abschnitte werden in der aufgelisteten Reihenfolge abgearbeitet.
 +
 +===== SetDataValues =====
 +Hier werden den Datenfeldern Werte zugewiesen. Der Name des Tag ist der Name des Datenfelds, der Wert wird mit dem [[Glossar#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 [[StatusWorkflow_Settings#buttons|Status Workflow Dialog]] angezeigt.
 +
 +==== Beispiel ====
 +<code xml><!--Wertzuweisung beim Status_003-->
 +<SetDataValues>
 +  <WorkflowStatus value="003" />
 +  <WriteStatus value="Read" />
 +  <CheckedName value="%USER%" />
 +  <CheckedDate value="%TODAY%" />
 +  <MODIFIED value="0" />
 +</SetDataValues></code>
 +          
 +===== TargetStatus =====
 +In diesem Abschnitt wird definiert, welchen Folge- bzw. Zielstatus ein Dokument im [[Glossar#Lebenszyklus]] als nächstes annehmen kann.
 +==== Beispiel ====
 +<code xml><!--Folgestatus beim Status_003-->
 +<TargetStatus>
 +  <Status_001 condition="TRUE" direction="-1" />
 +  <Status_005 condition="TRUE" direction="+1" />
 +</TargetStatus></code>
 +
 +===== PostCalls =====
 +In **PostCalls** werden die [[Method]]en aufgerufen, die abgearbeitet werden nach dem ein Dokument diesen Status erreicht hat. Es können [[AddIns]] Befehle, [[prmStartProcess|externe]] Programme oder prinzipiell auch [[Menübefehl]]e 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|
 +| [[SetParentToStatus]]| Bezieht auch übergeordnete Elemente in den Statuswechsel mit ein und darf nur in den PostCalls verwendet werden|
 +| [[SetXMLValue]]| Setzt ein bestimmtes Datenfeld eines Dokuments auf einen Wert|
 +| [[seUpdatePropertiesByPath]]| Öffnet und aktualisiert Das Dokument unter dem angegebenen Pfad|
 +Siehe auch [[SEInterface]].
 +
 +==== Beispiel ====
 +<code xml><!--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></code>
 +
 +===== 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 ====
 +<code xml><!--Prüfung beim Aufruf von Status_003-->
 +<PreCalls>
 +  <Call method="CheckChildrenStatus" parameter="%FILEPATH%|WorkflowStatus|003" condition="$(Condition.isSEDocument)" />
 +</PreCalls></code>
 +