Skip to main content

Submit multiple SOAP calls form one modify operation generated from subscriber command



Put this policy on output.

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

Comments

Popular posts from this blog

My own developed - Active Directory Cache Inspector for AD Driver Novell Identity manager

Sometimes there is a need for us (Consultants) to see a snapshot of all the changes that happened on the Active directory side while the Novell AD IDM driver was stopped or was not running, before we decide to start the AD driver. Since Novell Identity Manager currently allows us to see all the events which happened in the Identity vault only, but not on the AD side, I decided to write such a tool myself, and of course wanted to share this tool with the consultants/community out there. It's a .NET 2.0 WinForm application, written in C# programming language. To run this tool you should have at minimum: .NET 2.0 framework installed, ( Not supported on the Linux platforms yet) This application must be run under the same user which is configured on the AD driver. Short Tutorial (How To): When you run the application (ADCView.exe), the application automatically discovers the current domain, a domain controller, and default domain naming context in the user logged in domain automatically

NetIQ IDM - How to read Component type data from Query nodeset done from command transformation

Suppose query: <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> Outpu