Ausgangslage
Sie möchten, dass das PDM nach einem bestimmten Statuswechsel das betreffende Element reserviert oder die Reservation aufhebt.
Beispiel 1 - Reservation einer Zeichnung nach dem Statuswechsel in "geprüft" oder "freigegeben" aufheben
XML Konfigruration
<COPJobs>
<Job>
<Name>unreserve</Name>
<Action>com.cop.job.COPJobUnreserve</Action>
</Job>
</COPJobs>
<Class extends="DMDrawing,DMReleaseProcess">
<Name catalog="awm_stda" msg_num="254">DRAWING_2D</Name>
<PostApplyListener>com.cop.biz.Drawing2DPostApplyListener</PostApplyListener>
<Attribute>
STATE
<COPJobOnChange>
unreserve
<From>work</From>
<To>approved</To>
<COPJobOnChange>
<COPJobOnChange>
unreserve
<From>approved</From>
<To>released</To>
<COPJobOnChange>
</Attribute>
</Class>
Beschreibung
Alle COP Jobs sind im Tag <COPJob> zusammengefasst und ein COP Job wird mit dem Tag <Job> konfiguriert. Der Jobname wird mit <Name> definiert (hier unreseve) und ist frei wählbar. Die von COP PDM auszuführende Aktion ist im Tag <Action> definiert. In diesem Fall führt COP PDM die Aktion com.cop.job.COPJobUnreserve aus.
In der Drawing 2D Klasse muss der Post-Apply-Listener com.cop.biz.Drawing2DPostApplyListener konfiguriert sein. Model Manager führt diesen Listener aus, sobald ein Element der Drawing 2D Klasse geändert wird.
Sobald sich das Attribut STATE eines 2D Zeichnung ändert, reagiert COP PDM darauf und führt alle Jobs aus, die mit <COPJobOnChange> definiert sind. In diesem Fall führt COP PDM den konfigurierten Job "unreserve" aus. COP PDM führt den Job aus, falls eine Statusänderung von "In Arbeit" (<From>work</From>) nach "geprüft" (<To>approved</To>) erfolgte oder eine Statusänderung von "geprüft" (<From>approved</From>) in "freigegeben" (<To>released</To>).
Der Tag <COPJobOnChange> kann mehrfach für verschiedene Änderungen eines Attributes angewendet werden.
Kompakte Konfiguration
Sie können die gleiche Aufgabe auch in einer kompakteren Konfiguration definieren.
<Class extends="DMDrawing,DMReleaseProcess">
<Name catalog="awm_stda" msg_num="254">DRAWING_2D</Name>
<PostApplyListener>com.cop.biz.Drawing2DPostApplyListener</PostApplyListener>
<COPJobOnApproved>unreserve</COPJobOnApproved>
<COPJobOnRelease>unreserve</COPJobOnRelease>
<Attribute>
STATE
</Attribute>
</Class>
Falls die Zeichnung in Status "geprüft" oder "freigegeben" gesetzt wird, führt COP PDM den Job "unreserve" aus.
Bitte beachten sie die Hinweise in <COPJobOnApproved> und <COPJobOnRelease>.
Beispiel 2 - 3D Modell nach dem Statuswechsel von "geprüft" in "In Arbeit" reservieren
XML Konfigruration
<COPJobs>
<Job>
<Name>reserve</Name>
<Action>com.cop.job.COPJobReserve</Action>
</Job>
</COPJobs>
<Class extends="DMModel,DMReleaseProcess">
<Name catalog="awm_stda" msg_num="258">MODEL_3D</Name>
<PostApplyListener>com.cop.biz.Model3DPostApplyListener</PostApplyListener>
<Attribute>
STATE
<COPJobOnChange>
reserve
<From>approved</From>
<To>work</To>
</COPJobOnChange>
<COPJobOnChange>
reserve
<From>released</From>
<To>work</To>
</COPJobOnChange>
</Attribute>
</Class>
Beschreibung
Der Jobname ist mit <Name> definiert (hier reseve) und ist frei wählbar. Die von COP PDM auszuführende Aktion ist im Tag <Action> definiert. In diesem Fall führt COP PDM die Aktion com.cop.job.COPJobReserve aus.
In der Modell 3D Klasse muss der Post-Apply-Listener com.cop.biz.Model3DPostApplyListener konfiguriert sein. Model Manager führt diesen Listener aus, sobald ein Element der Model 3D Klasse geändert wird.
Sobald sich das Attribut STATE eines 3D Modells ändert, führt COP PDM alle Jobs aus, die mit <COPJobOnChange> definiert sind. In diesem Beispiel führt COP PDM den Job "reserve" aus und reserviert das 3D Modell. COP PDM führt den Job nur aus, falls eine Statusänderung von "geprüft" (<From>approved</From>) nach "In Arbeit" (<To>work</To>) erfolgte oder eine Statusänderung von "freigegeben" (<From>released</From>) in "In Arbeit" (<To>work </To>).
Siehe auch
(c) 2018 COP Informatik AG www.copag.ch