Ausgangslage
Sie möchten, dass das PDM nach einem bestimmten Statuswechsel an das Element allenfalls angehängte Dateien (sog. related files) löscht. Zum Beispiel soll das PDM beim Statuswechsel einer Zeichnung von "geprüft" in "In Arbeit" das angehängte PDF löschen.
Beispiel - PDF löschen, sobald eine geprüfte oder freigegeben 2D Zeichnung in Arbeit gesetzt wird
XML Konfigruration
<COPJobs>
<Job>
<Name>delete_related_pdf</Name>
<Action>com.cop.job.COPJobDeleteRelatedFile</Action>
<FileType>pdf</FileType>
</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>
delete_related_pdf
<From>approved</From>
<To>work</To>
</COPJobOnChange>
<COPJobOnChange>
delete_related_pdf
<From>released</From>
<To>work</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 delete_related_pdf) 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.COPJobDeleteRelatedFile aus. Der Tag <FileType> definiert den Dateityp (hier pdf) der zu löschenden angehängten Datei.
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 "delete_related_pdf" aus. COP PDM führt den Job aus, falls eine Statusänderung von "geprüft" (<From>approved</From>) oder von (<From>released</From>) nach "In Arbeit" (<To>work</To>) erfolgte.
Der Tag <COPJobOnChange> kann mehrfach für verschiedene Änderungen eines Attributes angewendet werden.
Siehe auch
(c) 2018 COP Informatik AG www.copag.ch