Files
Facilitor/CUST/YKPN/xsl/strukton.xsl
Arthur Egberink 720dc5b349 YKPN#40922 -- Storingen KPN koppeling met Strukton
svn path=/Website/branches/v2016.3/; revision=34252
2017-06-14 06:42:45 +00:00

178 lines
8.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<xsl:output method="xml" encoding="utf-8"/>
<xsl:decimal-format name="european" decimal-separator="." grouping-separator=","/>
<xsl:param name="mode"/>
<!-- Maken 'bon' (XML) -->
<xsl:template match="opdracht">
<xsl:variable name="prioriteit">
<xsl:choose>
<xsl:when test="melding/spoed=1">Calamiteit</xsl:when>
<xsl:when test="melding/spoed=2">Hoog</xsl:when>
<xsl:when test="melding/spoed=3">Normaal</xsl:when>
<xsl:when test="melding/spoed=4">Laag</xsl:when>
<xsl:when test="melding/spoed=5">Hold</xsl:when>
<xsl:otherwise>
Onbekend
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="ServiceRequestCreate">
<xsl:element name="ServiceRequest">
<xsl:element name="CustomerID"><xsl:value-of select="uitvoerende/bedrijf/overeenkomst_nr"/></xsl:element>
<xsl:element name="ReferenceID">
<xsl:value-of select="concat(melding/discipline/srtdiscipline/prefix, melding/key)"/>/<xsl:value-of select=" bedrijfopdr_volgnr"/>
</xsl:element>
<xsl:element name="Reference"><xsl:value-of select="melding/stdmelding/omschrijving"/>-<xsl:value-of select="opdrachttype/omschrijving"/></xsl:element>
<xsl:element name="TypeCode">
<xsl:choose>
<xsl:when test="opdrachttype/omschrijving='Uitvoering melding'">2</xsl:when>
<xsl:when test="opdrachttype/omschrijving='Uitvoering opdracht'">5</xsl:when>
<xsl:when test="opdrachttype/omschrijving='Uitvoering offerte'">5</xsl:when>
<xsl:otherwise>3</xsl:otherwise>
</xsl:choose>
</xsl:element>
<xsl:element name="RequestedProcessingPeriod">
<xsl:element name="EndDateTime">
<xsl:value-of select="einddatum/jaar"/>-<xsl:value-of select="einddatum/maand"/>-<xsl:value-of select="einddatum/maand"/>T<xsl:value-of select="einddatum/tijd"/>:00</xsl:element>
<xsl:element name="EscalationToOperator">false</xsl:element>
</xsl:element>
<xsl:element name="IssueCategoryID">
<xsl:value-of select="melding/discipline/key"/>
</xsl:element>
<xsl:element name="IssueCategory">
<xsl:value-of select="melding/discipline/omschrijving"/>
</xsl:element>
<xsl:element name="IssueSubCategoryID">
<xsl:value-of select="melding/stdmelding/key"/>
</xsl:element>
<xsl:element name="IssueSubCategory">
<xsl:value-of select="melding/stdmelding/omschrijving"/>
</xsl:element>
<xsl:element name="Description">
Gebouw: <xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/omschrijving"/>
Verdieping: <xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/verdieping/omschrijving"/>
Ruimte: <xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/verdieping/ruimte/nr"/>
Omschrijving:<xsl:value-of select="omschrijving"/>
</xsl:element>
<xsl:element name="Monitoring">
<xsl:element name="StartDateTime">
<xsl:for-each select="tracking/track">
<xsl:sort select="datum/timestamp" order="ascending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="datum/jaar"/>-<xsl:value-of select="datum/maand"/>-<xsl:value-of select="datum/dag"/>T<xsl:value-of select="datum/tijd"/>:00
</xsl:if>
</xsl:for-each>
</xsl:element>
<xsl:element name="EndDateTime">
<xsl:value-of select="einddatum/jaar"/>-<xsl:value-of select="einddatum/maand"/>-<xsl:value-of select="einddatum/dag"/>T<xsl:value-of select="einddatum/tijd"/>:00</xsl:element>
<xsl:element name="Urgency">
<xsl:value-of select="$prioriteit"/><xsl:if test="$prioriteit != 'Calamiteit'">: <xsl:value-of select="dagen"/> dagen</xsl:if>
</xsl:element>
</xsl:element>
<xsl:element name="Requester">
<xsl:element name="Name">
<xsl:element name="FirstLineName">
<xsl:value-of select="melding/voor/naam_full"/>
</xsl:element>
</xsl:element>
<xsl:element name="Communication">
<xsl:element name="Telephone">
<xsl:value-of select="melding/voor/telefoonnr"/>
</xsl:element>
<xsl:element name="Email">
<xsl:value-of select="melding/voor/email"/>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name="CustomerCoordinator">
<xsl:element name="Name">
<xsl:element name="FirstLineName">
<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/verantwoordelijke/naam_friendly"/>
</xsl:element>
</xsl:element>
<xsl:element name="Communication">
<xsl:element name="Telephone">
<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/verantwoordelijke/telefoonnr"/>
</xsl:element>
<xsl:element name="Email">
<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/verantwoordelijke/email"/>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name="ServiceLocation">
<xsl:element name="LocationID">
<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/kenmerk[@naam='StruktonNummer']"/>
</xsl:element>
<xsl:element name="Location">
<xsl:value-of select="melding/plaats/plaatsaanduiding"/> (<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/omschrijving"/>)
</xsl:element>
<xsl:element name="Address">
<xsl:element name="StreetName">
<xsl:value-of select="melding/plaats/regio/district/locatie/adres"/>
</xsl:element>
<xsl:element name="StreetPostalCode">
<xsl:value-of select="melding/plaats/regio/district/locatie/postcode"/>
</xsl:element>
<xsl:element name="CityName">
<xsl:value-of select="melding/plaats/regio/district/locatie/plaats"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
<!-- Maken 'bon' (XML) -->
<xsl:template match="facilitor">
<xsl:apply-templates select="opdracht"/>
</xsl:template>
<!-- Inpakken 'bon' in SOAP envelope -->
<xsl:template match="SOAPEnvelope">
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<xsl:copy-of select="./node()"/>
</soap:Body>
</soap:Envelope>
</xsl:template>
<!-- Uitpakken SOAP envelope -->
<xsl:template match="soap:Envelope">
<soapResult>
<xsl:copy-of select="soap:Body/node()"/>
</soapResult>
</xsl:template>
<!-- Decoderen XML response -->
<xsl:template match="ServiceRequestStatus">
<Result>
<xsl:value-of select="ErrorLog/TypeID"/>
</Result>
</xsl:template>
<!-- Root -->
<xsl:template match="/">
<xsl:choose>
<xsl:when test="$mode='getExtension'">
<xsl:element name="format">
<!-- Hotelselect gebruikt geen cXML, maar SendFile.cls verwacht wel deze parameter om een XML response in te lezen -->
<xsl:element name="extension">xml</xsl:element>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<!-- door SendFile.cls gebruikt voor maken 'bon' (XML die via SOAP verstuurd wordt) -->
<xsl:apply-templates select="facilitor"/>
<!-- door SendSOAP.cls gebruikt voor inpakken van 'bon' in SOAP envelope -->
<xsl:apply-templates select="SOAPEnvelope"/>
<!-- door SendSOAP.cls gebruikt voor uitpakken van response uit SOAP envelope -->
<xsl:apply-templates select="soap:Envelope"/>
<!-- door SendFile.cls gebruikt voor lezen van status uit gefaalde response (NB: <soapResult> is al door de decode gestript) -->
<xsl:apply-templates select="ServiceRequestStatus"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet><!-- Stylesheet edited using Stylus Studio - (c) 2004-2007. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2007. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2007. Progress Software Corporation. All rights reserved. -->