I have a vault connected to a production eDirectory. Hanging off the
production tree is a Null Service Driver. If I delete a user in the vault,
then I get this message in the Publisher channel of the driver.

<nds dtdversion="3.5" ndsversion="8.x">
<source>
<product version="3.6.10.4747">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<delete cached-time="20091013223322.521Z" class-name="User"
dest-dn="PROD\LON\STAFF\tstaff" dest-entry-id="33363"
event-id="test-dev-idv1#20091013223322#1#1"
qualified-src-dn="O=TEST\OU=IDV\OU=STAFF\CN=tstaff"
src-dn="\DEV_IDV_TREE\TEST\IDV\STAFF\tstaff" src-entry-id="33726"
timestamp="1254936068#35">
<association
state="associated">{010451B0-6796-8141-A3AC-010451B06796}</association>
</delete>
</input>
</nds>



I can transform this using this command policy rule to add an attribute to
the <delete> element



<rule>

<description>User: </description>

<conditions>

<and>

<if-class-name mode="nocase" op="equal">User</if-class-name>

<if-operation mode="case" op="equal">delete</if-operation>

</and>

</conditions>

<actions>

<do-set-xml-attr expression="." name="required">

<arg-string>

<token-text xml:space="preserve">Some Text</token-text>

</arg-string>

</do-set-xml-attr>

</actions>

</rule>

This gives me the following trace





<nds dtdversion="3.5" ndsversion="8.x">

<source>

<product version="3.6.10.4747">DirXML</product>

<contact>Novell, Inc.</contact>

</source>

<input>

<delete cached-time="20091013223322.521Z" class-name="User"
dest-dn="PROD\LON\STAFF\tstaff" dest-entry-id="33363"
event-id="test-dev-idv1#20091013223322#1#1"
qualified-src-dn="O=TEST\OU=IDV\OU=STAFF\CN=tstaff" required="Some Text"
src-dn="\DEV_IDV_TREE\TEST\IDV\STAFF\tstaff" src-entry-id="33726"
timestamp="1254936068#35">

<association
state="associated">{010451B0-6796-8141-A3AC-010451B06796}</association>

</delete>

</input>

</nds>



As you can see the <delete> element has required="Some Text"



This is great. When I examine thew trace on the Null Driver Subscriber
channel, this event shows as





<nds dtdversion="3.5" ndsversion="8.x">
<source>
<product version="3.5.10.20070918 ">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<delete cached-time="20091013100611.896Z" class-name="User"
event-id="ds-dev-idv1#20091013232751#1#1"
qualified-src-dn="O=PROD\OU=LON\OU=STAFF\CN=tstaff"
src-dn="\DEV_PROD_TREE\PROD\LON\STAFF\tstaff" src-entry-id="33365"
timestamp="1254906997#100"/>
</input>
</nds>



Notice how required="Some Text" is not there. This is not good. I repeated
the test usting the event-id attribute and what ever I set it to in my
eDir2eDir driver policy rule can be seen in the Null Driver trace. This is
great and just what I want



What I am trying to do is pass a message to another driver or drivers in the
event message itself. In the case of a delete event I want to retrieve some
information about the object being deleted and pass it in the delete
message. I cant query the object from the Null Service driver in responce to
the event message because when it sees the delete message, the object has of
course already gone. But if the information it needs to perform its task was
embedded in the delete message itself....



What determines the information in the event message and is it possible to
alter this in anyway. What are the ramifications of 'hijacking' the event-id
attribute that does seem to be passed between drivers



Many thanks in advance