This page (revision-1) was last changed on 29-Nov-2024 16:16 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 added 175 lines
!!! Overview
We show a [DirXML Example] of the [Modify-association] token taken from a "Real-Life" condition.
!! Scenario
Client uses a self generated printable [UUID] as nwGUID to track the entries across the enterprise. Normally the nwGUID values would not change, however, there was a business case put forward when there was a need for some entries to be changed.
The Modify-association] token is documented, but not exposed in [Designer] or [Imanager].
We [found an example|https://forums.netiq.com/showthread.php?616-Associations-in-JDBC-driver|target='_blank'] and made some minor modifications to fit the client.
If you read the description for the [Modify-association] token it is only recognized by the [DirXML Engine]. So the [Modify-association] token must be sent on the [Publisher Channel] to the engine.
As in our case, all of the logic in the driver took place on the Subscriber, we needed a method to
!! OTP
Code for Rule:
%%prettify
{{{
<rule>
<description>Check for Modify Association Data on Success</description>
<comment xml:space="preserve">Works with "OTP:Catch Association Changes". We clone the operational data into the Publisher channel and send it to the Engine when will then properly update the Association Values</comment>
<comment name="author" xml:space="preserve">jim@willeke.com </comment>
<comment name="version" xml:space="preserve">1</comment>
<comment name="lastchanged" xml:space="preserve">2014-09-08</comment>
<conditions>
<and>
<if-operation mode="case" op="equal">status</if-operation>
<if-xml-attr mode="nocase" name="level" op="equal">success</if-xml-attr>
<if-xpath op="true">operation-data/modify-association</if-xpath>
</and>
</conditions>
<actions>
<do-clone-xpath dest-expression=".." src-expression="operation-data/modify-association"/>
</actions>
</rule>
}}} /%
Trace:
%%prettify
{{{
[09/08/14 09:12:11.375]:bld ST:Applying output transformation policies.
[09/08/14 09:12:11.376]:bld ST:Applying policy: %+C%14CCatch Association Changes%-C.
[09/08/14 09:12:11.376]:bld ST: Applying to modify #1.
[09/08/14 09:12:11.376]:bld ST: Evaluating selection criteria for rule 'Detect Modify Assoc'.
[09/08/14 09:12:11.377]:bld ST: (if-operation equal "modify") = TRUE.
[09/08/14 09:12:11.377]:bld ST: (if-class-name equal "User") = TRUE.
[09/08/14 09:12:11.377]:bld ST: (if-op-attr 'nwGUID' changing-to ".+") = TRUE.
[09/08/14 09:12:11.378]:bld ST: Rule selected.
[09/08/14 09:12:11.378]:bld ST: Applying rule 'Detect Modify Assoc'.
[09/08/14 09:12:11.378]:bld ST: Action: do-append-xml-element("operation-data",".").
[09/08/14 09:12:11.379]:bld ST: Action: do-append-xml-element("modify-association","operation-data").
[09/08/14 09:12:11.379]:bld ST: Action: do-append-xml-element("association","operation-data/modify-association[last()]").
[09/08/14 09:12:11.380]:bld ST: Action: do-append-xml-text("operation-data/modify-association[last()]/association",token-association()).
[09/08/14 09:12:11.380]:bld ST: arg-string(token-association())
[09/08/14 09:12:11.381]:bld ST: token-association()
[09/08/14 09:12:11.381]:bld ST: Token Value: "b6d951dc-3759-11e4-8dd8-b7f13fbde3c8".
[09/08/14 09:12:11.381]:bld ST: Arg Value: "b6d951dc-3759-11e4-8dd8-b7f13fbde3c8".
[09/08/14 09:12:11.382]:bld ST: Action: do-append-xml-element("association","operation-data/modify-association[last()]").
[09/08/14 09:12:11.382]:bld ST: Action: do-append-xml-text("operation-data/modify-association[last()]/association[last()]",token-op-attr("nwGUID")).
[09/08/14 09:12:11.383]:bld ST: arg-string(token-op-attr("nwGUID"))
[09/08/14 09:12:11.383]:bld ST: token-op-attr("nwGUID")
[09/08/14 09:12:11.384]:bld ST: Token Value: "b8eb900d-3759-11e4-8dd8-b7f13fbde3c8".
[09/08/14 09:12:11.384]:bld ST: Arg Value: "b8eb900d-3759-11e4-8dd8-b7f13fbde3c8".
[09/08/14 09:12:11.384]:bld ST:Policy returned:
[09/08/14 09:12:11.385]:bld ST:
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Standard" version="4.0.2.1">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<modify cached-time="20140908131211.096Z" class-name="User" event-id="PIDV07#20140908131211#10#1:a2647ca7-dce2-4221-598c-a77c64a2e2dc" qualified-src-dn="dc=pilot\dc=willeke\OU=people\OU=Ext\OU=B2B\OU=sales\uniqueID=johnj41" src-dn="\NWPILOT\pilot\willeke\people\Ext\B2B\sales\johnj41" src-entry-id="255228" timestamp="1410181926#2">
<association state="associated">b6d951dc-3759-11e4-8dd8-b7f13fbde3c8</association>
<modify-attr attr-name="nwGUID">
<remove-value>
<value timestamp="1410181919#34" type="string">b6d951dc-3759-11e4-8dd8-b7f13fbde3c8</value>
</remove-value>
<add-value>
<value timestamp="1410181926#2" type="string">b8eb900d-3759-11e4-8dd8-b7f13fbde3c8</value>
</add-value>
</modify-attr>
<operation-data>
<modify-association>
<association>b6d951dc-3759-11e4-8dd8-b7f13fbde3c8</association>
<association>b8eb900d-3759-11e4-8dd8-b7f13fbde3c8</association>
</modify-association>
</operation-data>
</modify>
</input>
</nds>
}}} /%
! ITP
Code for Rule:
%%prettify
{{{
<rule>
<description>UpdateAssoc on Success</description>
<comment xml:space="preserve">Works with OTP Catch Association Changes</comment>
<comment name="author" xml:space="preserve">jim@willeke.com </comment>
<comment name="version" xml:space="preserve">1</comment>
<comment name="lastchanged" xml:space="preserve">2014-09-08</comment>
<conditions>
<and>
<if-operation mode="case" op="equal">status</if-operation>
<if-xml-attr mode="nocase" name="level" op="equal">success</if-xml-attr>
<if-xpath op="true">operation-data/modify-association</if-xpath>
</and>
</conditions>
<actions>
<do-clone-xpath dest-expression=".." src-expression="operation-data/modify-association"/>
</actions>
</rule>
}}} /%
%%prettify
{{{
[09/08/14 09:12:11.450]:bld ST:Applying policy: %+C%14CModify-Association%-C.
[09/08/14 09:12:11.450]:bld ST: Applying to status #1.
[09/08/14 09:12:11.450]:bld ST: Evaluating selection criteria for rule 'UpdateAssoc on Success'.
[09/08/14 09:12:11.451]:bld ST: (if-operation equal "status") = TRUE.
[09/08/14 09:12:11.451]:bld ST: (if-xml-attr 'level' equal "success") = TRUE.
[09/08/14 09:12:11.452]:bld ST: (if-xpath true "operation-data/modify-association") = TRUE.
[09/08/14 09:12:11.452]:bld ST: Rule selected.
[09/08/14 09:12:11.452]:bld ST: Applying rule 'UpdateAssoc on Success'.
[09/08/14 09:12:11.453]:bld ST: Action: do-clone-xpath(dest-expression="..",src-expression="operation-data/modify-association").
[09/08/14 09:12:11.453]:bld ST:Policy returned:
[09/08/14 09:12:11.454]:bld ST:
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Standard" version="4.0.2.1">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<output>
<status event-id="PIDV07#20140908131211#10#1:a2647ca7-dce2-4221-598c-a77c64a2e2dc" level="success"><application>DirXML</application>
<module>BLD</module>
<object-dn>\NWPILOT\pilot\willeke\people\Ext\B2B\sales\johnj41 (pilot\willeke\people\Ext\B2B\sales\johnj41)</object-dn>
<component>Publisher</component>
<operation-data>
<modify-association>
<association>b6d951dc-3759-11e4-8dd8-b7f13fbde3c8</association>
<association>b8eb900d-3759-11e4-8dd8-b7f13fbde3c8</association>
</modify-association>
</operation-data>
</status>
<modify-association>
<association>b6d951dc-3759-11e4-8dd8-b7f13fbde3c8</association>
<association>b8eb900d-3759-11e4-8dd8-b7f13fbde3c8</association>
</modify-association>
</output>
</nds>
[09/08/14 09:12:11.459]:bld ST:No schema mapping policies.
[09/08/14 09:12:11.459]:bld ST:Resolving association references.
[09/08/14 09:12:11.459]:bld ST:Processing returned document.
[09/08/14 09:12:11.460]:bld ST:Processing operation <status> for .
[09/08/14 09:12:11.460]:bld ST:
DirXML Log Event -------------------
Driver: \NWPILOT\pilot\willeke\esc\DirXML\NWDriverSet\BLD
Channel: Subscriber
Object: \NWPILOT\pilot\willeke\people\Ext\B2B\sales\johnj41
Status: Success
Message: <application>DirXML</application>
<module>BLD</module>
<object-dn>\NWPILOT\pilot\willeke\people\Ext\B2B\sales\johnj41 (pilot\willeke\people\Ext\B2B\sales\johnj41)</object-dn>
<component>Publisher</component>
[09/08/14 09:12:11.462]:bld ST:Processing operation <modify-association> for .
[09/08/14 09:12:11.467]:bld ST:End transaction.
}}} /%
!! More Information
There might be more information for this subject on one of the following:
[{ReferringPagesPlugin before='*' after='\n' }]