BCT CheckIt: Wie konfiguriert man eine automatische rekursive Baugruppenfreigabe
BCT CheckIt: Wie konfiguriert man eine automatische rekursive Baugruppenfreigabe
24.13.2 Automatische rekursive Baugruppenfreigabe
In einem Freigabeprozess müssen neue und geänderte Baugruppen auf bestimmte Informationen hin validiert werden. BCT CheckIt kann dies für eine ganze Baugruppe automatisch rekursiv durchführen. Dazu wird die Stückliste der Baugruppe rekursiv aufgelöst und die Validierung auf jede enthaltene Komponente angewandt. Abhängig von Statuswert werden weitere unterschiedliche Prüfungen ausgeführt, wie zum Beispiel Prüfungen zum Schreibzugriff, ob das Element eingecheckt ist oder ob Datasets eines bestimmten Typs angehängt sind. Bereits freigegebene Komponenten werden nicht mehr validiert.
Das Ergebnis dieses Validierungsprozesses wird dem Anwender in einem Prüfprotokoll mitgeteilt. Der Benutzer erhält somit einen Überblick über fehlende Freigabe-Voraussetzungen und kann diese in der Produktstruktur korrigieren.
Für alle Komponenten startet nach der Prüfung automatisch ein Freigabeworkflow, sofern alle Prüfungen für die Baugruppe selbst, aber auch deren Kinder keine Fehler mehr aufweisen.

