STAM#50268 Koppeling met Topdesk (JSON connector)
svn path=/Website/branches/v2019.1/; revision=42648
This commit is contained in:
@@ -67,7 +67,7 @@ ANONYMOUS_Allowed = 1;
|
||||
break;
|
||||
}
|
||||
topdesk_url = topdesk_baseurl + topdesk_url;
|
||||
__DoLog("URL to TOPdesk: " + topdesk_url);
|
||||
__Log("URL to TOPdesk: " + topdesk_url);
|
||||
var errmsg = "";
|
||||
var status = -1;
|
||||
var data = {};
|
||||
@@ -211,7 +211,7 @@ ANONYMOUS_Allowed = 1;
|
||||
}
|
||||
|
||||
// *************************************************************************
|
||||
__DoLog("*> TOPdesk.api");
|
||||
__Log("*> TOPdesk.api");
|
||||
var obj_topdesk = {};
|
||||
var facilitor = load_headerdata();
|
||||
obj_topdesk = facilitor.topdesk;
|
||||
@@ -234,7 +234,7 @@ ANONYMOUS_Allowed = 1;
|
||||
for (var i = 0; i < lookup_list.lookup.length; i++)
|
||||
{
|
||||
var z_info = lookup_list.lookup[i];
|
||||
__DoLog(z_info); // Wat zoek ik waar op en waar zet ik het resultaat weer neer.
|
||||
__Log(z_info); // Wat zoek ik waar op en waar zet ik het resultaat weer neer.
|
||||
obj_topdesk.lookup = lookup_list.lookup[i]; // Voeg de parameters voor lookup toe.
|
||||
// doe een connectTopdesk met een aanvraag voor gegevens (lookup is altijd GET!)
|
||||
var z_result = connectTopdesk("GET", z_info.actie, obj_topdesk);
|
||||
@@ -254,11 +254,11 @@ ANONYMOUS_Allowed = 1;
|
||||
}
|
||||
}
|
||||
|
||||
__DoLog(obj_topdesk);
|
||||
__Log(obj_topdesk);
|
||||
var result = connectTopdesk(obj_topdesk.info.methode, obj_topdesk.info.actie, obj_topdesk);
|
||||
update_opdracht(obj_topdesk.info.methode, obj_topdesk.info.actie, facilitor.melding, result);
|
||||
log_result(result);
|
||||
__DoLog("*< TOPdesk.api");
|
||||
__Log("*< TOPdesk.api");
|
||||
Response.Write(JSON.stringify(result));
|
||||
//Response.End;
|
||||
|
||||
|
||||
@@ -1,96 +1,188 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-15"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output method="xml" indent="yes"/>
|
||||
<xsl:output method="xml" encoding="utf-8" indent="yes"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<facilitor>
|
||||
<xsl:copy>
|
||||
<xsl:copy-of select="facilitor/header"/>
|
||||
</xsl:copy>
|
||||
<melding>
|
||||
<mld_melding_key><xsl:value-of select="facilitor/opdracht/melding/key"/></mld_melding_key>
|
||||
<opdracht>
|
||||
<mld_opdr_key><xsl:value-of select="facilitor/opdracht/key"/></mld_opdr_key>
|
||||
</opdracht>
|
||||
<xsl:copy>
|
||||
<xsl:copy-of select="facilitor/header"/>
|
||||
</xsl:copy>
|
||||
<melding>
|
||||
<mld_melding_key>
|
||||
<xsl:value-of select="facilitor/opdracht/melding/key"/>
|
||||
</mld_melding_key>
|
||||
<opdracht>
|
||||
<mld_opdr_key>
|
||||
<xsl:value-of select="facilitor/opdracht/key"/>
|
||||
</mld_opdr_key>
|
||||
</opdracht>
|
||||
</melding>
|
||||
<topdesk>
|
||||
<!-- De vaste waarden voor toegang tot Topdesk: -->
|
||||
<topdesk>
|
||||
<!-- De vaste waarden voor toegang tot Topdesk: -->
|
||||
<xsl:variable name="topdesk_user"></xsl:variable>
|
||||
<xsl:variable name="topdesk_key"></xsl:variable>
|
||||
<xsl:variable name="topdesk_url"></xsl:variable>
|
||||
|
||||
<!-- de basisgegevens om een melding aan te kunnen maken in Topdesk: -->
|
||||
<xsl:variable name="opdrachtomschrijving"></xsl:variable>
|
||||
<xsl:variable name="soortmelding_id"></xsl:variable>
|
||||
<xsl:variable name="categorie_id"></xsl:variable>
|
||||
<xsl:variable name="subcategorie_id"></xsl:variable>
|
||||
<xsl:variable name="topdesk_key"></xsl:variable>
|
||||
<xsl:variable name="topdesk_url"></xsl:variable>
|
||||
|
||||
<!-- ******** -->
|
||||
<xsl:variable name="v_methode">
|
||||
<xsl:call-template name="get_methode">
|
||||
<xsl:with-param name="opdracht" select="facilitor/opdracht"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="v_actie">
|
||||
<xsl:call-template name="get_actie">
|
||||
<xsl:with-param name="opdracht" select="facilitor/opdracht"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<info>
|
||||
<api_user><xsl:value-of select="$topdesk_user"/></api_user>
|
||||
<api_key><xsl:value-of select="$topdesk_key"/></api_key>
|
||||
<base_url><xsl:value-of select="$topdesk_url"/></base_url>
|
||||
<methode><xsl:value-of select="$v_methode"/></methode>
|
||||
<actie><xsl:value-of select="$v_actie"/></actie>
|
||||
</info>
|
||||
<data>
|
||||
<xsl:variable name="prefix" select="facilitor/opdracht/melding/discipline/srtdiscipline/prefix"/>
|
||||
<xsl:variable name="mldkey" select="facilitor/opdracht/melding/key"/>
|
||||
<xsl:variable name="volgnr" select="facilitor/opdracht/bedrijfopdr_volgnr"/>
|
||||
|
||||
<briefDescription>
|
||||
<xsl:value-of select="facilitor/opdracht/melding/stdmelding/omschrijving"/>
|
||||
</briefDescription>
|
||||
<request><xsl:value-of select="$opdrachtomschrijving"/></request>
|
||||
<caller>
|
||||
<dynamicName><xsl:value-of select="$topdesk_user"/></dynamicName>
|
||||
</caller>
|
||||
<externalNumber>
|
||||
<xsl:value-of select="concat($prefix,$mldkey,'/',$volgnr)"/>
|
||||
</externalNumber>
|
||||
<callType>
|
||||
<id><xsl:value-of select="$soortmelding_id"/></id>
|
||||
</callType>
|
||||
<category>
|
||||
<id><xsl:value-of select="$categorie_id"/></id>
|
||||
</category>
|
||||
<subcategory>
|
||||
<id><xsl:value-of select="$subcategorie_id"/></id>
|
||||
</subcategory>
|
||||
</data>
|
||||
</topdesk>
|
||||
<xsl:variable name="v_methode">
|
||||
<xsl:call-template name="get_methode">
|
||||
<xsl:with-param name="opdracht" select="facilitor/opdracht"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="v_actie">
|
||||
<xsl:call-template name="get_actie">
|
||||
<xsl:with-param name="opdracht" select="facilitor/opdracht"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<info>
|
||||
<api_user>
|
||||
<xsl:value-of select="$topdesk_user"/>
|
||||
</api_user>
|
||||
<api_key>
|
||||
<xsl:value-of select="$topdesk_key"/>
|
||||
</api_key>
|
||||
<base_url>
|
||||
<xsl:value-of select="$topdesk_url"/>
|
||||
</base_url>
|
||||
<methode>
|
||||
<xsl:value-of select="$v_methode"/>
|
||||
</methode>
|
||||
<actie>
|
||||
<xsl:value-of select="$v_actie"/>
|
||||
</actie>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$v_actie = 'incident'">
|
||||
<xsl:call-template name="getInfoIncident"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$v_actie = 'change'">
|
||||
<xsl:call-template name="getInfoChange"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</info>
|
||||
<data>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$v_actie = 'incident'">
|
||||
<xsl:call-template name="getDataIncident">
|
||||
<xsl:with-param name="topdesk_user" select="$topdesk_user"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$v_actie = 'change'">
|
||||
<xsl:call-template name="getDataChange">
|
||||
<xsl:with-param name="topdesk_user" select="$topdesk_user"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</data>
|
||||
</topdesk>
|
||||
</facilitor>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="get_methode">
|
||||
<!-- Zoek de meest recente actie van de opdracht -->
|
||||
<xsl:param name="p_opdracht"/>
|
||||
<xsl:for-each select="facilitor/opdracht/tracking/track">
|
||||
<xsl:sort select="datum/timestamp" order="descending" data-type="number"/>
|
||||
<xsl:if test="position() = 1">
|
||||
<xsl:choose>
|
||||
<xsl:when test="code = 'ORDNEW'">POST</xsl:when>
|
||||
<xsl:otherwise>GET</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:param name="p_opdracht"/>
|
||||
<xsl:for-each select="facilitor/opdracht/tracking/track[code != 'ORDMLE']">
|
||||
<xsl:sort select="datum/timestamp" order="descending" data-type="number"/>
|
||||
<xsl:if test="position() = 1">
|
||||
<xsl:choose>
|
||||
<xsl:when test="code = 'ORDNEW'">POST</xsl:when>
|
||||
<xsl:otherwise>GET</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="get_actie">
|
||||
<!-- Welke API-opdracht moet worden uitgevoerd -->
|
||||
<xsl:param name="p_opdracht"/>
|
||||
<xsl:text>incident</xsl:text>
|
||||
<!-- Welke API-opdracht moet worden uitgevoerd: altijd in kleine letters -->
|
||||
<xsl:param name="p_opdracht"/>
|
||||
|
||||
<xsl:variable name="v_opdracht" select="facilitor/opdracht/opdrachttype/omschrijving"/>
|
||||
<xsl:value-of select="translate($v_opdracht, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ<59><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޟ<EFBFBD><DE9F><EFBFBD>', 'abcdefghijklmnopqrstuvwxyz<79><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')" />
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="get_template_id">
|
||||
<xsl:variable name="stdmelding_oms" select="facilitor/opdracht/melding/stdmelding/omschrijving"/>
|
||||
|
||||
<xsl:choose>
|
||||
<xsl:when test="$stdmelding_oms = 'Non standard Change IT IM org'">XX NNNNN</xsl:when>
|
||||
<!-- 85253d50-fc91-421a-ac23-b8791f220ce2 ???????? SMCSSR001 - CMDB aanpassing -->
|
||||
<xsl:when test="$stdmelding_oms = 'Non standard Change IT IM'">CT 36327</xsl:when>
|
||||
<!-- "id": "b3cbe6d7-648a-41bb-adbc-322612833e1c","number": "CT 36327", "briefDescription": "Test - CAT2 - Category 2 change" -->
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
**** Incident Management data
|
||||
-->
|
||||
<xsl:template name="getInfoIncident">
|
||||
<lookup_list>
|
||||
</lookup_list>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="getDataIncident">
|
||||
<xsl:param name="topdesk_user"/>
|
||||
|
||||
<!-- de basisgegevens om een melding aan te kunnen maken in Topdesk: -->
|
||||
<xsl:variable name="opdrachtomschrijving"></xsl:variable>
|
||||
<xsl:variable name="soortmelding_id"></xsl:variable>
|
||||
<xsl:variable name="categorie_id"></xsl:variable>
|
||||
<xsl:variable name="subcategorie_id"></xsl:variable>
|
||||
|
||||
<xsl:variable name="prefix" select="facilitor/opdracht/melding/discipline/srtdiscipline/prefix"/>
|
||||
<xsl:variable name="mldkey" select="facilitor/opdracht/melding/key"/>
|
||||
<xsl:variable name="volgnr" select="facilitor/opdracht/bedrijfopdr_volgnr"/>
|
||||
|
||||
<briefDescription>
|
||||
<xsl:value-of select="facilitor/opdracht/melding/onderwerp"/>
|
||||
</briefDescription>
|
||||
<request>
|
||||
<xsl:value-of select="facilitor/opdracht/omschrijving"/>
|
||||
</request>
|
||||
<caller>
|
||||
<dynamicName><xsl:value-of select="$topdesk_user"/></dynamicName>
|
||||
</caller>
|
||||
<externalNumber>
|
||||
<xsl:value-of select="concat($prefix,$mldkey,'/',$volgnr)"/>
|
||||
</externalNumber>
|
||||
<callType>
|
||||
<id>3b4e1c80-be3b-5b35-b6f2-5330a9acdb64</id>
|
||||
</callType>
|
||||
<category>
|
||||
<id>4ae0eeee-88ce-4ae4-bd3e-e0cd8db4b3a8</id>
|
||||
</category>
|
||||
<subcategory>
|
||||
<id>cda26297-78e2-4e58-a71e-9a519878900a</id>
|
||||
</subcategory>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
**** Change Management data, obv mailadres moet de aanvrager bepaald worden
|
||||
-->
|
||||
<xsl:template name="getInfoChange">
|
||||
<lookup_list>
|
||||
<lookup>
|
||||
<actie>person</actie>
|
||||
<qparams>
|
||||
<xsl:value-of select="concat('?email=', facilitor/opdracht/melding/melder/email)"/>
|
||||
</qparams>
|
||||
<src>data[0].id</src>
|
||||
<dest>data.requester.id</dest>
|
||||
</lookup>
|
||||
</lookup_list>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="getDataChange">
|
||||
<xsl:param name="topdesk_user"/>
|
||||
|
||||
<xsl:variable name="prefix" select="facilitor/opdracht/melding/discipline/srtdiscipline/prefix"/>
|
||||
<xsl:variable name="mldkey" select="facilitor/opdracht/melding/key"/>
|
||||
<xsl:variable name="volgnr" select="facilitor/opdracht/bedrijfopdr_volgnr"/>
|
||||
|
||||
<template><number><xsl:call-template name="get_template_id"/></number></template>
|
||||
<briefDescription><xsl:value-of select="facilitor/opdracht/melding/stdmelding/omschrijving"/></briefDescription>
|
||||
<request><xsl:value-of select="facilitor/opdracht/omschrijving"/></request>
|
||||
<requester><id/></requester>
|
||||
<externalNumber><xsl:value-of select="concat($prefix,$mldkey,'/',$volgnr)"/></externalNumber>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
Reference in New Issue
Block a user