Welcome Serena Central users! CLICK HERE
The migration of the Serena Central community is currently underway. Be sure to read THIS MESSAGE to get your new login set up to access your account.
Anonymous_User Absent Member.
Absent Member.
198 views

How to send status back to application in SOAP driver?


I use IDM 4.0.1 with SOAP driver. On the publisher channel some events
should not be processed but vetoed. However, if the event is vetoed an
empty soap body is sent back to the application. The reason is that on
veto there is no status send back to the driver shim on the publisher
channel.

My question: how can I send a status back to the application on the
publisher channel?

I already tried without success

- <do-status>,
- adding <output>/<status> to the <nds> document being processed.


Thank you


--
mgruebsch
------------------------------------------------------------------------
mgruebsch's Profile: https://forums.netiq.com/member.php?userid=5901
View this thread: https://forums.netiq.com/showthread.php?t=48762

Labels (1)
0 Likes
5 Replies
Anonymous_User Absent Member.
Absent Member.

Re: How to send status back to application in SOAP driver?

A trace always helps understand fully what you are trying to do. Have one?

Good luck.
0 Likes
Knowledge Partner
Knowledge Partner

Re: How to send status back to application in SOAP driver?

On 9/24/2013 7:04 AM, ab wrote:
> A trace always helps understand fully what you are trying to do. Have one?


A trace is key here, since a do-status is probably the right way, and
then policy or XSLT to transform teh <status> event to the proper SOAP doc.

0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to send status back to application in SOAP driver?


Thanks guys,

I had <do-status> and <veto> in my policy, result was the status message
in the trace file and and an empty <nds> document without <output>. The
standard smpl output transform policy of the soap-driver transformed the
empty output into ... an empty document. SOAP envelop around this result
yields in an empty soap request.

In general: would <do-status> the appropriate way to send the status
back to the application? Does <do-status> place a <status> element into
<output>? With the soap driver it is necessary to copy <operation-data>
from the <input> node to the <status> output. How can I copy
<operation-data> from <input> to the element created by <do-status>? I
am aware of actions like append xml, however, what is the xpath
destination of that action?


--
mgruebsch
------------------------------------------------------------------------
mgruebsch's Profile: https://forums.netiq.com/member.php?userid=5901
View this thread: https://forums.netiq.com/showthread.php?t=48762

0 Likes
Knowledge Partner
Knowledge Partner

Re: How to send status back to application in SOAP driver?

On 9/24/2013 8:24 AM, mgruebsch wrote:
>
> Thanks guys,
>
> I had <do-status> and <veto> in my policy, result was the status message


In terms of sending back to the Connected system, while on the PUb
channel with a Status, I cannot recall if a Veto will kill the status
event as well, which is what might be happening.

You could do a set source attribute with some special attr you know of
to transform to the SOAP you need?

> in the trace file and and an empty <nds> document without <output>. The
> standard smpl output transform policy of the soap-driver transformed the
> empty output into ... an empty document. SOAP envelop around this result
> yields in an empty soap request.
>
> In general: would <do-status> the appropriate way to send the status
> back to the application? Does <do-status> place a <status> element into
> <output>? With the soap driver it is necessary to copy <operation-data>
> from the <input> node to the <status> output. How can I copy
> <operation-data> from <input> to the element created by <do-status>? I
> am aware of actions like append xml, however, what is the xpath
> destination of that action?


Do-status should be. The Op-data should be copied in terms of the
events through the shim, but I suspect you mean, on the event sent back,
so that the URL, headers stuff is all there?

Problem you will have is that the current event, with the op-data is not
really linked to the new event (status or set source attr) you just
generated. So no easy way to say copy from here to there.

Might want to add it in policy on events sent back.


0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to send status back to application in SOAP driver?


The final solution is as follows


Code:
--------------------

<do-append-xml-element expression=".." name="status"/>
<do-set-xml-attr expression="../status[last()]" name="level">
<arg-string>
<token-text xml:space="preserve">success</token-text>
</arg-string>
</do-set-xml-attr>
<do-append-xml-element expression="../status[last()]" name="operation-data"/>
<do-clone-xpath dest-expression="../status[last()]/operation-data" src-expression="operation-data/node()"/>
<do-veto/>

--------------------


--
mgruebsch
------------------------------------------------------------------------
mgruebsch's Profile: https://forums.netiq.com/member.php?userid=5901
View this thread: https://forums.netiq.com/showthread.php?t=48762

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.