2014-03-13 138 views
1

我想設置一個規則來擁有多個規則流組。原因在於我將擁有不同的BPMN流程,這些流程將根據規則流組採用不同的規則子集。例如,是否可以將多個規則流組分配給規則?

rule "Test 1" ruleflow-group "A" ruleflow-group "B" 
when 
    // Condition 
then 
    // Action 
end 

rule "Test 2" ruleflow-group "A" 
when 
    // Condition 
then 
    // Action 
end 

BPMN Process 1 is linked to ruleflow-group A, so it should run rules Test 1 and Test 2. 
BPMN Process 2 is linked to ruleflow-group B, so it should run rule Test 2 only. 

當我如上編寫規則時,編譯器不會抱怨。但是,在運行過程BPMN 1時,它只能運行規則試驗2當運行BPMN過程2,它只能運行規則測試1.

回答

1

Rule類定義中的JBoss口水source code具有用於規則流組屬性的單一字符串字段。所以一個規則不可能有多個規則流組。

public void setRuleFlowGroup(final String ruleFlowGroup) { 
    this.ruleFlowGroup = ruleFlowGroup; 
} 

或者,您可以使用控制事實來分組您的規則。

rule 1 
when 
    Controller(group in ("group1", "group2")) 
then 
    ... 
+0

是的,這就是我的經驗來看也是如此。任何想法爲什麼有這種限制?具有此功能將使設計BPMN流程更靈活,即針對不同規則組的多個BPMN流程。 –

+0

可能是爲了簡單起見。您可以使用控制事實來分組您的規則。 –

+0

你能舉個例子嗎? –