企業規則組態與執行
企業規則引擎會執行企業規則集中的註冊規則,並會傳回驗證結果。在有指定企業規則集唯一金鑰及種子物件之容器參考的情況下,企業規則引擎會擷取企業規則集。在有企業規則集的情況下,引擎會針對種子物件執行這些規則集。
以下階段描述企業規則引擎對企業規則集的執行:
1. 擷取要驗證的指定種子物件
2. 擷取企業規則集
3. 針對企業規則集產生及執行執行計劃
4. 報告所執行計劃的結果。
企業規則執行流程
呼叫企業規則引擎
預設「變更通知」與「推進請求」工作流程中有範例顯示如何從工作流程呼叫企業規則引擎。預設「變更通知」工作流程隨附會呼叫企業規則引擎的兩個不同條件式路由器。如果有任何失敗,「稽核變更通知任務」將會在任務上顯示名為「檢視衝突」的連結。「稽核變更通知任務」可讓您在不修正失敗的情況下繼續。同樣地,「解決發行衝突任務」也會顯示衝突 (如果有)。您必須先修正問題,然後才能繼續執行此任務。
以下是您可能想要在「推進請求核准流程」中設定重工迴圈之方式的另一個範例。企業規則會在 OR 條件式路由器中執行。如果失敗,會傳送電子郵件並顯示「重工推進請求」任務。
有兩個支援的 API 可執行企業規則集。
BusinessRulesHelper.engine.execute(primaryBusinessObject, BusinessRuleSetBean[]) : RuleValidationResultSet
無論種子物件在哪個容器中,第二個選項都允許取代所有物件的容器。此 API 需要預先指定種子物件,且僅支援一次執行一個企業規則集。
BusinessRulesHelper.engine.execute(“Business rule set”, RuleValidationCriteria) : RuleValidationResultSet
如需詳細資訊,請參閱 Javadoc。
擷取種子物件
關係委派用來取得主要企業物件的種子物件,該主要企業物件將針對特定企業規則集進行評估。所有關係委派都會實行 RuleValidation 介面。
關係委派在 service.properties 中註冊。以下是用於取得主要物件之產生物件的委派範例:
<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"/>
選取器是關係鍵,用來查詢關係委派實例。關係鍵命名慣例是使用連結類別名稱,但這並非必需。請注意,如果關係委派傳回關係的連結,會將連結的角色 B 物件作為種子物件使用。您可以選擇性地在 BusinessRuleSetBeanRuleValidationCriteria 中指定目標連結角色。如需有關如何為企業規則集與目前所支援關係委派指定關係的詳細資訊,請參閱 Javadoc 以取得 BusinessRuleSetBean
下表顯示標準 Windchill 安裝中提供的預設委派:
關係
關係委派
描述
wt.change2.AffectedActivityData
com.ptc.core.businessRules.relationship.AffectedObjectsRelationshipDelegate
取得主要企業物件 (若其為變更通知或變更任務) 的受影響物件連結。
wt.change2.ReportedAgainst
com.ptc.core.businessRules.relationship.AffectedObjectsRelationshipDelegate
取得主要企業物件 (若其為問題報告或變動) 的受影響物件連結。
wt.change2.RelevantRequestData
com.ptc.core.businessRules.relationship.AffectedObjectsRelationshipDelegate
取得主要企業物件 (若其為變更請求) 的受影響物件連結
wt.change2.ChangeRecord2
com.ptc.core.businessRules.relationship.ResultingObjectsRelationshipDelegate
取得主要企業物件 (若其為變更通知或變更任務) 的產生物件連結。
wt.change2.IncludedIn2
com.ptc.core.businessRules.relationship.IncludedInRelationshipDelegate
取得主要企業物件 (若其為變更通知) 的變更任務,或取得變更通知 (若主要企業物件為變更任務)。
wt.maturity.MaturityBaseline
com.ptc.core.businessRules.relationship.MaturityBaselineObjectsRelationshipDelegate
取得主要企業物件 (若其為推進通知) 的基準線項目。
wt.maturity.PromotionSeed
com.ptc.core.businessRules.relationship.PromotionSeedObjectsRelationshipDelegate
取得主要企業物件 (若其為推進通知) 的推進種子。
wt.maturity.PromotionTarget
com.ptc.core.businessRules.relationship.PromotionTargetObjectsRelationshipDelegate
取得主要企業物件 (若其為推進通知) 的推進目標。
根據容器擷取企業規則集
從系統取得企業規則集需要下列資訊:
1. 企業規則集的唯一金鑰
2. 應評估其規則的容器參考
企業規則引擎將負責從 Windchill 服務取得適當的企業規則集。企業規則集將使用階層容器查詢發現。未啟用的企業規則集將遭到略過。
以下流程圖說明規則集金鑰與容器的容器查詢流程。
這是否有幫助?