YFTH#57022 -- Implementatie Thales voor Yask Facilitymanagement.
svn path=/Website/branches/v2019.1/; revision=42243
This commit is contained in:
141
CUST/YFTH/import/UnicaStatusResponse.js
Normal file
141
CUST/YFTH/import/UnicaStatusResponse.js
Normal file
@@ -0,0 +1,141 @@
|
||||
// UnicaStatusResponse.js
|
||||
// Haalt statuswijzigingen op van Unica.
|
||||
//
|
||||
// $Revision$
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
var str = WScript.Arguments(0); // udlpath
|
||||
var prs_bedrijf_key = WScript.Arguments(1); // prs_bedrijf_key
|
||||
var fac_update_opdr_url = WScript.Arguments(2);
|
||||
var username = "";
|
||||
var wachtwoord = "";
|
||||
|
||||
|
||||
|
||||
function GetUnicaStatus()
|
||||
{
|
||||
var XMLReq ="<?xml version='1.0'?>"
|
||||
+"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:unic='http://unica.nl/'>"
|
||||
+" <soapenv:Header>"
|
||||
+" <unic:Authentication>"
|
||||
+" <unic:username>" + username + "</unic:username>"
|
||||
+" <unic:password>" + wachtwoord + "</unic:password>"
|
||||
+" </unic:Authentication>"
|
||||
+" </soapenv:Header>"
|
||||
+" <soapenv:Body>"
|
||||
+" <unic:getRegistrationStatusXML>"
|
||||
+" <unic:from>"+ laatste_sync +"</unic:from>"
|
||||
+" <unic:to>"+ nieuwe_sync +"</unic:to>"
|
||||
+" <unic:all>true</unic:all>"
|
||||
+" </unic:getRegistrationStatusXML>"
|
||||
+" </soapenv:Body>"
|
||||
+"</soapenv:Envelope>"
|
||||
|
||||
WScript.Echo("Bericht = " + XMLReq);
|
||||
|
||||
var objXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0")
|
||||
|
||||
objXMLHTTP.open("POST", mldorder_adres, false);
|
||||
objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
|
||||
objXMLHTTP.send(XMLReq);
|
||||
|
||||
WScript.Echo("Ophalen status: " + objXMLHTTP.status);
|
||||
dataReceived = false;
|
||||
|
||||
if (objXMLHTTP.status==200)
|
||||
{
|
||||
WScript.Echo("Gelukt, status = " + objXMLHTTP.status);
|
||||
responseText = "" + objXMLHTTP.responseText;
|
||||
WScript.Echo("responseText = " + responseText);
|
||||
url = fac_update_opdr_url;
|
||||
WScript.Echo("url = " + url);
|
||||
XMLReq = responseText;
|
||||
|
||||
// Resultaat aanbieden aan de opdr_soap_api
|
||||
objXMLHTTP.open("POST", url, false);
|
||||
objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
|
||||
objXMLHTTP.send(XMLReq);
|
||||
|
||||
WScript.Echo("Status: " + objXMLHTTP.status);
|
||||
WScript.Echo("StatusText: " + objXMLHTTP.statusText);
|
||||
WScript.Echo("Result: " + objXMLHTTP.responseText);
|
||||
|
||||
if (objXMLHTTP.status == 200)
|
||||
{
|
||||
sql = "UPDATE prs_kenmerklink SET prs_kenmerklink_waarde = '" + nieuwe_sync + "' WHERE prs_kenmerklink_key = " + prs_kenmerklink_key;
|
||||
WScript.Echo (sql);
|
||||
Oracle.Execute(sql);
|
||||
dataReceived = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
WScript.Echo("Mislukt, status = " + objXMLHTTP.status);
|
||||
WScript.Echo(objXMLHTTP.statusText);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WScript.Echo("Mislukt, status = " + objXMLHTTP.status);
|
||||
WScript.Echo(objXMLHTTP.statusText);
|
||||
}
|
||||
return dataReceived;
|
||||
}
|
||||
|
||||
|
||||
var udlstr = 'File Name='+str;
|
||||
var Oracle = new ActiveXObject("ADODB.Connection");
|
||||
Oracle.Open(udlstr);
|
||||
|
||||
var sql = "ALTER SESSION SET nls_territory='AMERICA'";
|
||||
Oracle.Execute(sql)
|
||||
|
||||
sql = "SELECT prs_bedrijf_naam, "
|
||||
+ " prs_bedrijfadres_URL, "
|
||||
+ " DECODE ( prs_kenmerklink_waarde, null, null, prs_kenmerklink_waarde) laatste_sync,"
|
||||
+ " TO_CHAR ( "
|
||||
+ " LEAST ( "
|
||||
+ " TO_DATE ( "
|
||||
+ " DECODE (prs_kenmerklink_waarde, "
|
||||
+ " NULL, NULL, "
|
||||
+ " prs_kenmerklink_waarde), "
|
||||
+ " 'yyyy-mm-dd hh24:mi:ss') "
|
||||
+ " + 4 / 24, " // Indien het interval te groot wordt kiezen we voor een interval van 4 uur.
|
||||
+ " SYSDATE - (1 / 96)), " // We kiezen een kwartier marge om tijdsverschillen tussen servers op te vangen.
|
||||
+ " 'yyyy-mm-dd hh24:mi:ss') nieuwe_sync, "
|
||||
+ " prs_kenmerklink_key,"
|
||||
+ " ba.prs_bedrijfadres_username, "
|
||||
+ " ba.prs_bedrijfadres_password "
|
||||
+ " FROM prs_bedrijf b, prs_kenmerklink kl, prs_bedrijfadres ba"
|
||||
+ " WHERE b.prs_bedrijf_key = " + prs_bedrijf_key
|
||||
+ " AND b.prs_bedrijf_key = ba.prs_bedrijf_key"
|
||||
+ " AND ba.prs_bedrijfadres_type = 'B'" // type B wordt gebruikt voor statusterugkoppelingen
|
||||
+ " AND b.prs_bedrijf_key = kl.prs_link_key"
|
||||
+ " AND kl.prs_kenmerk_key = 1"; // timestamp laatste synchronisatie yyyy-mm-dd hh24:mi:ss
|
||||
|
||||
WScript.Echo (sql);
|
||||
|
||||
WScript.Echo(new Date());
|
||||
try
|
||||
{
|
||||
var oRs = Oracle.Execute(sql);
|
||||
|
||||
mldorder_adres = "" + oRs("prs_bedrijfadres_URL").Value;
|
||||
laatste_sync = oRs("laatste_sync").Value;
|
||||
nieuwe_sync = oRs("nieuwe_sync").Value;
|
||||
username = oRs("prs_bedrijfadres_username").Value;
|
||||
wachtwoord = oRs("prs_bedrijfadres_password").Value;
|
||||
prs_kenmerklink_key = oRs("prs_kenmerklink_key").Value;
|
||||
WScript.Echo("Inlezen statusberichten van bedrijf: " + oRs("prs_bedrijf_naam").Value + " via url: " + mldorder_adres)
|
||||
oRs.close();
|
||||
|
||||
if (GetUnicaStatus()) WScript.Quit(0);
|
||||
else WScript.Quit(1);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
WScript.Echo("Serieuze fout in UnicaStatusResponse.js: " + e.description)
|
||||
WScript.Quit(1);
|
||||
}
|
||||
4
CUST/YFTH/import/get_unica_status.bat
Normal file
4
CUST/YFTH/import/get_unica_status.bat
Normal file
@@ -0,0 +1,4 @@
|
||||
Echo Starten get_unica_status.js
|
||||
|
||||
cscript .\UnicaStatusResponse.js ../oracle.udl 7264 "https://yfth.facilitor.nl/default.asp?API=UNICA2OPDR&APIKEY=WuklZ5VG6Ebat2qsymXwgPC8uvNZWKf6">> gen_import.log
|
||||
|
||||
Reference in New Issue
Block a user