UWVA#54444 update aro koppeling. Ook aro.config buiten custfunctions.wsc gehaald.

svn path=/Website/branches/v2019.1/; revision=42806
This commit is contained in:
Jos Groot Lipman
2019-06-03 14:09:19 +00:00
parent a72cd5b8e6
commit 4d99f66dd6
2 changed files with 81 additions and 39 deletions

18
CUST/UWVA/aro.config Normal file
View File

@@ -0,0 +1,18 @@
{
// ARO
ARO_TokenUrl: "https://identity-acc.aroservices.nl/connect/token",
ARO_RevokeUrl: "https://identity-acc.aroservices.nl/connect/revocation",
ARO_RootUrl: "https://acceptatie.agressieregistratieoverheid.nl/api/",
ARO_User: "ARO-facilitor@uwv.nl",
ARO_Pass: "Hx6m$pTuGpR%",
ARO_Basic: "Basic dXd2LmZhY2lsaXRvci5jbGllbnQ6MDc0OGZkYmYtZjdmMy00YjdhLThlZTAtNzBkMTQyNmU3MjMw", // uwv.facilitor.client:0748fdbf-f7f3-4b7a-8ee0-70d1426e7230
ARO_bez_bsn_key: 1, // bez flex to perform ARO-BSN-Check against
ARO_bsnsrt_key: 3, // res srtflex to perform ARO-BSN-Check against
ARO_warnsrt_key: 41, // res srtflex to register ARO-BSN-Check-result (if true)
ARO_mld_bsn_key: 109, // mld flex to perform ARO-BSN-Check against (SpoBiLo)
ARO_mld_warn_key: 115, // mld flex to register ARO-BSN-Check-result (if true)
loglevel: 0 // unused
}

View File

