Today I was starting to run a few simulations of the do-find-matching action in Designer 4.9 and found, the simulation is broken, if muktiple objects are returnd in the query.
As long as the response to the query, buid besed on the do-find-matching-object is containing only one instance, the simulation is working as desigend, but if multiple instace are returned, there is a null pointer exception thorwn in designer.
Demo Driver : Applying rule 'Match User wirth multiple scr-Values'.
Demo Driver : Action: do-find-matching-object(scope="subtree",arg-match-attr("mail",token-join(token-split(" ",token-attr("Internet Email Address"))))).
Demo Driver : arg-match-attr("mail",token-join(token-split(" ",token-attr("Internet Email Address"))))
Demo Driver : arg-string(token-join(token-split(" ",token-attr("Internet Email Address"))))
Demo Driver : token-join(token-split(" ",token-attr("Internet Email Address")))
Demo Driver : token-join(token-split(" ",token-attr("Internet Email Address")))
Demo Driver : token-split(" ",token-attr("Internet Email Address"))
Demo Driver : token-split(" ",token-attr("Internet Email Address"))
Demo Driver : token-attr("Internet Email Address")
Demo Driver : Token Value: "test@demo.com".
Demo Driver : Arg Value: "test@demo.com".
Demo Driver : Token Value: {"test@demo.com"}.
Demo Driver : Arg Value: {"test@demo.com"}.
Demo Driver : Token Value: "test@demo.com".
Demo Driver : Arg Value: "test@demo.com".
Demo Driver : Query from policy
Demo Driver :
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product version="4.9.0.0000">DirXML</product>
<contact>NetIQ Corporation</contact>
</source>
<input>
<query class-name="User" scope="subtree">
<search-class class-name="User"/>
<search-attr attr-name="mail">
<value type="string">test@demo.com</value>
</search-attr>
<read-attr/>
</query>
</input>
</nds>
Demo Driver :Restricting file Permission for /Users/tschloesser/designer_workspace/workspaces47/Demosystem/IDMDemoSystem/.tmp/ULNGEK9O.log
Demo Driver :Remote Loader: Restricting file Permission for /Users/tschloesser/designer_workspace/workspaces47/Demosystem/IDMDemoSystem/.tmp/ULNGEK9O.log
Demo Driver :Remote Loader: Restricting file Permission for /Users/tschloesser/designer_workspace/workspaces47/Demosystem/IDMDemoSystem/.tmp/ULNGEK9O.log
Demo Driver : Query from policy result
Demo Driver :
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product version="4.9.0.0000">DirXML</product>
<contact>NetIQ Corporation</contact>
</source>
<output>
<instance class-name="User" src-dn="11">
<association>1</association>
<attr attr-name="Internet EMail Address">
<value type="string">test@demo.com</value>
</attr>
</instance>
<instance class-name="User" src-dn="b">
<association>b</association>
<attr attr-name="Internet EMail Address">
<value type="string">test@demo.com</value>
</attr>
</instance>
</output>
</nds>
Demo Driver : Match found: src-dn='11' association='1'
Demo Driver : Match found: src-dn='b' association='b'
Maybe I am too blind to see, but I cannot see, why there is a null pointer exception - if I only include one <instance> element everything is working as expected.
In this case, I would expect the error.do-find-matching-object variable should be introduced
Kind regards
Thorsten