<xBusinessRules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xBusinessRules.xsd">
<ObjectLookup id="Applicant" objectId="Args" member="Applicant"/>
<ObjectLookup id="CustomValues" objectId="Applicant" member="CustomValues"/>
<ObjectLookup id="ValidationErrors" objectId="Args" member="ValidationErrors"/>
<Boolean id="IsValid" value="True"/>
<ForEach id="CustomField" valueId="CustomValues">
<ObjectLookup id="Field" objectId="CustomField" member="Field"/>
<ObjectLookup id="CustomFieldName" objectId="Field" member="Key"/>
<ObjectLookup id="CustomFieldValue" objectId="CustomField" member="Value"/>
<Logic>
<If>
<And>
<Equals leftId="CustomFieldName" rightId="XAGENTNAME">
</Equals>
</And>
<Do>
<Modify id="IsValid" value="False" type="Boolean"/>
<ObjectLookup objectId="ValidationErrors" member="Add">
<Argument value="Custom_XAGENTNAME" type="String"/>
<Argument value="Pick a sales broker plz" type="String"/>
</ObjectLookup>
</Do>
</If>
</Logic>
</ForEach>
我运行了rulesEngine.RuleContext.GetResult("CustomFieldName").Result
并且它等于XAGENTNAME
但未将isValid
变量设置为false。
为什么?
答案 0 :(得分:1)
在Equals
中,您使用的是ID为XAGENTNAME
但未声明的值。
尝试:
<Equals leftId="CustomFieldName" rightId="XAGENTNAME">
<String id="XAGENTNAME" value="XAGENTNAME" />
</Equal>