如何单独验证ilog变量?

时间:2013-03-23 19:12:28

标签: ilog odm jrules

我将使用ilog jrules验证多个对象,但是单独验证(一次一个)。

我目前的想法是包装所有项目需要在名为“itemToValidate”的输入参数中进行验证,如下所示

<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>

然后在名为“init”的包中称为“init”的规则获取每个项目并设置为变量,例如“雇主” 然后对于“itemToValidate”中的每个项目(元素),对于与“雇主”相关的所有规则,都会有一个诸如“雇主”之类的包

我面临的问题是我需要在实际验证之前检查所有规则的空值。

有没有办法避免这种情况?或者我的实施有什么问题吗?

由于

3 个答案:

答案 0 :(得分:0)

我不确定你理解你的问题。 “在实际验证之前检查所有规则的空值。”

为什么不在工作内存中设置对象,让JRules处理内存并使用本地规则变量而不是全局变量?

将“我的雇主”设置为雇主 如果“我的雇主”的名字是bob
则打印“你好”

我会创建一个函数,首先在工作内存中推送“ItemsToValidate”,然后像我一样编写规则。 通过执行此操作,如果没有雇主进行验证,则规则永远不会触发,因为内存中没有类型的雇主类型。

答案 1 :(得分:0)

可以实现您感兴趣的类的BOM-to-XOM映射的Tester部分,以检查您关注的字段是否存在。

例如,测试人员可以写成:

  

返回this.employer!= null

这意味着雇主为null的itemToValidate将不会在您编写的规则中进行评估。这将消除无效检查(对雇主而言)。

检查“使用IRL的类映射测试程序”主题下的知识中心

答案 2 :(得分:-1)

在我们的项目中,我们使用以下方法对此方法进行了单一的语言表达:

the value {VALUE} is defined(返回布尔值)

希望这有帮助。