On my PeopleSoft driver's Publisher channel, I have a veto in the Create rule if
there are missing required attributes. I also have a veto in the Publisher's
command transform that should only happen if the user object has been "locked
out" by our security people.

I'd like to have the veto on missing attributes show up with a status of "error"
in the PeopleSoft transaction table, but the veto on account lockout show up
with status of "warning".

Due to a bug in the way the PeopleSoft driver handles veto and status, I have
Perin's xslt on the Subscriber channel to turn empty events (veto) in to a
status event, so that the driver doesn't crash on veto. This works, but leaves
me with only one possible status return on veto.

Is there any way for the veto on the Pub channel rules to pass along information
that the event on the Sub channel can use to decide why the veto happened?


Here are the rules in question:


Pub Channel -> Create Rule
------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?><policy>
<rule>
<description>User required attributes</description>
<conditions>
<or>
<if-class-name op="equal">User</if-class-name>
</or>
</conditions>
<actions>
<do-veto-if-op-attr-not-available name="Surname"/>
<do-veto-if-op-attr-not-available name="Given Name"/>
<do-veto-if-op-attr-not-available name="niuDateOfBirth"/>
<do-veto-if-op-attr-not-available name="employeeStatus"/>
<do-veto-if-op-attr-not-available name="departmentNumber"/>
</actions>
</rule>
</policy>


Pub Channel -> Command Transform
------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?><policy>
<rule>
<description>Veto Operation if niuAccountLockout is found</description>
<conditions>
<and>
<if-dest-attr name="niuAccountLockout" op="available"/>
</and>
</conditions>
<actions>
<do-veto/>
</actions>
</rule>
</policy>


Sub Channel -> Output Transform
------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet
exclude-result-prefixes="query cmd dncv" version="1.0"
xmlns:cmd="http://www.novell.com/nxsl/java/com.novell.nds.dirxml.driver.XdsCommandProcessor"
xmlns:dncv="http://www.novell.com/nxsl/java/com.novell.nds.dirxml.driver.DNConverter"
xmlns:query="http://www.novell.com/nxsl/java/com.novell.nds.dirxml.driver.XdsQueryProcessor"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- parameters passed in from the DirXML engine -->
<xslaram name="srcQueryProcessor"/>
<xslaram name="destQueryProcessor"/>
<xslaram name="srcCommandProcessor"/>
<xslaram name="destCommandProcessor"/>
<xslaram name="dnConverter"/>
<xslaram name="fromNds"/>
<!-- identity transformation template -->
<!-- in the absence of any other templates this will cause -->
<!-- the stylesheet to copy the input through unchanged to the output
-->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- add your custom templates here -->
<!--
************************************************** ***********************************
* 7 June 2005 - dgersic
* Current PeopleSoft driver has a bug in it that produces a Java null pointer
* exception and aborts the driver if any veto() happens in the Publisher.
* Suggested work around via the XSLT transform below posted by Perin Blanchard
* in novell.support.nsure-identity-manager support forum.
* Bug is known and will be fixed in a future version.
************************************************** ***********************************
-->
<xsl:template match="output[not(child::*)]">
<xsl:message>Bug Fix: Avoiding Java null pointer
exception</xsl:message>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
<!-- <status level="success"/> -->
<status level="warning"/>
</xsl:copy>
</xsl:template>
<!--
************************************************** ***********************************
* End of bug fix XSLT transform
************************************************** ***********************************
-->
</xsl:stylesheet>


I'd like to be able to use the Sub Channel Output Transform to return status
"error" for veto events from the Pub Channel Create Rule, and status "warning"
for veto events from the Pub Channel Command Transform.

What I'd really like is an expansion of the veto concept to include a status
code to return. Something like veto("error") or veto("warning") would be helpful
here.



---------------------------------------------------------------------------
David Gersic dgersic_@_niu.edu

I'm tired of receiving rubbish in my mailbox, so the E-mail address is
munged to foil the junkmail bots. Humans will figure it out on their own.