1
<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>
IF-Anweisung nicht als echte Bewertung
Ich habe eine rulesEngine.RuleContext.GetResult("CustomFieldName").Result
lief und es tut gleich XAGENTNAME
aber nicht setzen Sie die isValid
Variable auf false gesetzt.
warum?
ja, ich wusste nicht, dass es bedeutet, dass es eine Variable ist. Gibt es eine Möglichkeit, NXBRE zu sagen, dass es ein String-Literal ist? – Ageis
Nein, Regeln funktionieren nur als Referenz. Es ist üblich, diese Art von Konstanten am Anfang einer Regeldatei zu setzen, wie hier: https://github.com/ddossot/NxBRE/blob/master/NxBRE3/Rulefiles/test.xbre#L26-L37 –