Nachfolgend wird ein Beispiel für ein CheckItSet dargestellt, mit dem eine automatische rekursive Baugruppenfreigabe durchgeführt werden kann. Beachten Sie bitte auch die erklärenden XML-Kommentare vor einigen XML-Elementen (<!-- Kommentar -->).
<?xml version="1.0" encoding="UTF-8"?><CheckItSet xsi:noNamespaceSchemaLocation="BCTCheckIt.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- Es wird eine äußere CheckItRule zur Steuerung des Namens im CheckIt Dialog benötigt --> <CheckItRule name="checkRecursiveBomRelease"> <!--** Display Name for BCT CheckIt Dialog **--> <displayName> <name value="Rekursive Freigabe Workflow für Baugruppen" tooltip="Starte Workflow nach rekursiver Baugruppen Prüfung, wenn alle Checks erfolgreich sind" group="Prozesse" lang="de"/> <name value="Recursive release workflow for assemblies" tooltip="start workflow for BOM recursivly if all checks pass" group="Processes" lang="en"/> </displayName> <!-- Die CheckItGroup löst die Stückliste auf und die in der CheckItGroup enthaltenen Prüfungen werden auf die Komponenten der gesamten Stückliste angewendet. --> <CheckItGroup plugin="bct_checkit_teamcenter_basic_rule" name="checkRecursiveBomReleaseCG"> <Parameters> <Parameter id="level">-1</Parameter> <Parameter id="revisionRule">Latest Working</Parameter> <Parameter id="viewType">view</Parameter> <Parameter id="ignoreRootOcc">false</Parameter> </Parameters> <!-- CheckItRule, um Imports einbinden zu können, direkt in der CheckItGroup wäre dies nicht möglich. --> <CheckItRule name="checkRecursiveBomReleaseCR1"> <displayName> <name value="checkRecursiveBomReleaseCR1" tooltip="checkRecursiveBomReleaseCR1" group="Gesamtprüfung" lang="de"/> <name value="checkRecursiveBomReleaseCR1" tooltip="checkRecursiveBomReleaseCR1" group="Total Checks" lang="en"/> </displayName> <!--Prüfung Release Status vorhanden. Status, bei welchen keine Prüfung notwendig ist. Eine rekursive Prüfung der Stückliste unter der ItemRevision wird dennoch durchgeführt! Ist bereits ein entsprechender Status gesetzt, wird auch kein Prozess für eine Weiterverarbeitung z.B. Freigabe angestoßen.--> <CheckItCheck ignoreNotPassed="true" ignoreInReport="true" notPassedAsWarning="false" rule="attributeCheck" plugin="bct_checkit_teamcenter_basic_rule" name="checkReleaseStatusCC1"> <!-- Display Name for BCT CheckIt Report --> <displayName> <name value="Prüfe Release Status Freigegeben" lang="de"/> <name value="Check Release Status already released" lang="en"/> </displayName> <Parameters> <Parameter id="operation">equal</Parameter> <Parameter id="property">$(ItemRevision/release_status)</Parameter> <Parameter id="value">TCM Released|Freigegeben|60</Parameter> </Parameters> <Events> <Event type="PASSED" id="SKIP_CHILD_RULES" order="0"/> </Events> </CheckItCheck> <!-- Import verschiedener Standard-Prüfungen. --> <Import revRule="Latest Working" itemId="BCT_CheckIt" datasetName="checkWriteAccess"/> <Import revRule="Latest Working" itemId="BCT_CheckIt" datasetName="checkCheckedIn"/> <Import revRule="Latest Working" itemId="BCT_CheckIt" datasetName="checkDatasetCadModel"/> <!-- Konfiguration des Workflow Events, wenn alle vorherigen Checks auf PASSED sind. --> <CheckItRule name="checkRecursiveBomReleaseCR3"> <displayName> <name value="checkRecursiveBomReleaseCR3" tooltip="checkRecursiveBomReleaseCR3" group="Einzelprüfungen" lang="de"/> <name value="checkRecursiveBomReleaseCR3" tooltip="checkRecursiveBomReleaseCR3" group="Single Checks" lang="en"/> </displayName> <!-- CheckIt Check, der nur als Container für das Event fungiert, die Prüfung ist so ausgelegt, dass sie immer erfüllt ist. Ohne diesen Check müsste das Event in den letzten Check, der eine konkrete Funktion erfüllt, eingebaut werden. Diese Checks werden jedoch importiert, sodass das Event in dieses wiederverwendbare Modul eingebaut werden müsste, was natürlich zu vermeiden ist. --> <CheckItCheck ignoreNotPassed="false" ignoreInReport="false" notPassedAsWarning="false" rule="attributeCheck" plugin="bct_checkit_teamcenter_basic_rule" name="checkTriggerWorkflow"> <displayName> <name value="Freigabe Workflow startet, wenn alle Checks erfolgreich sind" lang="de"/> <name value="checkTriggerWorkflow" lang="en"/> </displayName> <Parameters> <Parameter id="operation">not empty</Parameter> <Parameter id="property">$(Item/item_id)</Parameter> </Parameters> <Events> <!-- Event, das eine Message ausgibt für jedes Item, das alle Prüfungen bestanden hat und dessen Kindelemente ebenfalls alle Prüfungen bestanden haben. --> <Event type="ALL_PASSED_INCLUDING_DESCENDANTS" onlyTriggerOnPassedEndResult="false" id="triggerReleaseWorkflowMessage" plugin="bct_checkit_teamcenter_events" event="infoMessage"> <Parameters> <Parameter id="message" lang="de">Freigabeworkflow wird gestartet.</Parameter> <Parameter id="message" lang="en">Release workflow is started.</Parameter> </Parameters> </Event> <!-- Event, das einen Freigabe-Workflow anstößt für jedes Item, das alle Prüfungen bestanden hat und dessen Kindelemente ebenfalls alle Prüfungen bestanden haben. --> <Event type="ALL_PASSED_INCLUDING_DESCENDANTS" onlyTriggerOnPassedEndResult="false" id="triggerReleaseWorkflowStart" plugin="bct_checkit_teamcenter_events" event="triggerSingleWorkflow" availableInDryRun="false"> <Parameters> <Parameter id="template">BCT CheckIt Release Workflow</Parameter> </Parameters> </Event> </Events> </CheckItCheck> </CheckItRule> </CheckItRule> </CheckItGroup> </CheckItRule></CheckItSet>