Configurazione ed esecuzione delle regole aziendali
Il motore delle regole aziendali esegue le regole registrate in un insieme di regole aziendali e restituisce i risultati della convalida. Il motore delle regole aziendali recupera l'insieme di regole aziendali in base alle chiavi univoche dell'insieme di regole aziendali specificato e i riferimenti di contenitore degli oggetti origine. Con l'insieme di regole aziendali, il motore le esegue sugli oggetti origine.
Le fasi descritte di seguito illustrano l'esecuzione degli insiemi di regole aziendali da parte del motore delle regole aziendali.
1. Recupera gli oggetti origine specificati da convalidare
2. Recupera gli insiemi di regole aziendali
3. Genera ed esegue un piano di esecuzione per gli insiemi di regole aziendali
4. Segnala i risultati del piano eseguito.
Flusso di esecuzione delle regole aziendali
Chiamata al motore delle regole aziendali
Nei workflow di default Notifica di modifica e Richiesta di promozione sono disponibili esempi che mostrano come chiamare il motore delle regole aziendali da un workflow. Il workflow di default Notifica di modifica viene fornito con due diversi router condizionali che chiamano il motore delle regole aziendali. In caso di errori, il task di verifica della notifica di modifica mostrerà un link denominato "Mostra conflitti" nel task. Il task Audit Change Notice consente di procedere senza correggere gli errori. Analogamente, il task Resolve Release Conflicts mostra eventuali conflitti. È necessario correggere i problemi prima di continuare con questo task.
Di seguito è riportato un altro esempio di come impostare un loop di rielaborazione nel processo di approvazione della richiesta di promozione. La regola aziendale viene eseguita nel router condizionale OR. In caso di insuccesso, viene inviata un'e-mail e viene visualizzato il task Rework Promotion Request.
Per eseguire gli insiemi di regole aziendali sono supportate due API.
BusinessRulesHelper.engine.execute(primaryBusinessObject, BusinessRuleSetBean[]) : RuleValidationResultSet
La seconda opzione consente di sostituire il contenitore per tutti gli oggetti, indipendentemente dal contenitore in cui si trovano gli oggetti origine. Questa API richiede che gli oggetti origine vengano specificati in anticipo e supporta l'esecuzione di un solo insieme di regole aziendali alla volta.
BusinessRulesHelper.engine.execute(“Business rule set”, RuleValidationCriteria) : RuleValidationResultSet
Per ulteriori informazioni, vedere Javadoc.
Recupero di oggetti origine
Il delegato di relazione viene utilizzato per ottenere gli oggetti origine di un business object principale che deve essere valutato per un determinato insieme di regole aziendali. Tutti i delegati di relazione implementano l'interfaccia RuleValidation.
I delegati di relazione sono registrati in service.properties. Di seguito è riportato un esempio di delegato per ottenere gli oggetti risultanti per un oggetto principale:
<Service context="default" name="com.ptc.core.businessRules.relationship.
BusinessRuleSetRelationshipDelegate">
<Option serviceClass="com.ptc.core.businessRules.relationship.
ResultingObjectsRelationshipDelegate"
selector="wt.change2.ChangeRecord2"
cardinality="singleton"
requestor="null"/>
Il selettore è la chiave di relazione utilizzata per cercare l'istanza del delegato di relazione. La convenzione di denominazione della chiave di relazione prevede l'utilizzo del nome della classe di link ma non è un requisito. Se il delegato di relazione restituisce i link per la relazione, gli oggetti ruolo B dei link verranno utilizzati come oggetti origine. Facoltativamente, è possibile specificare il ruolo del link di destinazione in BusinessRuleSetBean o RuleValidationCriteria. Per informazioni dettagliate su come specificare la relazione per un insieme di regole aziendali e i delegati di relazione attualmente supportati, vedere Javadoc per BusinessRuleSetBean.
Nella tabella seguente sono riportati i delegati di default forniti in un'installazione standard di Windchill:
Relazione
Delegato di relazione
Descrizione
wt.change2.AffectedActivityData
com.ptc.core.businessRules.relationship.AffectedObjectsRelationshipDelegate
Ottiene i link dell'oggetto interessato del business object principale se si tratta di una notifica di modifica o un task di modifica.
wt.change2.ReportedAgainst
com.ptc.core.businessRules.relationship.AffectedObjectsRelationshipDelegate
Ottiene i link dell'oggetto interessato del business object principale se si tratta di un report di problema o di una soluzione temporanea.
wt.change2.RelevantRequestData
com.ptc.core.businessRules.relationship.AffectedObjectsRelationshipDelegate
Ottiene i link dell'oggetto interessato del business object principale se si tratta di una richiesta di modifica.
wt.change2.ChangeRecord2
com.ptc.core.businessRules.relationship.ResultingObjectsRelationshipDelegate
Ottiene i link dell'oggetto risultante del business object principale se si tratta di una notifica di modifica o un task di modifica.
wt.change2.IncludedIn2
com.ptc.core.businessRules.relationship.IncludedInRelationshipDelegate
Ottiene i task di modifica del business object principale se si tratta di una notifica di modifica o la notifica di modifica se il business object principale è un task di modifica.
wt.maturity.MaturityBaseline
com.ptc.core.businessRules.relationship.MaturityBaselineObjectsRelationshipDelegate
Ottiene gli elementi di baseline del business object principale se si tratta di una notifica di promozione.
wt.maturity.PromotionSeed
com.ptc.core.businessRules.relationship.PromotionSeedObjectsRelationshipDelegate
Ottiene le origini di promozione del business object principale se si tratta di una notifica di promozione.
wt.maturity.PromotionTarget
com.ptc.core.businessRules.relationship.PromotionTargetObjectsRelationshipDelegate
Ottiene le destinazioni di promozione del business object principale se si tratta di una notifica di promozione.
Recupero dell'insieme di regole aziendali in base al contenitore
Per ottenere un insieme di regole aziendali dal sistema, sono necessarie le informazioni riportate di seguito.
1. Chiave univoca per un insieme di regole aziendali
2. Riferimento di contenitore di cui devono essere valutate le regole
Il motore delle regole aziendali sarà responsabile dell'acquisizione dell'insieme di regole aziendali appropriato dai servizi Windchill. Gli insiemi di regole aziendali saranno individuati tramite una ricerca gerarchica nel contenitore. Gli insiemi di regole aziendali non attivati vengono ignorati.
Il diagramma di flusso seguente illustra il flusso di ricerca nel contenitore di una chiave dell'insieme di regole e di un contenitore:
È stato utile?