BLCC#38235 Strukton-koppeling
svn path=/Website/branches/v2016.2/; revision=31309
This commit is contained in:
216
CUST/BLCC/xsl/strukton.xsl
Normal file
216
CUST/BLCC/xsl/strukton.xsl
Normal file
@@ -0,0 +1,216 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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/" exclude-result-prefixes="soap xsd xsi">
|
||||
<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/leverancier_nr"/></xsl:element-->
|
||||
<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>
|
||||
<!--5=Docket-->
|
||||
<xsl:when test="opdrachttype/key='5'">2</xsl:when>
|
||||
<!--101=Workorder-->
|
||||
<!--xsl:when test="opdrachttype/key='101'">2</xsl:when-->
|
||||
<!--102=Splitorder-->
|
||||
<xsl:when test="opdrachttype/key='102'">4</xsl:when>
|
||||
<!--103=RFQ-->
|
||||
<xsl:when test="opdrachttype/key='103'">3</xsl:when>
|
||||
<!--Bij correcte inrichting 101=Workorder hier enige mogelijkheid!-->
|
||||
<!--xsl:otherwise>
|
||||
<xsl:choose>
|
||||
<xsl:when test="melding/discipline/srtdiscipline/prefix='S'">2</xsl:when>
|
||||
<xsl:otherwise>5</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:otherwise-->
|
||||
<xsl:otherwise>2</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">
|
||||
<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_full"/>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
<xsl:element name="Communication">
|
||||
<xsl:element name="Telephone">
|
||||
<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/verantwoordelijke/mobiel"/>
|
||||
<xsl:if test="not(melding/plaats/regio/district/locatie/gebouw/verantwoordelijke/mobiel)">
|
||||
<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/verantwoordelijke/telefoonnr"/>
|
||||
</xsl:if>
|
||||
</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:variable name="struktoncode">
|
||||
<xsl:choose>
|
||||
<xsl:when test="melding/plaats/regio/district/locatie/terreinsector/kenmerk[@key=1021]!=''">
|
||||
<xsl:value-of select="melding/plaats/regio/district/locatie/terreinsector/kenmerk[@key=1021]"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/kenmerk[@key=1020]"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:element name="ServiceLocation">
|
||||
<xsl:element name="LocationID">
|
||||
<xsl:value-of select="$struktoncode"/>
|
||||
</xsl:element>
|
||||
<xsl:element name="Location">
|
||||
<xsl:value-of select="melding/plaats/plaatsaanduiding"/>
|
||||
</xsl:element>
|
||||
<xsl:element name="Address">
|
||||
<xsl:element name="StreetName">
|
||||
<xsl:choose>
|
||||
<xsl:when test="melding/plaats/regio/district/locatie/terreinsector/key!=''">
|
||||
<xsl:value-of select="melding/plaats/regio/district/locatie/terreinsector/kenmerk[@key=1]"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/afleveradres/bezoek_adres"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:element>
|
||||
<xsl:element name="StreetPostalCode">
|
||||
<xsl:if test="$struktoncode!=''">
|
||||
<xsl:choose>
|
||||
<xsl:when test="melding/plaats/regio/district/locatie/terreinsector/key!=''">
|
||||
<xsl:value-of select="melding/plaats/regio/district/locatie/terreinsector/kenmerk[@key=1]"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/afleveradres/bezoek_postcode"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
</xsl:element>
|
||||
<xsl:element name="CityName">
|
||||
<xsl:choose>
|
||||
<xsl:when test="melding/plaats/regio/district/locatie/terreinsector/key!=''">
|
||||
<xsl:value-of select="melding/plaats/regio/district/locatie/terreinsector/kenmerk[@key=1]"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/afleveradres/bezoek_plaats"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</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>
|
||||
Reference in New Issue
Block a user