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

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

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-3) was last changed on 08-Sep-2014 14:09 by jim