Advertisement
Guest User

Untitled

a guest
Aug 6th, 2015
352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 9.45 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet exclude-result-prefixes="query cmd dncv soap-env"
  3. version="1.0"
  4. xmlns:cmd="http://www.novell.com/nxsl/java/com.novell.nds.dirxml.driver.XdsCommandProcessor"
  5. xmlns:dncv="http://www.novell.com/nxsl/java/com.novell.nds.dirxml.driver.DNConverter"
  6. xmlns:query="http://www.novell.com/nxsl/java/com.novell.nds.dirxml.driver.XdsQueryProcessor"
  7. xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"
  8. xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  9.     <!-- parameters passed in from the Identity Manager engine -->
  10.     <xsl:param name="srcQueryProcessor"/>
  11.     <xsl:param name="destQueryProcessor"/>
  12.     <xsl:param name="srcCommandProcessor"/>
  13.     <xsl:param name="destCommandProcessor"/>
  14.     <xsl:param name="dnConverter"/>
  15.     <xsl:param name="fromNds"/>
  16.     <!-- This is for testing the stylesheet outside of Identity Manager so things are pretty to look at -->
  17.     <xsl:strip-space elements="*"/>
  18.     <xsl:preserve-space elements="value component password check-password"/>
  19.     <xsl:output indent="yes" method="xml"/>
  20.     <!-- ################################################## -->
  21.     <!-- We first check if sending data to OPUS is allowed, -->
  22.     <!-- and if a valid MANumber is present in the document -->
  23.     <!-- ################################################## -->
  24.     <xsl:template match="add" xmlns:java="java:dk.unic.infotjeneste.webservice.returTyper" xmlns:m="https://infotjeneste.uni-c.dk" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  25.         <xsl:if test="'~drv.data.opus.ret~' = 'true'">
  26.  
  27.             <xsl:variable name="lMANumber" select="add-attr[@attr-name='xAttrMANumber']/value"/>   
  28.             <xsl:if test="$lMANumber">
  29.                 <xsl:message>#### Calling Prepare Employments Communication Data Template ####</xsl:message>
  30.                 <xsl:call-template name="PrepareEmploymentCommunicationData">
  31.                     <xsl:with-param name="lMANumber" select="$lMANumber"/>
  32.                 </xsl:call-template>
  33.             </xsl:if>  
  34.         </xsl:if>
  35.         <xsl:if test="'~drv.data.opus.ret~' != 'true'">
  36.             <xsl:message>#### Not calling Prepare Employments Communication Data Template since the GCV is set to false ####</xsl:message>
  37.         </xsl:if>
  38.     </xsl:template>
  39.  
  40.     <!-- ############################################### -->
  41.     <!-- Prepare Employments Communication Data Template -->
  42.     <!-- ############################################### -->
  43.     <xsl:template name="PrepareEmploymentCommunicationData" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  44.  
  45.         <xsl:param name="lMANumber"/>
  46.  
  47.         <xsl:message>#### Driver document MANumber: <xsl:value-of select="$lMANumber"/> ####
  48.         </xsl:message>
  49.         <xsl:variable name="lCN" select="add-attr[@attr-name='cn']/value"/>
  50.         <xsl:message>#### Driver document CN: <xsl:value-of select="$lCN"/> ####
  51.         </xsl:message>
  52.         <xsl:variable name="lTelephoneNumber" select="add-attr[@attr-name='telephonenumber']/value"/>
  53.         <xsl:message>#### Driver document Telephone Number: <xsl:value-of select="$lTelephoneNumber"/> ####
  54.         </xsl:message>
  55.         <xsl:variable name="lMobile" select="add-attr[@attr-name='mobile']/value"/>
  56.         <xsl:message>#### Driver document Mobile: <xsl:value-of select="$lMobile"/> ####
  57.         </xsl:message>
  58.         <xsl:variable name="lEmail" select="add-attr[@attr-name='mail']/value"/>
  59.         <xsl:message>#### Driver document Mail: <xsl:value-of select="$lEmail"/> ####
  60.         </xsl:message>
  61.         <xsl:variable name="lITBruger" select="add-attr[@attr-name='xAttrITBruger']/value"/>
  62.         <xsl:message>#### Driver document IT Bruger: <xsl:value-of select="$lITBruger"/> ####
  63.         </xsl:message>
  64.         <xsl:variable name="lCurrentDate" select="add-attr[@attr-name='CurrentDate']/value"/>
  65.         <xsl:message>#### Driver document Current date: <xsl:value-of  select="$lCurrentDate"/> ####
  66.         </xsl:message>
  67.  
  68.         <xsl:message>#### Updating Communication Data for MANumber: <xsl:value-of select="$lMANumber"/> ####</xsl:message>
  69.         <xsl:if test="$lCN">
  70.             <xsl:message>#### Updating CN to <xsl:value-of select="$lCN"/> ####</xsl:message>
  71.             <xsl:call-template name="ModifyEmployment">
  72.                 <xsl:with-param name="lMANumber" select="$lMANumber"/>
  73.                 <xsl:with-param name="lValue" select="$lCN"/>
  74.                 <xsl:with-param name="lKommunikationsart" select="'0001'"/>
  75.                 <xsl:with-param name="lCurrentDate" select="$lCurrentDate"/>
  76.             </xsl:call-template>
  77.         </xsl:if>
  78.         <xsl:if test="$lTelephoneNumber">
  79.             <xsl:message>#### Updating TelephoneNumber to <xsl:value-of select="$lTelephoneNumber"/> ####</xsl:message>
  80.             <xsl:call-template name="ModifyEmployment">
  81.                 <xsl:with-param name="lMANumber" select="$lMANumber"/>
  82.                 <xsl:with-param name="lValue" select="$lTelephoneNumber"/>
  83.                 <xsl:with-param name="lKommunikationsart" select="'0020'"/>
  84.                 <xsl:with-param name="lCurrentDate" select="$lCurrentDate"/>
  85.             </xsl:call-template>
  86.         </xsl:if>
  87.         <xsl:if test="$lMobile">
  88.             <xsl:message>#### Updating Mobile to <xsl:value-of select="$lMobile"/> ####</xsl:message>
  89.             <xsl:call-template name="ModifyEmployment">
  90.                 <xsl:with-param name="lMANumber" select="$lMANumber"/>
  91.                 <xsl:with-param name="lValue" select="$lMobile"/>
  92.                 <xsl:with-param name="lKommunikationsart" select="'9021'"/>
  93.                 <xsl:with-param name="lCurrentDate" select="$lCurrentDate"/>
  94.             </xsl:call-template>
  95.         </xsl:if>
  96.         <xsl:if test="$lEmail">
  97.             <xsl:message>#### Updating Email to <xsl:value-of select="$lEmail"/> ####</xsl:message>
  98.             <xsl:call-template name="ModifyEmployment">
  99.                 <xsl:with-param name="lMANumber" select="$lMANumber"/>
  100.                 <xsl:with-param name="lValue" select="$lEmail"/>
  101.                 <xsl:with-param name="lKommunikationsart" select="'0010'"/>
  102.                 <xsl:with-param name="lCurrentDate" select="$lCurrentDate"/>
  103.             </xsl:call-template>
  104.         </xsl:if>
  105.         <xsl:if test="$lITBruger">
  106.             <xsl:message>#### Updating ITBruger to <xsl:value-of select="$lITBruger"/> ####</xsl:message>
  107.             <xsl:call-template name="ModifyEmployment">
  108.                 <xsl:with-param name="lMANumber" select="$lMANumber"/>
  109.                 <xsl:with-param name="lValue" select="$lITBruger"/>
  110.                 <xsl:with-param name="lKommunikationsart" select="'9905'"/>
  111.                 <xsl:with-param name="lCurrentDate" select="$lCurrentDate"/>
  112.             </xsl:call-template>
  113.         </xsl:if>
  114.     </xsl:template>
  115.  
  116.     <!-- ########################################### -->   
  117.     <!-- ####### Modify Employments Template ####### -->
  118.     <!-- ########################################### -->
  119.     <xsl:template name="ModifyEmployment" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  120.         <xsl:param name="lMANumber"/>
  121.         <xsl:param name="lValue"/>
  122.         <xsl:param name="lKommunikationsart"/>
  123.         <xsl:param name="lCurrentDate"/>
  124.         <xsl:message>#### Kommunikationsart for update: <xsl:value-of select="$lKommunikationsart"/> ####</xsl:message>
  125.         <xsl:message>#### Updating with value: <xsl:value-of select="$lValue"/> ####</xsl:message>
  126.         <xsl:variable name="query-modifyEmployment">
  127.             <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:oio:medarbejder:1.0.0" xmlns:urn1="urn:oio:sagdok:3.0.0">
  128.                 <soapenv:Header/>
  129.                 <soapenv:Body>
  130.                     <urn:RetInput>
  131.                         <urn1:ModtagerRef>
  132.                             <urn1:UUIDIdentifikator/>
  133.                             <urn1:URNIdentifikator>urn:oio:kmd:lpe:modtager:<xsl:value-of select="'~drv.data.opus.customerid~'"/>
  134.                             </urn1:URNIdentifikator>
  135.                         </urn1:ModtagerRef>
  136.                         <urn1:MedarbejderRef>
  137.                             <urn1:UUIDIdentifikator/>
  138.                             <urn1:URNIdentifikator>urn:oio:kmd:lpe:medarbejder:<xsl:value-of select="$lMANumber"/>
  139.                             </urn1:URNIdentifikator>
  140.                         </urn1:MedarbejderRef>
  141.                         <urn:AttributListe>
  142.                             <urn:Egenskaber>
  143.                                 <xsl:if test="$lValue">
  144.                                     <urn:Kommunikation>
  145.                                         <urn:Gyldighedsstart>
  146.                                             <xsl:value-of select="$lCurrentDate"/>
  147.                                         </urn:Gyldighedsstart>
  148.                                         <urn:Gyldighedsstop>9999-12-31</urn:Gyldighedsstop>
  149.                                         <urn:Sekvensnummer>000</urn:Sekvensnummer>
  150.                                         <urn:Kommunikationsart>
  151.                                             <xsl:value-of select="$lKommunikationsart"/>
  152.                                         </urn:Kommunikationsart>
  153.                                         <urn:KommunikationsID>
  154.                                             <xsl:value-of select="$lValue"/>
  155.                                         </urn:KommunikationsID>
  156.                                     </urn:Kommunikation>
  157.                                 </xsl:if>
  158.                             </urn:Egenskaber>
  159.                         </urn:AttributListe>
  160.                     </urn:RetInput>
  161.                 </soapenv:Body>
  162.             </soapenv:Envelope>
  163.         </xsl:variable>
  164.  
  165.         <xsl:variable name="result-modifyEmployment" select="query:query($destQueryProcessor,$query-modifyEmployment)"/>
  166.  
  167.         <xsl:if test="$result-modifyEmployment//ns1:StandardRetur//ns1:StatusKode=0" xmlns:ns1="urn:oio:sagdok:3.0.0">
  168.             <xsl:message>#### Modify Employment with MANumber: <xsl:value-of select="$lMANumber"/> on kommunikationsart: <xsl:value-of select="$lKommunikationsart"/> with value: <xsl:value-of select="$lValue"/> was successful. ####</xsl:message>
  169.         </xsl:if>
  170.         <xsl:if test="$result-modifyEmployment//ns1:StandardRetur//ns1:StatusKode=101" xmlns:ns1="urn:oio:sagdok:3.0.0">
  171.             <xsl:message>#### Modify Employment with MANumber: <xsl:value-of select="$lMANumber"/> on kommunikationsart: <xsl:value-of select="$lKommunikationsart"/> with value: <xsl:value-of select="$lValue"/> was unsuccessful. This can be because the value attempted to be set is empty, and the value is already empty in OPUS. This results in error 101. If the value attempted to be set is CN (kommunikationsart 0001) and this value already exists on another employment, the call results in an error aswell. This might be because of data inconsistence (the value is on an employment it was not expected to be on). ####</xsl:message>
  172.         </xsl:if>
  173.  
  174.     </xsl:template>
  175.  
  176.     <xsl:template match="node()|@*">
  177.         <xsl:copy>
  178.             <xsl:apply-templates select="node()|@*"/>
  179.         </xsl:copy>
  180.     </xsl:template>
  181. </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement