Inhaltsverzeichnis
SetChildrenToStatus
Bei SetChildrenToStatus handelt es sich um eine Methode, die mit Call aufgerufen werden kann. Damit können z.B. in einem Workflow die untergeordneten Elemente zu einem Dokument, wie Unterbaugruppen und Einzelteile, auf einen bestimmten Status gesetzt werden. Es wird dabei nicht nur der Wert des Datenfelds geändert, sondern die komplette Workflowdefinition für das Childrendokument durchlaufen. Es ist sinnvoll SetChildrenToStatus in den PreCalls einzutragen, damit die Childrendokumente vor dem Parentdokument verarbeitet werden.
Rückgabewert
Der Rückgabewert der Methode ist:
| Wert | Bedeutung |
|---|---|
TRUE | Alle verknüpfenden Dokumente haben den angegebenen Status |
FALSE | Mindestens eines der verknüpfenden Dokumente hat nicht den gesuchten Status |
Aufrufparameter
Die Aufrufparameter werden mit dem Attribut parameter, durch | getrennt übergeben. Die Parameter sind in folgender Reihenfolge zu übergeben:
| Parameter | Funktion | |
|---|---|---|
| 1 | <Dokument> | Dokument zu dem die Children gesucht werden sollen (%FILEPATH%) |
| 2 | <Datenfeld> | Names des Datenfelds in das der Status eingetragen werden soll (WorkflowStatus) |
| 3 | <Ausgeschlossene Status> | Eine mit . getrennte und abgeschlossene Liste der Status die nicht berücksichtigt werden sollen |
| 4 | all | Alle Referenzen |
dmb | Baugruppenfamilien | |
ref1 | Nur die erste Indexreferenz | |
refwithname | Nur die gleichnamige Referenz | |
| 5 | <BEDINGUNG> | Der optionale Parameter ist eine Condition für Komponenten |
Beispiel
Im Beispiel wird innerhalb des Freigabeworkflows (003), die Children die nicht Status 002 oder 003 haben ebenfalls auf den Status 003 gesetzt.
<Call method="SetChildrenToStatus" parameter="%FILEPATH%|WorkflowStatus|.002.003.|all" condition="$(Condition.isSEDocument)" /> <-- Weitere Beispiele von CADAdapt --/> <Call method="SetChildrenToStatus" parameter="%FILEPATH%|WorkflowStatus|.005.|all|'%FILEPATH:cn|peripherie%=='AND'%FILEPATH:cn¦\08 cad\produkt\%=='" condition="'%PATHID%==HBib'AND'$(Condition.isSEDocument)'OR'%PATHID%==HBib'AND'$(Condition.isSWDocument)' /> <Call method="SetChildrenToStatus" parameter="%FILEPATH%|WorkflowStatus|.003.004.005.006.|all|'%CHILD_FILEPATH:cn¦peripherie%=='" condition="'%PATHID%!=HBib'AND'$(Condition.isSEDocument)'OR'%PATHID%!=HBib'AND'$(Condition.isSWDocument)'" /> <Call method="SetChildrenToStatus" parameter="%FILEPATH%|WorkflowStatus|.001.004.005.|dmb" condition="$(Condition.isSWDocument)" />
Zusammenspiel mit SetParentToStatus
SetParentToStatus bezieht sich nur auf Zeichnungen (siehe Parameter .dft). Dadurch geben die Teile nur eigene Zeichnungen frei. Sollte in einer Zeichnung ein weiteres Teil abgeleitet sein, dann wir der durch SetChildrenToStatus freigegeben. Das führt aber nicht zu einer Rekursion. Falls in der Rekursion die gleiche Zeichnung wieder auftaucht, wird diese ignoriert und nicht ein zweites mal verarbeitet.
