177 lines
8.1 KiB
XML
177 lines
8.1 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='Storing'">2</xsl:when>
|
|
<xsl:when test="opdrachttype/omschrijving='Regieaanvraag'">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. --> |