2013-03-23 27 views
0

我要驗證多個對象,但單獨使用ilog jrules(一次一個)。如何單獨驗證ilog變量?

我現在的想法是包裹的所有項目需要如下

<xs:element name="itemToValidate"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="employer" type="tns:employer" minOccurs="0" /> 
      <xs:element name="department" type="tns:department" minOccurs="0" /> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

然後在封裝稱爲所謂的「初始化」規則「初始化」獲得的每一項名爲「itemToValidate」一個輸入參數進行驗證例如,設置成變量「僱主」 然後在「itemToValidate」每個項目(元素)將有一個包,如「僱主」相關的所有規則,「僱主」

問題我與這個面對是否需要在實際驗證之前檢查所有規則的無效性。

有沒有辦法避免這種情況?或者我的實現有任何問題嗎?

感謝

回答

0

我不知道理解你的問題。 「在實際驗證之前檢查所有規則的無效性」。

爲什麼不在工作內存中設置對象並讓JRules處理內存並使用局部規則變量而不是全局變量?

集「我的老闆」給僱主
如果「我的僱主」的名字是鮑勃
然後打印「你好」

我創建第一個在工作記憶按下「ItemsToValidate」功能然後像我一樣寫規則。 通過這樣做,如果沒有僱主來驗證,那麼規則永遠不會被激發,因爲內存中沒有僱主類型的項目。

-1

只需在我們的項目中,我們做了一個單一的語言表達了這種方法,使用:

the value {VALUE} is defined(返回一個布爾值)

希望這有助於。

0

您可以執行您感興趣的類的BOM-to-XOM映射的測試器部分,以檢查您關心的字段是否存在。

例如,測試者可以寫爲:

回報this.employer = NULL

這將意味着itemToValidate如僱主爲null不會在評估你寫的規則。這將消除(爲僱主)的空檢查。

查看「使用IRL的類映射測試器」下的知識中心主題