tag:blogger.com,1999:blog-55419831137675872712024-03-04T23:51:42.374-08:00Maqsood Bhatti - iDENTITYProven expert tricks for field consultants within identity space to speed up deliveries for their tasks in hands.Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.comBlogger41125tag:blogger.com,1999:blog-5541983113767587271.post-2314044251057875332021-12-27T01:28:00.000-08:002021-12-27T01:28:23.692-08:00NetIQ IDM - Query only drivers own associated groups user is member ofNetIQ IDM - Query only drivers own associated groups user is member of
<script src="https://gist.github.com/belaie/507e69cb3db9665c17e3047941dc56c9.js"></script>Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-82410316696018369912020-04-29T03:17:00.001-07:002020-05-02T10:59:32.462-07:00NETIQ IDM - Boost strap your start with identity application REST API<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<b>Boost strap your start with identity application REST API:</b><br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">If you want to play out with NetIQ rest API within identity application (IDMProv), you can see a few examples here:</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">these are the rest API protected by Oauth2 Authorization (resource owner password credentials grant):</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">The first step is to obtain token: ( you must have enabled client "rbpm" in the OSPF for the resource owner password credential grant) flow:</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">An example is taken in c#: (postman)</span><br />
<span style="font-size: xx-small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">Get an access token:</span><br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> var client = new RestClient("https://<your host>/osp/a/idm/auth/oauth2/grant");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("Authorization", "Basic Basic bas64 encoded string clientid<rbpm>:clientsecret>");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("grant_type", "password");
request.AddParameter("client_id", "rbpm");
request.AddParameter("username", "ldap DN of authorizied user");
request.AddParameter("password", "ldap password for authorized user");
request.AddParameter("client_secret", "password of clientid(rbpm)");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
</code></pre>
<br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">once you acquired access_token;</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">Use it as a bearer token to test it with getting driver list API</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"><br /></span>
<i><b><span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">https://<your host>/IDMProv/rest/admin/driver</span></b></i><br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> var client = new RestClient("https://<host>/IDMProv/rest/admin/driver");
var request = new RestRequest(Method.GET);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "bearer <acess_token>");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
</code></pre>
<br />
<b><span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">How to get a new access token from refresh token?</span></b><br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> var client = new RestClient("https://<your host>/osp/a/idm/auth/oauth2/grant");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("Authorization", "Basic bas64 encoded string clientid:clientsecret");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("grant_type", "refresh_token");
request.AddParameter("client_id", "rbpm");
request.AddParameter("client_secret", "secret of rbpm clientid");
request.AddParameter("refresh_token", "<refresh_token>");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
</code></pre>
<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">More info:</span><br />
<a href="https://www.netiq.com/documentation/identity-manager-developer/rest-api-documentation/idmappsdoc/#/"><span style="font-family: Courier New, Courier, monospace;">https://www.netiq.com/documentation/identity-manager-developer/rest-api-documentation/idmappsdoc/#/</span></a><br />
<br />
<br />
<br />
<br /></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-6657111865648430172020-04-09T04:31:00.002-07:002020-05-02T11:03:38.400-07:00NetIQ IDM - How to read String type data from Query nodeset done from command transformation<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Suppose query nodeset:</span><br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <do-set-local-variable name="local.sub.etp.q.User" scope="policy">
<arg-node-set>
<token-query class-name="User" scope="entry">
<arg-match-attr name="CN">
<arg-value type="string">
<token-src-attr class-name="User" name="CN"/>
</arg-value>
</arg-match-attr>
</token-query>
</arg-node-set>
</do-set-local-variable>
</code></pre>
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Output:</span><br />
<br />
<br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <nds dtdversion="3.0">
<source>
<product build="20180222_0635" version="1.0.0.2">Identity Manager REST Driver</product>
<contact>NetIQ Corporation.</contact>
</source>
<output>
<status event-id="0" level="success" type="driver-general">
<operation-data prop.pub.itp.matached="true" prop.pub.itp.matached.target.DN=""/>
</status>
<instance class-name="users" event-id="0" src-dn="DC7F364B172747698A7685CE9CD705C3">
<association state="associated">DC7F364B172747698A7685CE9CD705C3</association>
<attr attr-name="Object Class">
<value value="string">users</value>
</attr>
<attr attr-name="name">
<value value="string">Dude</value>
</attr>
<attr attr-name="phone">
<value value="string">null</value>
</attr>
<attr attr-name="count">
<value value="string"/>
</attr>
</instance>
</output>
</nds>
</code></pre>
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Reading phone info:</span><br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <do-set-local-variable name="PhoneInfo" scope="policy">
<arg-string>
<token-xpath expression="$local.sub.etp.q.User/attr[@attr-name=&apos;phone&apos;]/value&#xd;&#xa;"/>
</arg-string>
</do-set-local-variable>
<do-trace-message>
<arg-string>
<token-text xml:space="preserve">GOT PHONE INFO => </token-text>
<token-local-variable name="PhoneInfo"/>
</arg-string>
</do-trace-message>
</code></pre>
<br />
<br />
<span style="white-space: pre;"> </span></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-1538608646526387842020-03-30T08:15:00.001-07:002020-05-02T11:06:50.852-07:00NetIQ IDM - How to read Component type data from Query nodeset done from command transformation<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Suppose query:</span><br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <do-set-local-variable name="local.sub.ctp.QueryContacts" scope="policy">
<arg-node-set>
<token-query class-name="User" scope="entry">
<arg-match-attr name="UPN">
<arg-value type="string">
<token-src-attr class-name="User" name="UPN"/>
</arg-value>
</arg-match-attr>
<arg-match-attr name="contacts">
<arg-value type="string">
<token-text xml:space="preserve">get-contacts</token-text>
</arg-value>
</arg-match-attr>
<arg-match-attr name="userid">
<arg-value type="string">
<token-association/>
</arg-value>
</arg-match-attr>
</token-query>
</arg-node-set>
</do-set-local-variable>
</code></pre>
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Output:</span><br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <nds dtdversion="3.0">
<source>
<product build="20180222_0635" version="1.0.0.2">Identity Manager REST Driver</product>
<contact>NetIQ Corporation.</contact>
</source>
<output>
<status event-id="0" level="success" type="driver-general">
<operation-data prop.pub.itp.matached="true" prop.pub.itp.matached.target.DN=""/>
</status>
<instance class-name="users" event-id="0" src-dn="X_XX__">
<association state="associated">X_XX__</association>
<attr attr-name="Object Class">
<value value="string">User</value>
</attr>
<attr attr-name="contacts">
<value type="structured">
<component name="id">X_XX___iPhoneX_Maqsood’s_mobile</component>
<component name="method">mobile</component>
<component name="to">Maqsood’siPhone-iPhoneX13.3.1-v3.3.3</component>
<component name="status">{"enabled":true}</component>
<component name="applyOrder">0</component>
</value>
<value type="structured">
<component name="id">d17bd71b-88f0-4817-b2aa-59a833080d71</component>
<component name="method">sms</component>
<component name="to">47-************</component>
<component name="status">{"enabled":true}</component>
<component name="applyOrder">0</component>
</value>
<value type="structured">
<component name="id">ee73e784-1bde-4b31-9648-4e6f315b441a</component>
<component name="method">sms</component>
<component name="to">47-000000000</component>
<component name="status">{"enabled":true}</component>
<component name="applyOrder">1</component>
</value>
<value type="structured">
<component name="id">2c70a20f-12aa-4b12-b805-fa7743d8d54c</component>
<component name="method">email</component>
<component name="to">*****************</component>
<component name="status">{"enabled":true}</component>
<component name="applyOrder">0</component>
</value>
</attr>
</instance>
</output>
</nds>
</code></pre>
<br />
<div>
<span style="font-family: "courier new" , "courier" , monospace;">Reading query result:</span></div>
<div>
<br /></div>
<div>
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <do-for-each>
<arg-node-set>
<token-xpath expression="$local.sub.ctp.QueryContacts/attr[@attr-name='contacts']/value"/>
</arg-node-set>
<arg-actions>
<do-trace-message>
<arg-string>
<token-local-variable name="current-node"/>
</arg-string>
</do-trace-message>
<do-trace-message>
<arg-string>
<token-text xml:space="preserve">Contact ID => </token-text>
<token-xpath expression="$current-node/component[@name='id']"/>
</arg-string>
</do-trace-message>
<do-trace-message>
<arg-string>
<token-text xml:space="preserve">Contact Method => </token-text>
<token-xpath expression="$current-node/component[@name='method']"/>
</arg-string>
</do-trace-message>
<do-trace-message>
<arg-string>
<token-text xml:space="preserve">Contact to => </token-text>
<token-xpath expression="$current-node/component[@name='to']"/>
</arg-string>
</do-trace-message>
<do-set-local-variable name="local.sub.etp.ContactNumber" scope="policy">
<arg-string>
<token-xpath expression="$current-node/component[@name='to']"/>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="local.sub.etp.ContactMethod" scope="policy">
<arg-string>
<token-xpath expression="$current-node/component[@name='method']"/>
</arg-string>
</do-set-local-variable>
<do-if>
<arg-conditions>
<and>
<if-local-variable mode="nocase" name="local.sub.etp.ContactMethod" op="equal">sms</if-local-variable>
<if-local-variable mode="nocase" name="local.sub.etp.ContactNumber" op="equal">$local.sub.etp.user.Mobile$</if-local-variable>
</and>
</arg-conditions>
<arg-actions>
<do-set-local-variable name="local.sub.etp.SkipContactUpdate" scope="policy">
<arg-string>
<token-text xml:space="preserve">true</token-text>
</arg-string>
</do-set-local-variable>
</arg-actions>
<arg-actions/>
</do-if>
</arg-actions>
</do-for-each>
</code></pre>
</div>
<div>
<br /></div>
<div>
<br /></div>
</div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-39449624520352214442019-12-27T03:16:00.004-08:002020-05-02T11:09:16.876-07:00How to convert any application-specific JSON to XDS format for NetIQ REST driver to consume<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<h2 style="text-align: left;">
<span style="font-family: "courier new" , "courier" , monospace;">
How to convert any application-specific JSON to XDS format for NetIQ REST driver to consume</span></h2>
<br />
<h4 style="text-align: left;">
<span style="font-family: "courier new" , "courier" , monospace;">
See tip: MessageValueTextToNetIQ</span></h4>
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <rule>
<description>Successfull poll-users command handler actions bases on trigger job;</description>
<conditions>
<and>
<if-operation mode="regex" op="equal">status</if-operation>
<if-xpath op="true">./driver-operation-data[@command="custom-IDM-JOB-GET-USERS"]</if-xpath>
<if-local-variable mode="nocase" name="StatusValue" op="equal">200</if-local-variable>
</and>
</conditions>
<actions>
<do-trace-message>
<arg-string>
<token-text xml:space="preserve">poll-users completed successfully; </token-text>
</arg-string>
</do-trace-message>
<do-set-local-variable name="StatusValue" scope="policy">
<arg-string>
<token-xpath expression="./driver-operation-data/response/value/@status"/>
</arg-string>
</do-set-local-variable>
<do-trace-message>
<arg-string>
<token-text xml:space="preserve">Status value =></token-text>
<token-local-variable name="StatusValue"/>
</arg-string>
</do-trace-message>
<do-set-local-variable name="MessageValue" scope="policy">
<arg-string>
<token-xpath expression="./driver-operation-data/response/value/@message"/>
</arg-string>
</do-set-local-variable>
<do-trace-message>
<arg-string>
<token-text xml:space="preserve">Status value =></token-text>
<token-local-variable name="MessageValue"/>
</arg-string>
</do-trace-message>
<do-set-local-variable name="MessageValueText" scope="policy">
<arg-string>
<token-xpath expression="./driver-operation-data/response/value/text()"/>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="MessageValueTextToNetIQ" scope="policy">
<arg-string>
<token-text xml:space="preserve">{ "totalResults": "$getCount$","results": [
</token-text>
<token-local-variable name="MessageValueText"/>
<token-text xml:space="preserve">]}</token-text>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="xmlInput" scope="policy">
<arg-string>
<token-base64-encode charset="UTF-8">
<token-replace-all regex="&amp;lt;" replace-with="&lt;">
<token-xml-serialize>
<token-text xml:space="preserve">&lt;status event-id="" level="success" type="driver-general">
&lt;driver-operation-data api="targetURL:" class-name="users" command="query" dest-dn="" event-id="" src-dn="">
&lt;response method="GET" url="">
&lt;header accept="application/json" content-type="application/json"/>
&lt;value message="OK" status="200">
$MessageValueTextToNetIQ$
&lt;/value>
&lt;/response>
&lt;/driver-operation-data>
&lt;/status></token-text>
</token-xml-serialize>
</token-replace-all>
</token-base64-encode>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="applicationContent" scope="policy">
<arg-string>
<token-xpath expression="rs:jsonToXDS($xmlInput)"/>
</arg-string>
</do-set-local-variable>
<do-if>
<arg-conditions>
<and>
<if-local-variable mode="nocase" name="applicationContent" op="not-equal"/>
</and>
</arg-conditions>
<arg-actions>
<do-set-local-variable name="xdscontent" scope="policy">
<arg-node-set>
<token-xml-parse>
<token-local-variable name="applicationContent"/>
</token-xml-parse>
</arg-node-set>
</do-set-local-variable>
<do-set-local-variable name="users" scope="policy">
<arg-node-set>
<token-xpath expression="$xdscontent/*//*[local-name()='value']"/>
</arg-node-set>
</do-set-local-variable>
<do-trace-message>
<arg-string>
<token-text xml:space="preserve">total users available =></token-text>
<token-xpath expression="count($users)"/>
</arg-string>
</do-trace-message>
</arg-actions>
<arg-actions/>
</do-if>
<do-strip-xpath expression="./driver-operation-data"/>
</actions>undefined</rule>
</code></pre>
</div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-48809138150793429572019-12-25T10:46:00.001-08:002020-05-02T11:10:12.017-07:00Submit multiple SOAP calls form one modify operation generated from subscriber command<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Put this policy on output.</span><br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <rule>
<description>Update CostCenter SOAP doc</description>
<comment name="author" xml:space="preserve">Maqsood Ali Bhatti</comment>
<comment name="version" xml:space="preserve">5</comment>
<comment name="lastchanged" xml:space="preserve">Sep 20, 2016</comment>
<conditions>
<and>
<if-operation mode="regex" op="equal">modify</if-operation>
<if-op-attr name="customCommand" op="changing" />
<if-op-attr mode="regex" name="customCommand" op="equal">updateCostCenter.*</if-op-attr>
</and>
</conditions>
<actions>
<!-- add operaiton data -->
<do-for-each>
<arg-node-set>
<token-op-attr name="customCommand" />
</arg-node-set>
<arg-actions>
<do-set-local-variable name="local.sub.etp.Command" scope="policy">
<arg-string>
<token-local-variable name="current-node" />
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="local.sub.etp.Command" scope="policy">
<arg-string>
<token-local-variable name="current-node" />
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="local.sub.etp.Command" scope="policy">
<arg-string>
<token-xpath expression="substring-after($local.sub.etp.Command,'updateCostCenter:')" />
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="local.sub.etp.Ttext" scope="policy">
<arg-string>
<token-xpath expression="substring-before($local.sub.etp.Command,'#')" />
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="local.sub.etp.ExtCode" scope="policy">
<arg-string>
<token-xpath expression="substring-after($local.sub.etp.Command,'#')" />
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="local.otp.SOAP" scope="policy">
<arg-node-set>
<token-xml-parse>
<token-text xml:space="preserve"> &lt;soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:uri="uri:FlexForce" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> &lt;soapenv:Header/> &lt;soapenv:Body> &lt;uri:wsdlUpdateTextItems soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> &lt;apiKey xsi:type="xsd:string">$local.otp.APIKey$&lt;/apiKey> &lt;TextItems xsi:type="flex:TextItems" soapenc:arrayType="flex:TextItem[]" xmlns:flex="http://app.quinyx.com/soap/FlexForce"> &lt;item> &lt;tag>D&lt;/tag> &lt;ttext>$local.sub.etp.Ttext$&lt;/ttext> &lt;extCode>$local.sub.etp.ExtCode$&lt;/extCode> &lt;/item> &lt;/TextItems> &lt;/uri:wsdlUpdateTextItems> &lt;/soapenv:Body> &lt;/soapenv:Envelope>
</token-text>
</token-xml-parse>
</arg-node-set>
</do-set-local-variable>
<!-- add operaiton data -->
<do-trace-message>
<arg-string>
<token-text xml:space="preserve">=> </token-text>
<token-xml-serialize>
<token-local-variable name="local.otp.SOAP" />
</token-xml-serialize>
</arg-string>
</do-trace-message>
<do-append-xml-element expression=".." name="operation-data" />
<!--
<do-set-xml-attr expression="../operation-data" name="url">
<arg-string>
<token-local-variable name="local.otp.URL"/>
</arg-string>
</do-set-xml-attr>-->
<do-set-xml-attr expression="../operation-data" name="src-dn">
<arg-string>
<token-local-variable name="src-dn" />
</arg-string>
</do-set-xml-attr>
<do-set-xml-attr expression="../operation-data" name="query-type">
<arg-string>
<token-text xml:space="preserve">update-store-costcenter:</token-text>
<token-local-variable name="current-node" />
</arg-string>
</do-set-xml-attr>
<do-clone-xpath dest-expression=".." src-expression="$local.otp.SOAP" />
</arg-actions>
</do-for-each>
<do-strip-xpath expression="self::modify" />
</actions>
</rule>
</code></pre>
</div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-79746881366635812272018-06-04T07:43:00.003-07:002018-06-04T07:43:09.968-07:00Reading Component type attribute values such Email Address<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<b><br /></b>
<b><br /></b>
<b>Read Email Attribute from Group:</b><br />
<br />
<div style="text-align: left;">
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.MailboxEmail"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-src-attr</span> <span class="hljs-attr" style="color: red;">class-name</span>=<span class="hljs-string" style="color: #a31515;">"Group"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"EMail Address"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"loca.sub.etp.Group"</span>/></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-src-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span></div>
<br />
<br />
<br />
<b>This would do following Output:</b><br />
<br />
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">nds</span> <span class="hljs-attr" style="color: red;">dtdversion</span>=<span class="hljs-string" style="color: #a31515;">"4.0"</span> <span class="hljs-attr" style="color: red;">ndsversion</span>=<span class="hljs-string" style="color: #a31515;">"8.x"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">source</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">product</span> <span class="hljs-attr" style="color: red;">edition</span>=<span class="hljs-string" style="color: #a31515;">"Advanced"</span> <span class="hljs-attr" style="color: red;">version</span>=<span class="hljs-string" style="color: #a31515;">"4.5.6.0"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">DirXML</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">product</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">contact</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">NetIQ Corporation</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">contact</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">source</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">output</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">instance</span> <span class="hljs-attr" style="color: red;">class-name</span>=<span class="hljs-string" style="color: #a31515;">"Group"</span> <span class="hljs-attr" style="color: red;">qualified-src-dn</span>=<span class="hljs-string" style="color: #a31515;">"/N/A"</span> <span class="hljs-attr" style="color: red;">src-dn</span>=<span class="hljs-string" style="color: #a31515;">"/N/A"</span> <span class="hljs-attr" style="color: red;">src-entry-id</span>=<span class="hljs-string" style="color: #a31515;">"1026028"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">attr</span> <span class="hljs-attr" style="color: red;">attr-name</span>=<span class="hljs-string" style="color: #a31515;">"EMail Address"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">value</span> <span class="hljs-attr" style="color: red;">timestamp</span>=<span class="hljs-string" style="color: #a31515;">"1517759042#70"</span> <span class="hljs-attr" style="color: red;">type</span>=<span class="hljs-string" style="color: #a31515;">"structured"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">component</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"eMailType"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">3</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">component</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">component</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"eMailAddr"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">na@noname.com</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">component</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">value</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">instance</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">status</span> <span class="hljs-attr" style="color: red;">level</span>=<span class="hljs-string" style="color: #a31515;">"success"</span>></span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">status</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">output</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">nds</span>></span><br />
<br />
<br />
<b>Do Xpath to read the eMailAddr part from it:</b><br />
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"SingleEmailAddress"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"$local.sub.etp.MailboxEmail/component[@name='eMailAddr']"</span>/></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><br />
<br /></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-43105699467646788462017-12-20T06:48:00.002-08:002017-12-21T02:00:55.974-08:00NetIQ IDM - JDBC statemens using policy builder<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<h2 style="text-align: left;">
Few examples of using JDBC statements using dirxml policies</h2>
<br />
<br />
<h4 style="text-align: left;">
On the Output policy:</h4>
<br />
<h3 style="text-align: left;">
<b>Handling matching policies with operation-data support:</b></h3>
<br />
<span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">rule</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">[DB] Convert Query to DDL doc</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">comment</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"author"</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Maqsood Ali Bhatti</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">comment</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">comment</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"version"</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">5</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">comment</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">comment</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"lastchanged"</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Dec 20, 2017</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">comment</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-operation</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"case"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">query</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-operation</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">".."</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"jdbc:statement"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"jdbc:sql"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-text</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement/jdbc:sql[last()]"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">SELECT COUNT(*) FROM ALL_USERS WHERE USERNAME = '</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-upper-case</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-op-attr</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"USERNAME"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-upper-case</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">'</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-append-xml-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"operation-data"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]/operation-data[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"type"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Matching</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]/operation-data[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"DN"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-op-attr</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"USERNAME"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-strip-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"self::query"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">rule</span>></span><br />
<br />
<br />
<br />
<h3 style="text-align: left;">
Cathing Output of the Matching on Input Publisher</h3>
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">rule</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Handle jdbc:result-set for matching objects</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">comment</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"author"</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Maqsood Ali Bhatti</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">comment</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">comment</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"version"</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">2</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">comment</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">comment</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"lastchanged"</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>>Dec</span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> 20, 20117</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">comment</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-xpath</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"true"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">self::jdbc:result-set/@jdbc:number-of-rows = 1</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-xpath</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-xpath</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"true"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">./operation-data[@type="Matching"]</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-xpath</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"ASSO-VALUE"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"*//*[local-name()='value']/text()"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"getDN"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"./operation-data/@DN"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">add association</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"getDN"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-comment" style="color: green; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><!-- association --></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-local-variable</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"nocase"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"ASSO-VALUE"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"not-equal"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-local-variable</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"nocase"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"ASSO-VALUE"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">1</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">add association</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">".."</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"instance"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"class-name"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">User</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"src-dn"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"getDN"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">:</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"ASSO-VALUE"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"association"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-text</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance/association"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"getDN"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">:</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"ASSO-VALUE"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-append-xml-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-local-variable</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"nocase"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"ASSO-VALUE"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"not-equal"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-local-variable</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"nocase"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"ASSO-VALUE"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">0</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">NO MATCH</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-break</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">rule</span>></span><br />
<br />
<br />
<h3 style="text-align: left;">
<b>Handle Add policies (Stored procedure with parameters)</b></h3>
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">rule</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">[DB] Convert Add to DDL doc</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">comment</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"author"</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Maqsood Ali Bhatti</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">comment</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">comment</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"version"</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">5</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">comment</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">comment</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"lastchanged"</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>>Dec</span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> 20, 2017</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">comment</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-operation</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"case"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">add</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-operation</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">conditions</span>></span><br />
<span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.otp.UserName"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-op-property</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"prop.idm.UserName"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.otp.UserPassword"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-op-property</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"prop.idm.UserPassword"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">".."</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"jdbc:statement"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"jdbc:call-procedure"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]/jdbc:call-procedure[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"jdbc:name"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">IDM.CREATEUSER</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]/jdbc:call-procedure[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"jdbc:param"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]/jdbc:call-procedure[last()]/jdbc:param[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"jdbc:value"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-text</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]/jdbc:call-procedure[last()]/jdbc:param[last()]/jdbc:value[last()]"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.otp.UserName"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-append-xml-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]/jdbc:call-procedure[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"jdbc:param"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]/jdbc:call-procedure[last()]/jdbc:param[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"jdbc:value"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-text</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../jdbc:statement[last()]/jdbc:call-procedure[last()]/jdbc:param[last()]/jdbc:value[last()]"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-base64-decode</span> <span class="hljs-attr" style="color: red;">charset</span>=<span class="hljs-string" style="color: #a31515;">"UTF-8"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.otp.UserPassword"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-base64-decode</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-append-xml-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-strip-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"self::add"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">rule</span>></span><br />
<br />
<br />
<br /></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-69643614026530787382017-09-04T12:51:00.000-07:002017-12-21T03:49:14.814-08:00NetIQ IDM - Start workflow from policy and catch error <div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
Those who want to avoid slowness of designer UI, use XML editor for fast delivery of code by providing following xml stub for start workflow :-)<br />
<br />
<br />
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-start-workflow</span> <span class="hljs-attr" style="color: red;">id</span>=<span class="hljs-string" style="color: #a31515;">"$local.sub.etp.resource.UserId$"</span> <span class="hljs-attr" style="color: red;">time-out</span>=<span class="hljs-string" style="color: #a31515;">"30000"</span> <span class="hljs-attr" style="color: red;">url</span>=<span class="hljs-string" style="color: #a31515;">"$local.sub.etp.resource.Endpoint$"</span> <span class="hljs-attr" style="color: red;">workflow-id</span>=<span class="hljs-string" style="color: #a31515;">"$workflow-ldap-dn$"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-password</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.resource.Password"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-password</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"lv.user.ldap.DN"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"Product"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"lv.group.ldap.DN"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"Accounts"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"lv.user.ldap.DN"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"Subscriptions"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.ctp.Subscriptions"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"IssueTicket"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">N/A</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-start-workflow</span>></span><br />
<br />
<br />
to catch the error use following condition with local variable <span style="background-color: #fafafa; color: #333333; font-family: "verdana" , "arial" , "tahoma" , "calibri" , "geneva" , sans-serif; font-size: 13px;">error.do-start-workflow</span><br />
<br />
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-local-variable</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"regex"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"error.do-start-workflow"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">.+</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-trace-message</span> <span class="hljs-attr" style="color: red;">level</span>=<span class="hljs-string" style="color: #a31515;">"3"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Workflow Error Detected
PLACEHOLDER</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-if</span>></span></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-70998729741458745062017-07-25T04:00:00.002-07:002017-12-21T09:36:40.150-08:00NetIQ IDM - Strip unwanted group member values from current operation<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
This code example shows how to remove unwanted group members from current operation based on some business logic.<br />
<br />
<br />
Optimization group members add to avoid "ALREADY_EXIST_VALUE" kind of errors. when IDM engine fails to do so.<br />
<br />
Here I am doing look up in AD for members, and for each added member from IDM if user is already member of AD group, i am just striping out current member value from the current operaiton.<br />
<br />
<br />
<span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"group-dn"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-src-dn</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"group-members"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-dest-attr</span> <span class="hljs-attr" style="color: red;">class-name</span>=<span class="hljs-string" style="color: #a31515;">"Group"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"Member"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">NUMBER OF MEMBERS GROUP =&gt; </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"count($group-members)"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-for-each</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-op-attr</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"Member"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"current-member"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"current-node"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">CURRENT MEMBER =&gt; </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"current-node"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-local-variable</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"src-dn"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"group-members"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">$current-member$</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-strip-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"modify-attr[@attr-name=&quot;Member&quot;]/add-value/value[text()=$current-node]"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-for-each</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-strip-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"modify-attr[@attr-name='Member']/add-value/value[not(text())]"</span> /></span></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-70228826470577128032017-07-15T13:57:00.001-07:002017-12-21T09:37:26.577-08:00NetIQ IDM - Query Entitlement value from another driver<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Wanted to share very important peice of code shared by Microfocus employee <b><i>"</i></b><span style="background-color: #fafafa; color: #333333; font-family: "verdana" , "arial" , "tahoma" , "calibri" , "geneva" , sans-serif; font-size: 13px;"><b><i>Dhaval"</i></b> in the NetIQ support forums</span><br />
<span style="background-color: #fafafa; color: #333333; font-family: "verdana" , "arial" , "tahoma" , "calibri" , "geneva" , sans-serif; font-size: 13px;"><br /></span>
<span style="background-color: #fafafa; color: #333333; font-family: "verdana" , "arial" , "tahoma" , "calibri" , "geneva" , sans-serif; font-size: 13px;"><br /></span>
<span style="background-color: #fafafa; color: #333333; font-family: "verdana" , "arial" , "tahoma" , "calibri" , "geneva" , sans-serif; font-size: 13px;">Ref:</span><br />
<span style="background-color: #fafafa; color: #333333; font-family: "verdana" , "arial" , "tahoma" , "calibri" , "geneva" , sans-serif; font-size: 13px;"><br /></span>
<span style="background-color: #fafafa; font-size: 13px;"><span style="color: #333333; font-family: "verdana" , "arial" , "tahoma" , "calibri" , "geneva" , sans-serif;"><a href="https://forums.novell.com/showthread.php/504380-Check-driver-entitlement-from-another-driver">https://forums.novell.com/showthread.php/504380-Check-driver-entitlement-from-another-driver</a></span></span><br />
<span style="background-color: #fafafa; font-size: 13px;"><span style="color: #333333; font-family: "verdana" , "arial" , "tahoma" , "calibri" , "geneva" , sans-serif;"><br /></span></span>
<span style="background-color: #fafafa; color: #333333; font-family: "verdana" , "arial" , "tahoma" , "calibri" , "geneva" , sans-serif; font-size: 13px;"><br /></span>
<span style="background-color: #fafafa; color: #333333; font-family: "verdana" , "arial" , "tahoma" , "calibri" , "geneva" , sans-serif; font-size: 13px;"><br /></span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"entitlementDN"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">entitlement DN you want</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"prevEntRef"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-query</span> <span class="hljs-attr" style="color: red;">class-name</span>=<span class="hljs-string" style="color: #a31515;">"User"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"entry"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-dest-dn</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">DirXML-EntitlementRef</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-query</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-for-each</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"prevEntRef"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-xpath</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"true"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">$current-node/attr/value[component[@name="volume"]/text()=$entitlementDN and component[@name="nameSpace"]/text()="1"]</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-xpath</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"isGranted"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">true</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"isGranted"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">false</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-for-each</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">actions</span>></span></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-4658696369792476752017-07-11T02:03:00.003-07:002017-12-21T09:38:16.232-08:00NetIQ IDM - Adding operation-data to subscriber command transformaiton custom commands<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<br />
Recently i had to execute EOL cmdlets using psexecute though new NetIQ azure ad driver, since this operation is fire and forget in nature, i would like to track whole request and response for my own generated commands from subscriber command transofrmaiton policy, so i solved it by following policy:<br />
<br />
<br />
<span style="color: blue; font-family: "calibri" , sans-serif;"><span style="font-size: 14.6667px;"><span style="white-space: pre;"> </span></span></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-dest-attr-value</span> <span class="hljs-attr" style="color: red;">direct</span>=<span class="hljs-string" style="color: #a31515;">"true"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"psexecute"</span>></span><br />
<span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-association</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-resolve</span> <span class="hljs-attr" style="color: red;">datastore</span>=<span class="hljs-string" style="color: #a31515;">"src"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">{userref}</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-resolve</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-association</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-value</span> <span class="hljs-attr" style="color: red;">type</span>=<span class="hljs-string" style="color: #a31515;">"string"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"cmdlet"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-value</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-dest-attr-value</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../modify[@direct]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"operation-data"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../modify[@direct]/operation-data"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"prop.psexecute.Action"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"action"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="color: blue; font-family: "calibri" , sans-serif;"><span style="font-size: 14.6667px;"><br /></span></span>
<span style="color: blue; font-family: "calibri" , sans-serif;"><span style="font-size: 14.6667px;"><br /></span></span></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com2tag:blogger.com,1999:blog-5541983113767587271.post-11856290932222376722017-02-11T04:47:00.000-08:002017-12-21T09:38:53.722-08:00NetIQ IDM - Trigger idm job from driver policy on driver startup with dynamic argument values<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Looking at this article:<br />
https://www.netiq.com/communities/cool-solutions/how-start-idm-job-policy/<br />
<br />
it shows you the complete recipe, except it does not show how to deal with dynamic argument values for the method itself; here is my version;<br />
<br />
I wanted to run this on the driver startup and wanted to let driver die if job execution did not succeed.<br />
<br />
1. username must be "dotted" format; one can use parseDN; example:<br />
<br />
<token-parse-dn dest-dn-format="dot" src-dn-format="ldap"><br />
<token-local-variable name="local.sub.etp.resource.UserId"/><br />
</token-parse-dn><br />
<br />
2. Jobname must be in "dotted" format too.<br />
<br />
<br />
3. For more java lovers, one can dig into this: https://www.novell.com/documentation/developer/dirxml/dirxmlbk/api/com/novell/nds/dirxml/util/DxCommand.html<br />
<br />
<br />
<br />
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">rule</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Schedule job on the startup</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-operation</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"nocase"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">status</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-operation</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-xpath</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"true"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">@type="startup"</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-xpath</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.ScheduleArguments"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">-user </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.resource.UserId"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> -password </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.resource.Password"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> -startjob </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.ctp.JobName"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Prepare cmdline =&gt; </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.ScheduleArguments"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.Scheduleob"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-object</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"jcmd:commandLine(string($local.sub.etp.ScheduleArguments))"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-object</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Initiate startup token job =&gt; </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.Scheduleob"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-local-variable</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"nocase"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.Scheduleob"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"not-equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">0</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.startup.Message"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Driver could not run token refresh job with arguments </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.ScheduleArguments"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> Please fix the error, clean driver event cache before starting the driver again.</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-status</span> <span class="hljs-attr" style="color: red;">level</span>=<span class="hljs-string" style="color: #a31515;">"error"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.startup.Message"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-status</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-status</span> <span class="hljs-attr" style="color: red;">level</span>=<span class="hljs-string" style="color: #a31515;">"fatal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.startup.Message"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-status</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">rule</span>></span></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-57784612405806615192017-02-10T11:27:00.001-08:002017-12-21T09:40:44.184-08:00NetIQ IDM - SOAP driver -- Handling SOAP service response and manufacturing user association without XSLT<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<b>Always pain working with SOAP service and its handling of service response on Query(matching) for user to work with matching policies?</b><br />
<br />
<br />
Here is the quick wins; without reading <u><b>those long lengthy & boring useless SOAP driver blog series at netIQ forums;</b></u><br />
<br />
<br />
1. Make sure you have mapped User class in the schema map with some service attributes<br />
<br />
2. Make sure Input and Output policy is registered with all the namespaces you have in your request/response soap messages, example <policy xmlns:soap="http://www.w3.org/2003/05/soap-envelope"<br />
<br />
3. I have added operation-data (which is being generated from the Output policy) as part of the SOAP query, but you can skip it if you do not need this. src-dn and association are important to indicate engine for building association. Operation data will help you to identify operation type and you can carry actions according to it.<br />
<br />
<br />
<br />
<b><i>Inject this on Output ( To support user matching) to send service request:</i></b><br />
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">rule</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">[service] Convert Query to SOAP doc</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-operation</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"case"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">query</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-operation</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.QueryDN"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-query</span> <span class="hljs-attr" style="color: red;">class-name</span>=<span class="hljs-string" style="color: #a31515;">"User"</span> <span class="hljs-attr" style="color: red;">datastore</span>=<span class="hljs-string" style="color: #a31515;">"src"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">MGMT\World</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-match-attr</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"Custom-UPN"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-value</span> <span class="hljs-attr" style="color: red;">type</span>=<span class="hljs-string" style="color: #a31515;">"string"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-op-attr</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"userName"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-value</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-match-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-query</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-node-set</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-xpath</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"true"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">count($local.sub.etp.QueryDN) =1</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-xpath</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.DN"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"$local.sub.etp.QueryDN/@src-dn"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">".."</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"soap:Envelope"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../soap:Envelope"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"soap:Header"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../soap:Envelope"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"soap:Body"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../soap:Envelope/soap:Body"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"cad:GetUser"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../soap:Envelope/soap:Body/cad:GetUser"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"cad:_UID"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-text</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../soap:Envelope/soap:Body/cad:GetUser/cad:_UID"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"SessionID"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-append-xml-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../soap:Envelope/soap:Body/cad:GetUser"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"cad:upn"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-text</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../soap:Envelope/soap:Body/cad:GetUser/cad:upn"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-op-attr</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"userName"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-append-xml-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">".."</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"operation-data"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../operation-data"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"command"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">query</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../operation-data"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"ref-src-dn"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.DN"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-strip-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"self::query"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">rule</span>></span><br />
<br />
<b><br /></b>
<i><b>Inject this on Publisher input to handle the service response;</b></i><br />
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">policy</span> <span class="hljs-attr" style="color: red;">xmlns:soap</span>=<span class="hljs-string" style="color: #a31515;">"http://www.w3.org/2003/05/soap-envelope"</span> <span class="hljs-attr" style="color: red;">xmlns:xsd</span>=<span class="hljs-string" style="color: #a31515;">"http://www.w3.org/2001/XMLSchema"</span> <span class="hljs-attr" style="color: red;">xmlns:xsi</span>=<span class="hljs-string" style="color: #a31515;">"http://www.w3.org/2001/XMLSchema-instance"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">rule</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">[service] Handle GetUserResponse documents</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-xpath</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"true"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">self::soap:Envelope/soap:Body</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-xpath</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-xpath</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"true"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">//operation-data[@command="query"]</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-xpath</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"Id"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"*//*[local-name()='ID']/text()"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-comment" style="color: green; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><!-- fix asso --></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-local-variable</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"regex"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"Id"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"not-equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">.+</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">User not found!!</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-break</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-actions</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-if</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">".."</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"instance"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"class-name"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">User</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-comment" style="color: green; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><!-- fix fake dn --></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"src-dn"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"//operation-data[@command=&quot;query&quot;]/@ref-src-dn"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-comment" style="color: green; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><!-- fix association --></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">".."</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"association"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"association"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance/association"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"state"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">associated</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-text</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance/association"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"*//*[local-name()='ID']/text()"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-append-xml-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-comment" style="color: green; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><!-- add attributes --></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"attr"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-xml-attr</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance/attr[last()]"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"attr-name"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Id</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-xml-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-element</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance/attr[@attr-name='Id']"</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"value"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-append-xml-text</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"../instance[@class-name=&quot;User&quot;]/attr[@attr-name=&quot;Id&quot;]/value"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"*//*[local-name()='ID']/text()"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-append-xml-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"Id"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"*//*[local-name()='ID']/text()"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"source-dn"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"//operation-data[@command=&quot;query&quot;]/@src-dn"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Unique ID VALUE =&gt; </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"Id"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-trace-message</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-strip-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"self::soap:Envelope"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-break</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">rule</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">policy</span>></span></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com1tag:blogger.com,1999:blog-5541983113767587271.post-24135625868637406542016-12-06T13:08:00.000-08:002016-12-06T13:08:44.258-08:00AzureAD bearer tokens, how to get 'em?<div dir="ltr" style="text-align: left;" trbidi="on">
People have asked me about above question in many forums, and I personally have used ADAL (Active Directory Authentication Library) to get one. But here i would show you can use simple Http client to get one.<br />
<br />
In following example, I would show you how to get bearer token for Azure Resource manager;<br />
<br />
Before you jump in, you must have created AzureAD application and have it assigned desired permissions to Azure Resource Manager.<br />
<br />
In olden days it was done through horrible powershell cmdlets, now days its done through new Azure Portal. (it used to be called ServicePrinciap), ServicePrincipal is actually an instance of your app in AzureAD.<br />
<br />
So lets come back to recipe:<br />
<br />
a) Fire a Http Client of your choice<br />
b) Set POST method to a your token endpoint for your AzureAD tenant URL https://login.microsoftonline.com/<tenant-id>/oauth2/token<br />
c) Set Content-Type : example : Content-Type: application/x-www-form-urlencoded<br />
d) Set following parameter as part of your request body:<br />
<br />
response_type=client_credentials&client_id=<azureadapp_clientId>&client_secret=<azuread_clientSecret>&resource=https%3A%2F%2Fmanagement.azure.com%2F&grant_type=client_credentials<br />
<br />
e) Fire :)<br />
<br />
{<br />
"token_type": "Bearer",<br />
"expires_in": "3600",<br />
"ext_expires_in": "0",<br />
"expires_on": "1481060508",<br />
"not_before": "1481056608",<br />
"resource": "https://management.azure.com/",<br />
"access_token": "_BEARER_TOKEN_"<br />
}<br />
<div>
<br /></div>
<br />
In this request result you should have now received a bearer token, which you can use further towards Azure Resource Manager.<br />
<div>
<br /></div>
<div>
<br /></div>
Remember, key "expires_in" is an epoch time format, so you have to make sure that you have to refresh refresh this token before it expires. which is why ADAL is so good and you do not have to think about such things. :-)<br />
<br />
Now you can use another Http call to one of your favorite Azure REST apis and use above <b>"bearer"</b> token as part of authorization header; set value; Authorization bearer <_BEARER_TOKE_><br />
<br />
That's it :)<br />
<br />
<b>Remember: </b><span style="background-color: yellow;">T<i>he above practice is not good for production env. you have responsibility to store client_id , client_secret in a secure place, practicing above things is not recommended in production env. and ADAL should be part of the game. but for learning purposes, its always good to know how things work in background :)</i></span><br />
<br />
<br />
<br />
</div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-32837074607353474402016-10-30T06:52:00.003-07:002017-12-21T09:41:53.991-08:00NetIQ IDM - JDBC driver - SQL calls from driver (Publisher channel) using XSLT<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Recently I was working on a task where we had to call some SQL statements from publisher channel on a JDBC driver to different tables than the ones driver was configured to sync.<br />
<br />
The official documentation suggest to achieve this using jdbc-statement but it only schedules them on the subscriber channel, best suited for calling some SQL for stored procedure.<br />
<br />
The way I solved it was using XSLT and enabling Subscriber channel.<br />
<br />
On the publisher Command Transformation Channel , I have following XSLT:<br />
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:stylesheet</span> <span class="hljs-attr" style="color: red;">xmlns:xsl</span>=<span class="hljs-string" style="color: #a31515;">"http://www.w3.org/1999/XSL/Transform"</span> <span class="hljs-attr" style="color: red;">xmlns:jdbc</span>=<span class="hljs-string" style="color: #a31515;">"urn:dirxml:jdbc"</span> <span class="hljs-attr" style="color: red;">xmlns:query</span>=<span class="hljs-string" style="color: #a31515;">"http://www.novell.com/nxsl/java/com.novell.nds.dirxml.driver.XdsQueryProcessor"</span> <span class="hljs-attr" style="color: red;">version</span>=<span class="hljs-string" style="color: #a31515;">"1.0"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:param</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"srcQueryProcessor"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:param</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"destQueryProcessor"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr" style="color: red;">match</span>=<span class="hljs-string" style="color: #a31515;">"node()|@*"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:copy</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:apply-templates</span> <span class="hljs-attr" style="color: red;">select</span>=<span class="hljs-string" style="color: #a31515;">"node()|@*"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">xsl:copy</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">xsl:template</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-comment" style="color: green; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><!-- ON ADD | MODIFY --></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:template</span> <span class="hljs-attr" style="color: red;">match</span>=<span class="hljs-string" style="color: #a31515;">"modify[@class-name='Group']|add[@class-name='Group']"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-comment" style="color: green; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><!-- GET ATTRIBUTE VALUE TO USE WITH SQL --></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"systmeid"</span> <span class="hljs-attr" style="color: red;">select</span>=<span class="hljs-string" style="color: #a31515;">"*[@attr-name='businessCategory']//value"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"query-doc"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">jdbc:statement</span> <span class="hljs-attr" style="color: red;">type</span>=<span class="hljs-string" style="color: #a31515;">"query"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">jdbc:sql</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">SELECT DISTINCT OPERATIONAL_OWNER_ID FROM idm_application_list WHERE SYSTEM_ID =</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">xsl:text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:value-of</span> <span class="hljs-attr" style="color: red;">select</span>=<span class="hljs-string" style="color: #a31515;">"$systmeid"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">jdbc:sql</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">jdbc:statement</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">xsl:variable</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-comment" style="color: green; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><!-- GET SQL RESULT SET --></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"result"</span> <span class="hljs-attr" style="color: red;">select</span>=<span class="hljs-string" style="color: #a31515;">"query:query($srcQueryProcessor,$query-doc)"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-comment" style="color: green; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><!-- SAVE SQL RESULT INTO TEMP ATTRIBUTE --></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:copy</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:apply-templates</span> <span class="hljs-attr" style="color: red;">select</span>=<span class="hljs-string" style="color: #a31515;">"node()|@*"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">add-attr</span> <span class="hljs-attr" style="color: red;">attr-name</span>=<span class="hljs-string" style="color: #a31515;">"OperationOwnerId"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:for-each</span> <span class="hljs-attr" style="color: red;">select</span>=<span class="hljs-string" style="color: #a31515;">"$result//jdbc:value"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"row"</span> <span class="hljs-attr" style="color: red;">select</span>=<span class="hljs-string" style="color: #a31515;">"."</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">value</span> <span class="hljs-attr" style="color: red;">type</span>=<span class="hljs-string" style="color: #a31515;">"string"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">xsl:value-of</span> <span class="hljs-attr" style="color: red;">select</span>=<span class="hljs-string" style="color: #a31515;">"$row"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">value</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">xsl:for-each</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">add-attr</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">xsl:copy</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">xsl:template</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">xsl:stylesheet</span>></span><br />
<br />
<br /></div>
Actually I am calling a SQL statement and result of the statement is saved into a temp attribute called OperationOwnerId, now this temp attribute is accessible to dirxml policy, remember when you have worked out finished with OperationalOwnerId attribute, just remove it from the current operation. I have a policy with following rule on Publisher Command Transformation next to XSLT<br />
<br />
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">rule</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Clean up temporary attributes out of the operation for OperationOwnerId</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">description</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-class-name</span> <span class="hljs-attr" style="color: red;">mode</span>=<span class="hljs-string" style="color: #a31515;">"nocase"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"equal"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">Group</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">if-class-name</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">if-op-attr</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"OperationOwnerId"</span> <span class="hljs-attr" style="color: red;">op</span>=<span class="hljs-string" style="color: #a31515;">"available"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">and</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">conditions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-strip-op-attr</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"OperationOwnerId"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">actions</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">rule</span>></span></div>
</div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-62872039867906478522016-04-20T13:30:00.002-07:002016-04-20T13:30:26.773-07:00Its time to explore Azure (PaaS)<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<br />
<br />
I'm back to azure (PaaS) as developer in .NET/c# to code in lots of Azure (PaaS) services. Including Azure Active Directory, AppServices, Azure Service Fabric & lot more interesting services. This is just a beginning to cloud for modern business..<br />
<br />
<br />
<img src="https://acom.azurecomcdn.net/80C57D/cdn/cvt-32edea6d0e2d1432803a9968189a30436caf9c205b159a477780283180c1e625/images/page/regions/china.png" /><br />
<br />
<br />
<img src="http://www.wintellect.com/devcenter/wp-content/uploads/2015/05/MicrosoftAzureBanner.jpg" /></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-41638058620999182492015-11-13T11:56:00.002-08:002017-12-21T09:42:47.897-08:00NetIQ IDM - Want to use HTML tags to format the strings in E-mail templates for the dynamic contents?<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<do-send-email-from-template notification-dn="Security\Default Notification Collection" template-dn="Security\Default Notification Collection\MySpookyTemplate"></do-send-email-from-template><br />
Got my eye on the new tag <b><use-html></use-html></b><br />
<br />
<br />
<br />
<br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-set-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.Info"</span> <span class="hljs-attr" style="color: red;">scope</span>=<span class="hljs-string" style="color: #a31515;">"policy"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.Info"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">&lt;li&gt;</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.AccountID"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"> : </span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-local-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"local.sub.etp.AccountStatus"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">&lt;/li&gt;</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-set-local-variable</span>></span><br />
<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><arg-string name="to"></arg-string><br />
<span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">do-send-email-from-template</span> <span class="hljs-attr" style="color: red;">notification-dn</span>=<span class="hljs-string" style="color: #a31515;">"Security\Default Notification Collection"</span> <span class="hljs-attr" style="color: red;">template-dn</span>=<span class="hljs-string" style="color: #a31515;">"Security\Default Notification Collection\MySpookyTemplate"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"to"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span> <span class="hljs-attr" style="color: red;">xml:space</span>=<span class="hljs-string" style="color: #a31515;">"preserve"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">EmailAddress</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"token-accountinfo"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">&lt;use-html&gt;$local.sub.etp.Info$&lt;/use-html&gt;</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-text</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">arg-string</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"token-driver"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-parse-dn</span> <span class="hljs-attr" style="color: red;">length</span>=<span class="hljs-string" style="color: #a31515;">"1"</span> <span class="hljs-attr" style="color: red;">start</span>=<span class="hljs-string" style="color: #a31515;">"-1"</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-global-variable</span> <span class="hljs-attr" style="color: red;">name</span>=<span class="hljs-string" style="color: #a31515;">"dirxml.auto.driverdn"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">token-parse-dn</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"><<span class="hljs-name">token-xpath</span> <span class="hljs-attr" style="color: red;">expression</span>=<span class="hljs-string" style="color: #a31515;">"@source"</span> /></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">arg-string</span>></span><span style="background-color: white; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;">
</span><span class="hljs-tag" style="color: blue; font-family: Monaco, "Andale Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap;"></<span class="hljs-name">do-send-email-from-template</span>></span><br />
<div>
<br /></div>
<div>
More: <a href="https://www.netiq.com/documentation/idm402/policy_imanager/data/bxj6vvu.html">https://www.netiq.com/documentation/idm402/policy_imanager/data/bxj6vvu.html</a></div>
<div>
<br /></div>
</div>
</div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><token-parse-dn length="1" start="-1"></token-parse-dn><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><token-global-variable name="dirxml.auto.driverdn"></token-global-variable><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><token-xpath expression="@source"></token-xpath><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<br /></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-84740680333091882002015-10-02T03:43:00.000-07:002017-02-11T04:48:09.384-08:00NetIQ IDM - How to validate form field based on the Regular Expression (validation mask) in NetIQ Userapp workflow forms<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Workflow forms in the NetIQ Userapp provides to validate input fields using regular expression.<br />
<br />
Here is the recipe:<br />
<br />
Example allow only alphabets and spaces in the form field.<br />
<br />
1. On the form field, Add regular expression validation mask:<br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;"><br /></span>
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">^[a-zA-Z ]*$</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;"><br /></span>
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">2. On the form field, Add event (OnChange)</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;"><br /></span>
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">3. Add following code on the Event handler:</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;"><br /></span>
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;"><br /></span>
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">/*</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">Function to validate with mask (default) and set new</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">message if not valid returns true if field valid, else false</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">*/</span><br />
<br style="background-color: #fafafa; color: rgba(0, 0, 0, 0.8); font-family: 'Roboto Slab', 'Times New Roman', serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;" />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">function validateField() {</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">// check if field is valid, by calling default validation,</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">//which uses the mask</span><br />
<br style="background-color: #fafafa; color: rgba(0, 0, 0, 0.8); font-family: 'Roboto Slab', 'Times New Roman', serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;" />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">if (field.validate()) {</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">// not valid</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">form.clearMessages(); // get rid of the default</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">// validation mask message</span><br />
<br style="background-color: #fafafa; color: rgba(0, 0, 0, 0.8); font-family: 'Roboto Slab', 'Times New Roman', serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;" />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">form.showError("The entry " + field.getValue() + " is " +</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">"not valid");</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">return false; // field not valid</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">} else {</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">// valid, clear old messages</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">form.clearMessages();</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">return true; // field is valid</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">}</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">};</span><br />
<br style="background-color: #fafafa; color: rgba(0, 0, 0, 0.8); font-family: 'Roboto Slab', 'Times New Roman', serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;" />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">if (field.getValue() != ""){</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">validateField</span><span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">();</span><br />
<span style="background-color: #fafafa; color: rgba(0 , 0 , 0 , 0.8); font-family: "roboto slab" , "times new roman" , serif; font-size: 14px; line-height: 19px; white-space: pre-wrap;">}</span></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-5547080245721318102015-09-25T04:33:00.000-07:002017-02-11T04:48:22.592-08:00NetIQ IDM - How to close a workflow request based on a group membership (NetIQ Userapp workflow forms)<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Solution:<br />
<br />
Suppose you want to close a request form by cancelling it upon a certain condition, such as if the caller is requires to be member of a specific eDirectory group.<br />
<br />
1. On the request form, add a field called "recipient". i.e the caller of the form<br />
2. Workflow->Start->Data-Item-Mapping, Add "recipient" as the source expression<br />
3. On the request form field "recipient", Properties add event "onload"<br />
4 Paste the following script:<br />
<br />
<br />
function CheckGroupAccess(userDN)<br />
{<br />
<br />
var isMember;<br />
<br />
var grp = IDVault.get(null,userDN,'user','group');<br />
<br />
var access_grp = "ACCESS_GROUP_DN";<br />
<br />
access_grp = access_grp.toLowerCase();<br />
<br />
var lvEnt = Array();<br />
<br />
lvEnt = grp;<br />
<br />
var EntSize = lvEnt.length-1;<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<br />
for (var i = 0; i <= EntSize; i++)<br />
{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>currentEnt=lvEnt[i].toString().toLowerCase();<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if (currentEnt.match(access_grp))<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{isMember="x";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span> break ;}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>else<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>continue;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>};<br />
<br />
return isMember;<br />
<br />
}<br />
<br />
<br />
5. Add the following script on the same page below or above the previous one<br />
<br />
try{<br />
<br />
<br />
<br />
if (CheckGroupAccess(field.getValue()) != "x"){<br />
<br />
alert("You are not authorized for this form, closing request form");<br />
form.submit("CancelAction");<br />
}<br />
// DEPENDS ON YOUR CHOICE<br />
//form.showMsg("Authorized ok, please proceed");<br />
<br />
}catch(e){<br />
alert(e);<br />
}</div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com1tag:blogger.com,1999:blog-5541983113767587271.post-25229019579338646522015-08-25T11:22:00.002-07:002015-08-25T11:22:19.763-07:00Method to provision personal sites and OneDrive for Business for multiple users in Office365<div dir="ltr" style="text-align: left;" trbidi="on">
As part of new employee workflow from within the identity management we needed to pre-provision Personal sites and OneDrive for Business.<br />
<br />
After doing a quick research, I found the following article on the #msdn<br />
<br />
https://msdn.microsoft.com/en-us/library/office/jj163783.aspx<br />
<br />
which describes how using CSOM one can achieve the task. <br />
<br />
<br />
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;"><span style="color: blue;">using</span> System;
<span style="color: blue;">using</span> System.Collections.Generic;
<span style="color: blue;">using</span> System.Linq;
<span style="color: blue;">using</span> System.Text;
<span style="color: blue;">using</span> System.Threading.Tasks;
<span style="color: blue;">using</span> System.Security;
<span style="color: blue;">using</span> Microsoft.SharePoint.Client;
<span style="color: blue;">using</span> Microsoft.SharePoint.Client.UserProfiles;
<span style="color: blue;">namespace</span> CreatePersonalSiteBulkConsole
{
<span style="color: blue;">class</span> Program
{
<span style="color: blue;">static</span> <span style="color: blue;">void</span> Main(<span style="color: blue;">string</span>[] args)
{
<span style="color: blue;">string</span> userName = <span style="color: #a31515;">"administrator@contoso.onmicrosoft.com"</span>;
<span style="color: blue;">string</span> passwordStr = <span style="color: #a31515;">"password"</span>;
<span style="color: blue;">string</span> serverUrl = <span style="color: #a31515;">"https://contoso-admin.sharepoint.com/"</span>;
<span style="color: blue;">using</span> (<span style="color: blue;">var</span> clientContext = <span style="color: blue;">new</span> ClientContext(serverUrl))
{
SecureString password = <span style="color: blue;">new</span> SecureString();
Array.ForEach(passwordStr.ToCharArray(), c => password.AppendChar(c));
<span style="color: blue;">var</span> credentials = <span style="color: blue;">new</span> SharePointOnlineCredentials(userName, password);
clientContext.Credentials = credentials;
<span style="color: blue;">var</span> web = clientContext.Web;
clientContext.Load(web);
clientContext.ExecuteQuery();
ProfileLoader loader = ProfileLoader.GetProfileLoader(clientContext);
<span style="color: blue;">if</span> (loader == <span style="color: blue;">null</span>)
{
<span style="color: blue;">throw</span> <span style="color: blue;">new</span> InvalidOperationException(<span style="color: #a31515;">"Failed to get ProfileLoader"</span>);
}
<span style="color: blue;">string</span>[] userEmails = { <span style="color: #a31515;">"usera@contoso.onmicrosoft.com"</span>, <span style="color: #a31515;">"userb@contoso.onmicrosoft.com"</span> };
loader.CreatePersonalSiteEnqueueBulk(userEmails);
loader.Context.ExecuteQuery();
}
}
}
}</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="overflow: auto; padding: 5px; word-wrap: normal;"><div style="font-family: Tinos; font-size: medium; line-height: normal; white-space: normal;">
As I want to mention very important requirements for using this code as the #msdn documentation does not say clearly.</div>
<div style="font-family: Tinos; font-size: medium; line-height: normal; white-space: normal;">
</div>
<div style="font-family: Tinos; font-size: medium; line-height: normal; white-space: normal;">
#The caller of the api must have a sharepoint user profile (means a sharepoint licenses assigned)</div>
<div style="font-family: Tinos; font-size: medium; line-height: normal; white-space: normal;">
#The caller of the api must be "Global Admin"</div>
<div style="font-family: Tinos; font-size: medium; line-height: normal; white-space: normal;">
#The machine from where the api would invoked must have following components installed on it;</div>
<div style="font-family: Tinos; font-size: medium; line-height: normal; white-space: normal;">
</div>
<div style="font-family: Tinos; font-size: medium; line-height: normal; white-space: normal;">
<span style="background-color: #eeeeee; color: #333333; font-family: wf_segoe-ui_normal, 'Segoe UI', Segoe, 'Segoe WP', Tahoma, Verdana, Arial, sans-serif; font-size: 12.960000038147px; line-height: 16.2000007629395px;">sharepointclientcomponents_16-4002-1211_x64-en-us.msi</span></div>
<div style="font-family: Tinos; font-size: medium; line-height: normal; white-space: normal;">
<span style="background-color: #eeeeee; color: #333333; font-family: wf_segoe-ui_normal, 'Segoe UI', Segoe, 'Segoe WP', Tahoma, Verdana, Arial, sans-serif; font-size: 12.960000038147px; line-height: 16.2000007629395px;">
</span></div>
<span style="background-color: #eeeeee; font-size: 12.960000038147px; line-height: 16.2000007629395px; white-space: normal;"><span style="color: #333333; font-family: wf_segoe-ui_normal, Segoe UI, Segoe, Segoe WP, Tahoma, Verdana, Arial, sans-serif;">https://www.microsoft.com/en-us/download/details.aspx?id=42038</span></span><br />
<span style="background-color: #eeeeee; font-size: 12.960000038147px; line-height: 16.2000007629395px; white-space: normal;"><span style="color: #333333; font-family: wf_segoe-ui_normal, Segoe UI, Segoe, Segoe WP, Tahoma, Verdana, Arial, sans-serif;">
</span></span>
<div style="font-family: Tinos; font-size: medium; line-height: normal; white-space: normal;">
</div>
<div style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px;">
</div>
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
<pre style="font-family: Consolas, Courier, monospace !important; font-size: 14px; line-height: 20.0059986114502px; overflow: auto; padding: 5px; word-wrap: normal;">
</pre>
</div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-3312487017085016662015-03-21T17:10:00.004-07:002015-04-07T01:04:13.583-07:00Microsoft Azure Active Directory Graph API<div dir="ltr" style="text-align: left;" trbidi="on">
Got chance to work with Microsoft Azure Active Directory Graph API (api-version=1.5) to manage users, groups, licenses management etc.<br />
<br />
few of the things that I should mention here which could save a developer time to code.<br />
<br />
Azure Portal UI and Graph API object properties mapping;<br />
<br />
<b>WORK INFO:</b><br />
<br />
JOB TITLE : jobTitle<br />
DEPARTMENT : department<br />
OFFICE NUMBER: physicalDeliveryOfficeNumber<br />
OFFICE PHONE:telephoneNumber<br />
MOBILE:mobile [<u><b>a single space between country code</b></u> and mobile number]<br />
STREET ADDRESS:streetAddress<br />
CITY:city<br />
STATE OR PROVINCE:state<br />
ZIP OR POSTAL CODE:<br />
COUNTRY OR REGION:country<br />
<br />
<br />
<b>ALLOW THE USER TO SIGN IN AND ACCESS SERVICES?</b><br />
Account Enabled = false( INACTIVE), true(ACTIVE) //<br />
<br />
<br />
<b>LICENSE INFO:</b><br />
<b><br /></b>
EXCHANGE_S_STANDARD<span class="Apple-tab-span" style="white-space: pre;"> </span> - Exchange Online (Plan 2)<br />
MCOSTANDARD<span class="Apple-tab-span" style="white-space: pre;"> </span> - Lync Online (Plan 2)<br />
SHAREPOINTENTERPRISE - <span class="Apple-tab-span" style="white-space: pre;"> </span>SharePoint Online (Plan 2)<br />
SHAREPOINTWAC - <span class="Apple-tab-span" style="white-space: pre;"> </span>Office Online<br />
OFFICESUBSCRIPTION - <span class="Apple-tab-span" style="white-space: pre;"> </span>Office ProPlus<br />
RMS_S_ENTERPRISE - <span class="Apple-tab-span" style="white-space: pre;"> </span>Azure Active Directory Rights Management<br />
<br />
YAMMER_ENTERPRISE - <span class="Apple-tab-span" style="white-space: pre;"> </span>Yammer<br />
<span style="background-color: white; color: #323232; font-family: 'Segoe UI Semibold'; font-size: 11px; text-transform: uppercase;"><br /></span>
<br />
<span style="color: #323232; font-family: Segoe UI Semibold;"><span style="font-size: 11px; text-transform: uppercase;"><b><br /></b></span></span>
<span style="color: #323232; font-family: Segoe UI Semibold;"><span style="text-transform: uppercase;"><b>Azure Portal Organizational ROLE and Graph API Role Mapping:</b></span></span><br />
<span style="color: #323232; font-family: Segoe UI Semibold;"><span style="font-size: 11px; text-transform: uppercase;"><br /></span></span>
<span style="color: #323232; font-family: Segoe UI Semibold;"><span style="font-size: 11px; text-transform: uppercase;">"Global Administrator" = "Company Administrator"</span></span><br />
<span style="color: #323232; font-family: Segoe UI Semibold;"><span style="font-size: 11px; text-transform: uppercase;">"Billing Administrator" = "Billing Administrator"</span></span><br />
<span style="color: #323232; font-family: Segoe UI Semibold;"><span style="font-size: 11px; text-transform: uppercase;">"Service Administrator" = "Service Support Administrator"</span></span><br />
<span style="color: #323232; font-family: Segoe UI Semibold;"><span style="font-size: 11px; text-transform: uppercase;">"User Administrator" = "User Account Administrator"</span></span><br />
<span style="font-size: 11px; text-transform: uppercase;"><span style="background-color: white; color: #323232; font-family: Segoe UI Semibold;"></span></span><br />
<span style="color: #323232; font-family: Segoe UI Semibold;"><span style="font-size: 11px; text-transform: uppercase;">"Password Administrator" = "Helpdesk Administrator"</span></span></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-61496287568594398182013-06-26T06:47:00.001-07:002017-02-11T04:48:36.602-08:00NetIQ IDM - IDM 4.0.2 AE VDX Webservice By Exmaples SOAP<div dir="ltr" style="text-align: left;" trbidi="on">
Currently working on a project where i need to integrate a 3rd party application with the identity manager 4.0.2 AE through its exposed SOAP based webservices such as Resource, Role, Workflow and VDX.<br />
<br />
<br />
Things to consider:<br />
<br />
a)DAL entityKey<br />
b)DAL attributeKey<br />
c)DAL attribute search flag ( if you want to query on a attribute).<br />
d) Rights<br />
<br />
<br />
VDX Webserivce SOAP by examples:<br />
<br />
<b>Query:</b><br />
<br />
SOAP Request:<br />
<br />
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.novell.com/vdx/service"><br />
<soapenv:Header/><br />
<soapenv:Body><br />
<ser:queryRequest><br />
<!--Optional:--><br />
<!--type: string--><br />
<ser:arg0>user</ser:arg0><br />
<!--Optional:--><br />
<ser:arg1><br />
<!--Zero or more repetitions:--><br />
<!--type: string--><br />
<ser:string>FirstName</ser:string><br />
<!--type: string--><br />
<ser:string>Department</ser:string><br />
</ser:arg1><br />
<!--Optional:--><br />
<!--type: string--><br />
<ser:arg2>FirstName='Maqsood*' AND Department='*'</ser:arg2><br />
</ser:queryRequest><br />
</soapenv:Body><br />
</soapenv:Envelope><br />
SOAP Reply:<br />
<br />
<br />
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><br />
<SOAP-ENV:Body><br />
<ns1:queryResponse xmlns="http://www.novell.com/vdx/service" xmlns:ns1="http://www.novell.com/vdx/service"><br />
<result><br />
<entries><br />
<entry><br />
<key>cn=maqsood,ou=idm,o=coolstuff</key><br />
<values><br />
<attribute><br />
<binaries/><br />
<booleans/><br />
<dates/><br />
<integers/><br />
<strings><br />
<string>Maqsood Ali</string><br />
</strings><br />
<type>String</type><br />
</attribute><br />
<attribute><br />
<binaries/><br />
<booleans/><br />
<dates/><br />
<integers/><br />
<strings><br />
<string>Back Office</string><br />
</strings><br />
<type>String</type><br />
</attribute><br />
</values><br />
</entry><br />
</entries><br />
</result><br />
</ns1:queryResponse><br />
</SOAP-ENV:Body><br />
</SOAP-ENV:Envelope><br />
<br />
<br />
<b>GetAttribute</b><br />
<br />
SOAP Request<br />
<br />
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.novell.com/vdx/service"><br />
<soapenv:Header/><br />
<soapenv:Body><br />
<ser:getAttributeRequest><br />
<!--Optional:--><br />
<!--type: string--><br />
<ser:arg0>cn=maqsood,ou=idm,o=coolstuff</ser:arg0><br />
<!--Optional:--><br />
<!--type: string--><br />
<ser:arg1>user</ser:arg1><br />
<!--Optional:--><br />
<!--type: string--><br />
<ser:arg2>FirstName</ser:arg2><br />
</ser:getAttributeRequest><br />
</soapenv:Body><br />
</soapenv:Envelope><br />
<br />
<br />
SOAP Reply<br />
<br />
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><br />
<SOAP-ENV:Body><br />
<ns1:getAttributeResponse xmlns="http://www.novell.com/vdx/service" xmlns:ns1="http://www.novell.com/vdx/service"><br />
<result><br />
<binaries/><br />
<booleans/><br />
<dates/><br />
<integers/><br />
<strings><br />
<string>Maqsood Ali</string><br />
</strings><br />
<type>String</type><br />
</result><br />
</ns1:getAttributeResponse><br />
</SOAP-ENV:Body><br />
</SOAP-ENV:Envelope><br />
<br />
<br />
<br /></div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com1tag:blogger.com,1999:blog-5541983113767587271.post-71540698896510129252012-12-11T14:03:00.001-08:002012-12-11T14:03:06.561-08:00Delegation mailbox through EWS managed API 2.0<div dir="ltr" style="text-align: left;" trbidi="on">
<b>Goal to create NETIQ Identity Manager Driver integeration for Microsoft Exchange using EWS(Exchange Web Services) managed API 2.0</b><br />
<b><br /></b>
<b><br /></b>
<b>the error:</b><br />
<span style="color: red;"><b>'</b>The specified object was not found in the store.<b>'</b></span><br />
<br />
finally things are working fine when i poll the exchange mailbox for a specified user in the single forest single domain environment, but situation i came across was to read a resource mailbox using a different user account creds home in different AD forest using EWS..<br />
<br />
So it was all about Delegation.. well the environment i was working was little bit different then things usually seems to be happen in dreams and in books/documentation world.. the Exchange was hosted as a "Accoutn/Resource" forest deployment fashion, that mean my user account was homed in a different forest then the Exchange resource mailbox.<br />
<br />
they way i worked it out was by applying a powershell on the exchange mailbox such as:<br />
<br />
Add-MailboxPermission -Identity 'CN=testMailbox,OU=Test,DC=ad,DC=resource,DC=com' -User 'Account\maqsood' -AccessRights 'FullAccess'<br />
<br />
I could not find the EMC(Exchange Management Console) much of help to add the user from different Account forest from within Managed Full Access Permission option.<br />
<br />
Then i changed my code FROM_<br />
<br />
<br />
Folder rootfolder = Folder.Bind(service, WellKnownFolderName.Inbox);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span> rootfolder.Load();<br />
<br />
TO_<br />
<br />
<br />
Folder rootfolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox, ConfigurationManager.AppSettings.Get("ResourcePrimaryEmailAddress").ToString())); <br />
<br />
<br />
<br />
any yes, things much better!..<br />
<br />
and now its time to tear up the test!</div>
Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0tag:blogger.com,1999:blog-5541983113767587271.post-65164397820205047562011-07-04T06:45:00.001-07:002011-07-04T06:56:05.861-07:00Setting up Novell User Application RBpM on Windows Server 2008 R2 as Windows Service.. Gotcha.. the everything finally is up and running , now i have following things running in my enviornment.<br /><br /><br />1. Windows Server 2008 R2 (64-bit)<br />2. Novell Identity Manager 4.0.1<br />3. Novell User Application (RBpM) Modules / Jboss/ MySQL Community Edition 5.5<br />4. Novell User Application (Identity Reporting Module) Module<br />5. Novell EAS (Event Auditing Serivce) Suse Linux postGreSQL.. <br /><br />I wanted to setup the auto start of Jboss on the Windows Server 2008 R2 as Window Service and I ended up with the following setup:<br /><br /><br />Added %JBOSS_HOME% and %JAVA_HOME% as the System env variables. I had to stick to the JDK 1.6 /JRE x86 versions due to IDM reporting modules.<br /><br /><br />Good start wiht Option2 ( Use the JavaServiceWrapper by Tanuki.)<br />link# http://community.jboss.org/wiki/RunJBossAsAServiceOnWindows<br /><br /><br />and my wrapper.conf<br />===============================<br /><br />wrapper.java.command=C:/Program Files (x86)/Java/jdk1.6.0_26/jre/bin/java<br /><br />wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp<br /><br />wrapper.java.classpath.1=%JBOSS_HOME%/lib/wrapper.jar<br />wrapper.java.classpath.2=C:/Program Files (x86)/Java/jdk1.6.0_26/jre/lib/tools.jar<br />wrapper.java.classpath.3=%JBOSS_HOME%/bin/run.jar<br />wrapper.java.classpath.4=%JBOSS_HOME%/lib/endorsed/xalan.jar<br /><br />wrapper.java.library.path.1=%JBOSS_HOME%/lib<br /><br /># these are the JAVA_OPTS<br />wrapper.java.additional.1=-server<br /><br /># enviroment variables - define the ones that match your desired environment<br />wrapper.java.additional.1=-Dfile.encoding=UTF-8<br />wrapper.java.additional.2=-Dsun.jnu.encoding=UTF-8<br /><br /># memory parameters - define the ones that match your desired environment<br />wrapper.java.additional.3=-XX:MaxPermSize=512m<br />wrapper.java.initmemory=512<br />wrapper.java.maxmemory=512<br /><br /><br />wrapper.app.parameter.1=org.jboss.Main<br />wrapper.app.parameter.2=-Djboss.service.binding.set=ports-01<br />wrapper.app.parameter.3=-c IDM -b 0.0.0.0<br /><br />wrapper.logfile=%JBOSS_HOME%/server/IDM/log/wrapper-ROLLNUM.log<br />wrapper.logfile.rollmode=SIZE<br />wrapper.logfile.maxsize=10m<br /><br />wrapper.ntservice.name=NovellUserAppJboss<br />wrapper.ntservice.displayname=NovellUserAppJboss<br /><br />===============================<br /><br /><br />The windows service is running under Local System Account!Maqsood Bhattihttp://www.blogger.com/profile/18429044416016182704noreply@blogger.com0