@@ -24,6 +24,9 @@
<property name="safe">
<put/>
</property>
<property name="hookfile">
<put/>
</property>
<!-- methods -->
<method name="bez_postsave">
@@ -54,6 +57,7 @@ function put_Oracle(newValue) {Oracle = newValue};
function put___Log(newValue) {__Log = newValue};
function put___DoLog(newValue) {__DoLog = newValue};
function put_safe(newValue) {safe = newValue};
function put_hookfile(newValue) {hookfile = newValue};
/* methods */
/*
@@ -64,30 +68,34 @@ function put_safe(newValue) {safe = newValue};
*/
/* Dit zijn de enige drie functies die je mag gebruiken */
/* Dit zijn de enige functies/vars die je mag gebruiken */
var Oracle;
var __Log;
var __DoLog;
var safe;
var hookfile;
// ARO
var ARO_RootUrl = "https://www.agressieregistratieoverheid.nl/services/";
// var ARO_RootUrl = "https://acceptatie.agressieregistratieoverheid.nl/services/";
var ARO_User = "ARO-facilitor@uwv.nl";
var ARO_Pass = "G<9k3k)1";
var ARO_bez_bsn_key = 1; // bez flex to perform ARO-BSN-Check against
//var ARO_bez_warn_key = 2; // bez flex to register ARO-BSN-Check-result (if true)
var ARO_bsnsrt_key = 3; // res srtflex to perform ARO-BSN-Check against
var ARO_warnsrt_key = 41; // res srtflex to register ARO-BSN-Check-result (if true)
//var ARO_mld_bsnsrt_key = 105; // mld srtflex to perform ARO-BSN-Check against
var ARO_mld_bsn_key = 109; // mld flex to perform ARO-BSN-Check against (SpoBiLo)
//var ARO_mld_warnsrt_key = 11; // mld srtflex to register ARO-BSN-Check-result (if true)
var ARO_mld_warn_key = 115; // mld flex to register ARO-BSN-Check-result (if true)
// Configuratie in ./aro.config
UWVA_ARO =
{
http: function _http(method, url, data)
config: null,
readconfig: function()
{
if (!UWVA_ARO.config)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var curDir = hookfile; // ...../cust/uwva/custfunctions.wsc
var inifile = fso.GetParentFolderName(curDir) + "\\aro.config";
var f = fso.OpenTextFile(inifile, 1); // ForReading
UWVA_ARO.config = eval('(' + f.ReadAll() + ')')
f.Close();
UWVA_ARO.config.loglevel = UWVA_ARO.config.loglevel || 0;
}
},
http: function _http(method, url, data, Authorization)
{
var http_request = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0");
// Het mag niet te lang duren!
@@ -97,12 +105,18 @@ var ARO_mld_warn_key = 115; // mld flex to register ARO-BSN-Check-result (if t
var lReceive = 2 * 1000; // 1 seconde wordt in de praktijk te vaak overschreden
http_request.setTimeouts(lResolve, lConnect, lSend, lReceive);
http_request.open(method, url, false); // Synchroon nog even
http_request.setRequestHeader("Content-Type", "application/json");
http_request.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
if (Authorization)
{
__Log ("Adding header Authorization: " + Authorization);
http_request.setRequestHeader ("Authorization", Authorization);
}
__Log(method + " ARO: " + url);
if (data)
__Log("Data: " + data);
http_request.send(data);
if (http_request.status != 200)
if (http_request.status < 200 || http_request.status > 299)
{
__DoLog("ARO: " + http_request.status + "<br>" + http_request.statusText, "#FF0000");
return null;
@@ -112,26 +126,31 @@ var ARO_mld_warn_key = 115; // mld flex to register ARO-BSN-Check-result (if t
return http_request.responseText;
},
Check: function _Check(bsn, RootUrl, User, Pass)
Check: function _Check(bsn)
{
try
{
var data = '{"username": "' + User + '", "password": "' + Pass + '"}';
var tokentxt = UWVA_ARO.http("POST", RootUrl + "AuthenticationService.svc/RequestToken", data);
var data = "grant_type=password"
+ "&username=" + UWVA_ARO.config.ARO_User
+ "&password=" + UWVA_ARO.config.ARO_Pass
+ "&scope=aro.api";
var tokentxt = UWVA_ARO.http("POST", UWVA_ARO.config.ARO_TokenUrl, data, UWVA_ARO.config.ARO_Basic);
if (!tokentxt)
return false;
var token = eval('(' + tokentxt + ')').d;
var bearerToken = eval('(' + tokentxt + ')').access_token;
var tmstart = (new Date).getTime();
var lookuptxt = UWVA_ARO.http("GET", RootUrl + "IncidentService.svc/TokenizedRegistratieLookupByBsn?bsn="+bsn+"&guid="+token, "");
var lookuptxt = UWVA_ARO.http("GET", UWVA_ARO.config.ARO_RootUrl + "incidents/lookup-by-bsn?bsn=" + safe.url(bsn), "", "Bearer " + bearerToken);
var tmend = (new Date).getTime();
if (tmend - tmstart > 1000)
__DoLog("Slow ARO check took " + (tmend - tmstart) + "ms", "#FFFF00");
if (!lookuptxt)
return false;
var lookup = eval('(' + lookuptxt + ')').d;
var data = '{"guid\": "' + token + '"}';
UWVA_ARO.http("POST", RootUrl + "AuthenticationService.svc/ExpireToken", data);
var lookup = eval('(' + lookuptxt + ')').Result;
var data = "token=" + bearerToken;
UWVA_ARO.http("POST", UWVA_ARO.config.ARO_RevokeUrl, data, UWVA_ARO.config.ARO_Basic);
return { success: true, lookup: lookup };
}
catch (e)
@@ -144,12 +163,13 @@ var ARO_mld_warn_key = 115; // mld flex to register ARO-BSN-Check-result (if t
bez_postsave = function (bezkeyArr, pResult)
{
UWVA_ARO.readconfig();
for (var i = 0; i < bezkeyArr.length; i++)
{
var sql = "SELECT bkw.bez_kenmerkwaarde_waarde"
+ " , bkw.bez_kenmerkwaarde_aanmaak"
+ " FROM bez_kenmerkwaarde bkw"
+ " WHERE bkw.bez_kenmerk_key = " + ARO_bez_bsn_key // BSN-nummer
+ " WHERE bkw.bez_kenmerk_key = " + UWVA_ARO.config.ARO_bez_bsn_key // BSN-nummer
+ " AND bkw.bez_bezoekers_key = " + bezkeyArr[i];
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
@@ -163,7 +183,7 @@ bez_postsave = function (bezkeyArr, pResult)
__Log("BSN " + bsn + " niet opnieuw controleren, is al gebeurd om: " + aanmaak);
continue; // Volgende bezoeker
}
var chk = UWVA_ARO.Check(bsn, ARO_RootUrl, ARO_User, ARO_Pass);
var chk = UWVA_ARO.Check(bsn);
var sql = "UPDATE bez_bezoekers SET bez_bezoekers_opmerking = NULL WHERE bez_bezoekers_key = " + bezkeyArr[i];
Oracle.Execute(sql);
if (!chk.success)
@@ -173,7 +193,9 @@ bez_postsave = function (bezkeyArr, pResult)
}
// break; // De (eerste) bezoeker geeft een timeout. Dan de rest niet meer doen.
// UWVA#56130: aro/bsn check aanpassen dat check wel gebeurt, maar bsn niet opslaat
var sql = "DELETE bez_kenmerkwaarde WHERE bez_kenmerk_key = 1 AND bez_bezoekers_key = " + bezkeyArr[i];
var sql = "DELETE bez_kenmerkwaarde"
+ " WHERE bez_kenmerk_key = " + UWVA_ARO.config.ARO_bez_bsn_key
+ " AND bez_bezoekers_key = " + bezkeyArr[i];
Oracle.Execute(sql);
if (chk.success && chk.lookup)
{
@@ -197,11 +219,12 @@ bez_postsave = function (bezkeyArr, pResult)
res_postsave = function (rsv_ruimte_key, pResult)
{
if (ARO_warnsrt_key < 0)
UWVA_ARO.readconfig();
if (UWVA_ARO.config.ARO_warnsrt_key < 0)
return true;
var sql = "SELECT rk.res_kenmerk_key"
+ " FROM res_kenmerk rk, res_rsv_ruimte rrr"
+ " WHERE rk.res_srtkenmerk_key = " + ARO_warnsrt_key // Waarschuwing flex kenmerk
+ " WHERE rk.res_srtkenmerk_key = " + UWVA_ARO.config.ARO_warnsrt_key // Waarschuwing flex kenmerk
+ " AND rrr.res_rsv_ruimte_key = " + rsv_ruimte_key
+ " AND rrr.res_activiteit_key = rk.res_activiteit_key";
var oRs = Oracle.Execute(sql);
@@ -213,14 +236,14 @@ res_postsave = function (rsv_ruimte_key, pResult)
var warn_key = oRs("res_kenmerk_key").Value;
var sql = "SELECT LPAD(rkw.res_kenmerkreservering_waarde,9,'0') res_kenmerkreservering_waarde"
+ " FROM res_kenmerk rk, res_kenmerkwaarde rkw"
+ " WHERE rk.res_srtkenmerk_key = " + ARO_bsnsrt_key // BSN-nummer
+ " WHERE rk.res_srtkenmerk_key = " + UWVA_ARO.config.ARO_bsnsrt_key // BSN-nummer
+ " AND rk.res_kenmerk_key = rkw.res_kenmerk_key"
+ " AND rkw.res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
var bsn = oRs("res_kenmerkreservering_waarde").Value;
var chk = UWVA_ARO.Check(bsn, ARO_RootUrl, ARO_User, ARO_Pass);
var chk = UWVA_ARO.Check(bsn);
var sql = "DELETE FROM res_kenmerkwaarde rkw"
+ " WHERE rkw.res_rsv_ruimte_key = " + rsv_ruimte_key
+ " AND rkw.res_kenmerk_key = " + warn_key;
@@ -237,7 +260,7 @@ res_postsave = function (rsv_ruimte_key, pResult)
+ " (SELECT rk.res_kenmerk_key"
+ " FROM res_kenmerk rk"
+ " WHERE rkw.res_kenmerk_key = rk.res_kenmerk_key"
+ " AND rk.res_srtkenmerk_key = 3)" // Kenmerksoort BSN
+ " AND rk.res_srtkenmerk_key = " + UWVA_ARO.config.ARO_bsnsrt_key + ")"
+ "AND rkw.res_rsv_ruimte_key = " + rsv_ruimte_key;
Oracle.Execute(sql);
}
@@ -253,11 +276,12 @@ res_postsave = function (rsv_ruimte_key, pResult)
mld_postsave = function (melding_key, pResult)
{
if (ARO_mld_warn_key < 0)
UWVA_ARO.readconfig();
if (UWVA_ARO.config.ARO_mld_warn_key < 0)
return true;
var sql = "SELECT mk.mld_kenmerk_key"
+ " FROM mld_kenmerk mk, mld_melding m"
+ " WHERE mk.mld_kenmerk_key = " + ARO_mld_warn_key // Waarschuwing flex kenmerk
+ " WHERE mk.mld_kenmerk_key = " + UWVA_ARO.config.ARO_mld_warn_key // Waarschuwing flex kenmerk
+ " AND m.mld_melding_key = " + melding_key
+ " AND m.mld_stdmelding_key = mk.mld_stdmelding_key"
+ " AND mk.mld_kenmerk_niveau = 'S'";
@@ -269,22 +293,22 @@ mld_postsave = function (melding_key, pResult)
}
var sql = "SELECT km.mld_kenmerkmelding_waarde"
+ " FROM mld_kenmerk mk, mld_kenmerkmelding km"
+ " WHERE mk.mld_kenmerk_key = " + ARO_mld_bsn_key // BSN-nummer
+ " WHERE mk.mld_kenmerk_key = " + UWVA_ARO.config.ARO_mld_bsn_key // BSN-nummer
+ " AND mk.mld_kenmerk_key = km.mld_kenmerk_key"
+ " AND km.mld_melding_key = " + melding_key;
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
var bsn = oRs("mld_kenmerkmelding_waarde").Value;
var chk = UWVA_ARO.Check(bsn, ARO_RootUrl, ARO_User, ARO_Pass);
var chk = UWVA_ARO.Check(bsn);
var sql = "DELETE FROM mld_kenmerkmelding km"
+ " WHERE km.mld_melding_key = " + melding_key
+ " AND km.mld_kenmerk_key = " + ARO_mld_warn_key;
+ " AND km.mld_kenmerk_key = " + UWVA_ARO.config.ARO_mld_warn_key;
Oracle.Execute(sql);
if (chk.success && chk.lookup)
{
var sql = "INSERT INTO mld_kenmerkmelding(mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) "
+ " VALUES (" + melding_key + ", " + ARO_mld_warn_key + ", TO_CHAR(SYSDATE, 'DD-MM-YYYY'))";
+ " VALUES (" + melding_key + ", " + UWVA_ARO.config.ARO_mld_warn_key + ", TO_CHAR(SYSDATE, 'DD-MM-YYYY'))";
Oracle.Execute(sql);
}
}