Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 80792b1cc5 | |||
|
|
e19ecee669 | ||
|
|
4e5fcc0f79 | ||
|
|
f6952b9b79 | ||
|
|
8877559b2a | ||
|
|
33000d92a3 | ||
|
|
6bd3dd6577 | ||
|
|
4f655adc29 | ||
|
|
43c1c71a97 | ||
|
|
153065c47c | ||
|
|
330258b994 | ||
| 00bc9ae677 | |||
| 3bff33c4a8 | |||
|
|
30634d82b0 | ||
|
|
b926422969 |
@@ -73,6 +73,7 @@ var api2_mapper = {
|
||||
"objectproperties" : { "filename": "appl/mgt/ins_kenmerk.asp" },
|
||||
"recurringtasks" : { "filename": "appl/mgt/ins_srtcontrole.asp" },
|
||||
"objectgroups" : { "filename": "appl/mgt/ins_srtgroep.asp" },
|
||||
"objecttypes" : { "filename": "appl/mgt/ins_srtdeel.asp" },
|
||||
"objectpropertytypes" : { "filename": "appl/mgt/ins_srtkenmerk.asp" },
|
||||
"alldisciplines" : { "filename": "appl/mgt/ins_tab_discipline.asp" },
|
||||
"kpidefinitions" : { "filename": "appl/mgt/kpi_definitie.asp", "module": "KPI" },
|
||||
|
||||
@@ -31,23 +31,9 @@ function model_ins_srtdeel()
|
||||
"label": L("lcl_key"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"seq": "ins_s_ins_srtdeel_key",
|
||||
"seq": "ins_s_ins_srtinst_keys",
|
||||
"defaultvalue": null
|
||||
},
|
||||
"objectdiscipline": {
|
||||
"dbs": "ins_discipline_key",
|
||||
"label": L("lcl_discipline"),
|
||||
"typ": "key",
|
||||
"foreign": {
|
||||
"tbl": "ins_v_aanwezigdiscipline",
|
||||
"key": "ins_discipline_key",
|
||||
"desc": "ins_discipline_omschrijving"
|
||||
},
|
||||
"LOVinit": "",
|
||||
"defaultvalue": null,
|
||||
"showtransit": true,
|
||||
"onchange": "onChangeDiscipline()"
|
||||
},
|
||||
"objectgroup": {
|
||||
"dbs": "ins_srtgroep_key",
|
||||
"label": L("lcl_obj_group"),
|
||||
@@ -56,7 +42,7 @@ function model_ins_srtdeel()
|
||||
"insertonly": true,
|
||||
"foreign": {
|
||||
"tbl": "ins_v_aanwezigsrtgroep",
|
||||
"key": "inssrtgroep_key",
|
||||
"key": "ins_srtgroep_key",
|
||||
"desc": "ins_srtgroep_omschrijving"
|
||||
},
|
||||
"LOVinit": "",
|
||||
|
||||
@@ -23,6 +23,9 @@ ANONYMOUS_Allowed = 1;
|
||||
if (ll > 0)
|
||||
__Logging = ll; // Voor de rest van dit bestand
|
||||
|
||||
var channel = getQParamSafe("channel", "");
|
||||
var xkey = getQParamInt("xkey", -1);
|
||||
|
||||
function getRequestParams(p_method, p_action, params)
|
||||
{
|
||||
var errmsg = "";
|
||||
@@ -38,7 +41,7 @@ ANONYMOUS_Allowed = 1;
|
||||
// req_conn.actie wordt gewijzigd bij attachments als params.info.boundary bestaat.
|
||||
switch (p_method)
|
||||
{
|
||||
case "GET": req_conn.ext_url = doel + (params.info.extern_id ? "/"+params.info.extern_id : "");
|
||||
case "GET": req_conn.ext_url = doel + (params.info.externid ? "/"+params.info.externid : "");
|
||||
req_conn.methode = "GET";
|
||||
req_conn.actie = p_action;
|
||||
req_conn.content = "application/json";
|
||||
@@ -48,8 +51,8 @@ ANONYMOUS_Allowed = 1;
|
||||
req_conn.actie = p_action;
|
||||
req_conn.content = "application/json";
|
||||
break;
|
||||
case "PUT": missing_id = (params.info.extern_id ? false : true);
|
||||
req_conn.ext_url = doel + "/" + params.info.extern_id;
|
||||
case "PUT": missing_id = (params.info.externid ? false : true);
|
||||
req_conn.ext_url = doel + "/" + params.info.externid;
|
||||
req_conn.methode = "PUT";
|
||||
req_conn.actie = p_action;
|
||||
req_conn.content = "application/json";
|
||||
@@ -107,7 +110,9 @@ ANONYMOUS_Allowed = 1;
|
||||
}
|
||||
else
|
||||
{ // De tekst van de foutstatus.
|
||||
request_result.errmsg = http_request.statusText;
|
||||
var response_error = (http_request.responseText ? JSON.parse( http_request.responseText) : {});
|
||||
request_result.errmsg = http_request.statusText
|
||||
+ ": " + response_error.error.title + " (" + response_error.error.message + ")";
|
||||
}
|
||||
}
|
||||
catch (e)
|
||||
@@ -118,6 +123,64 @@ ANONYMOUS_Allowed = 1;
|
||||
return request_result;
|
||||
}
|
||||
|
||||
function call_zendesk(coupler, data_to_sent)
|
||||
{
|
||||
var bevinding = {};
|
||||
if (coupler.info.method != 'NONE')
|
||||
{
|
||||
var conn_params = getRequestParams(coupler.info.method, coupler.info.action, coupler);
|
||||
if (conn_params.success)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
__Log({"conn_params": conn_params});
|
||||
__Log({"doRequest": {"req_conn": conn_params.req_conn, "data_to_sent": data_to_sent}});
|
||||
bevinding = { result: { success: true
|
||||
, status: 200
|
||||
, message: ""
|
||||
}
|
||||
, data: {ticket: {custom_fields: {}, fields: {}, audit: {}}}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var conn_result = doRequest(conn_params.req_conn, data_to_sent);
|
||||
if (conn_result.success)
|
||||
{
|
||||
bevinding = { result: { success: true
|
||||
, status: conn_result.status
|
||||
, message: conn_result.errmsg
|
||||
}
|
||||
, data: conn_result.data
|
||||
};
|
||||
}
|
||||
else
|
||||
{ // Een foutmelding van request of een algemene fout.
|
||||
bevinding = { result: { success: false
|
||||
, status: conn_result.status
|
||||
, message: conn_result.errmsg
|
||||
}};
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Er is iets fout gegaan met het maken van de request parameters.
|
||||
bevinding = { result: { success: false
|
||||
, status: 601
|
||||
, message: conn_params.errmsg
|
||||
}};
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bevinding = { result: { success: true
|
||||
, status: 200
|
||||
, message: "er hoeft geen bericht verstuurd te worden"
|
||||
}};
|
||||
}
|
||||
return bevinding;
|
||||
}
|
||||
|
||||
function encryptAuth(api_user, api_key)
|
||||
{
|
||||
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
|
||||
@@ -125,9 +188,15 @@ ANONYMOUS_Allowed = 1;
|
||||
return encoded;
|
||||
}
|
||||
|
||||
function cloneObject(obj)
|
||||
{
|
||||
var cloned_obj = JSON.parse(JSON.stringify(obj));
|
||||
return cloned_obj;
|
||||
}
|
||||
|
||||
function load_headerdata()
|
||||
{
|
||||
__Log("load_headerdata");
|
||||
__Log("load_headerdata");
|
||||
// Lees de xml-data uit de html-header.
|
||||
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
|
||||
xmlReq.load(Request);
|
||||
@@ -138,26 +207,44 @@ __Log("load_headerdata");
|
||||
|
||||
function test_loader()
|
||||
{
|
||||
__Log("TEST_LOADER");
|
||||
function loadMSXML(x)
|
||||
{
|
||||
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||
var file_ext = x.file.slice(-4);
|
||||
var ForReading = 1;
|
||||
var f1 = fso.OpenTextFile(x.file, ForReading );
|
||||
var text = f1.ReadAll();
|
||||
f1.Close();
|
||||
if ((text.substr(0,14) != "<?xml version=") && (file_ext == ".xml"))
|
||||
{ // Bij ontbreken van encoding in de xml-file treedt de fout
|
||||
// "An invalid character was found in the text content"
|
||||
// op als er diakritische tekens in het xml-bestand staan.
|
||||
// Voeg daarom encoding toe.
|
||||
text = "<?xml version='1.0' encoding='windows-1250'?>" + "\n\r" + text;
|
||||
}
|
||||
|
||||
x.doc = new ActiveXObject("MSXML2.DOMDocument.6.0");
|
||||
x.doc.async = false;
|
||||
x.doc.load(x.file);
|
||||
x.doc.loadXML(text);
|
||||
x.err_code = x.doc.parseError.errorCode;
|
||||
x.err_msg = (x.doc.parseError.errorCode != 0 ? x.doc.parseError.reason : "");
|
||||
return x;
|
||||
}
|
||||
|
||||
var custpath = "../../CUST/WELK";
|
||||
var loader = { success: false
|
||||
, status: -1
|
||||
, xml: { file: Server.MapPath(custpath + "/xsl/" + "puo_20241025-zentest_make_xml.xml") }
|
||||
, xml: { file: Server.MapPath(custpath + "/xsl/" + "puo_20250205-163742_00_make_xml.xml") }
|
||||
, xsl: { file: Server.MapPath(custpath + "/xsl/" + "zendesk.xsl") }
|
||||
};
|
||||
|
||||
loader.xml = loadMSXML(loader.xml);
|
||||
loader.xsl = loadMSXML(loader.xsl);
|
||||
loader.success = (loader.xml.err_code == 0 && loader.xsl.err_code == 0);
|
||||
//__Log(loader);
|
||||
__Log( {"load_err": { "xml": {"path": loader.xml.file, "code":loader.xml.err_code, "msg":loader.xml.err_msg}
|
||||
, "xsl": {"path": loader.xsl.file, "code":loader.xsl.err_code, "msg":loader.xsl.err_msg}
|
||||
}
|
||||
});
|
||||
|
||||
var result = { success: false
|
||||
, status: (loader.xml.err_code != 0 ? loader.xml.err_code : loader.xsl.err_code)
|
||||
@@ -183,58 +270,107 @@ __Log("load_headerdata");
|
||||
}
|
||||
}
|
||||
//__Log(result);
|
||||
__Log(result.data);
|
||||
return result;
|
||||
return result.data.facilitor;
|
||||
}
|
||||
|
||||
function getTypeOf(value)
|
||||
{
|
||||
if (typeof value === "string" || value instanceof String) return "isString";
|
||||
if (typeof value === "number" && isFinite(value)) return "isNumber";
|
||||
if (typeof value === "boolean") return "isBoolean";
|
||||
if (typeof value === "symbol") return "isSymbol";
|
||||
if (typeof value === "undefined") return "isUndefined";
|
||||
if (typeof value === "function") return "isFunction";
|
||||
if (value === null) return "isNull";
|
||||
if (value && typeof value === "object" && value.constructor === Array) return "isArray";
|
||||
if (value && typeof value === "object" && value.constructor === Object) return "isObject";
|
||||
if (value && typeof value === "object" && value.constructor === RegExp) return "isRegExp";
|
||||
if (value instanceof Error && typeof value.message !== "undefined") return "isError";
|
||||
if (value instanceof Date) return "isDate";
|
||||
return "isUnknown";
|
||||
}
|
||||
|
||||
function fieldlist_to_array(p_fieldlist)
|
||||
{
|
||||
var v_field_arr = [];
|
||||
for (var fld_name in p_fieldlist)
|
||||
{
|
||||
var v_field_obj = p_fieldlist[fld_name];
|
||||
v_field_arr.push(v_field_obj);
|
||||
}
|
||||
return v_field_arr;
|
||||
}
|
||||
|
||||
function getTicket(p_data)
|
||||
{
|
||||
var v_data = {};
|
||||
v_data.ticket = cloneObject(p_data.opdracht);
|
||||
// custom_fields moet een array worden.
|
||||
v_data.ticket.custom_fields = fieldlist_to_array(v_data.ticket.custom_fields);
|
||||
return v_data;
|
||||
}
|
||||
|
||||
function getTicketComment(p_data, p_key, p_request)
|
||||
{
|
||||
var v_notities = cloneObject(p_data.notities);
|
||||
var user_request = cloneObject(p_request);
|
||||
user_request.info = { method: "POST"
|
||||
, action: "upsert_user"
|
||||
};
|
||||
if (getTypeOf(v_notities) != "isArray")
|
||||
v_notities = [v_notities];
|
||||
var v_notitie = { result: { success: false
|
||||
, status: 610
|
||||
, message: "No comment found"
|
||||
}
|
||||
};
|
||||
for (var i=0; i<v_notities.length; i++)
|
||||
{
|
||||
if (v_notities[i].key == p_key)
|
||||
{
|
||||
v_notitie.ticket = v_notities[i];
|
||||
if (getTypeOf(v_notitie.ticket.comment.author_id.lookup.user.email) != "isString")
|
||||
{ // Verwijderen email als deze leeg is.
|
||||
delete v_notitie.ticket.comment.author_id.lookup.user.email;
|
||||
}
|
||||
delete v_notitie.ticket.key; // Deze heb je alleen nodig voor het vinden van de juiste notitie. Mag nu weg.
|
||||
// user gegevens vervangen door user-id van Zendesk.
|
||||
var user_data_to_sent = v_notitie.ticket.comment.author_id.lookup;
|
||||
var user_result = call_zendesk(user_request, user_data_to_sent);
|
||||
v_notitie.result = user_result.result;
|
||||
if (user_result.result.success)
|
||||
{ // De notitie kan nu verstuurd worden.
|
||||
v_notitie.ticket.comment.author_id = user_result.data.user.id;
|
||||
}
|
||||
}
|
||||
}
|
||||
return v_notitie;
|
||||
}
|
||||
|
||||
function update_mldopdr(methode, actie, ticket)
|
||||
{
|
||||
if (methode == "POST" && actie)
|
||||
{
|
||||
var sql = "UPDATE mld_opdr"
|
||||
+ " SET mld_opdr_externnr = " + ticket.id
|
||||
+ " WHERE mld_opdr_key = " + ticket.external_id;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
|
||||
// *************************************************************************
|
||||
// *************************************************************************
|
||||
__Log("*> ZENdesk.api");
|
||||
var bevinding = {};
|
||||
var facilitor = load_headerdata();
|
||||
/*
|
||||
var facilitor = {
|
||||
"melding": {
|
||||
"mld_melding_key": "4564",
|
||||
"opdracht": {
|
||||
"mld_opdr_key": "2194"
|
||||
}
|
||||
},
|
||||
"zendesk": {
|
||||
"api_user": "erik.groener@aareon.nl",
|
||||
"api_key": "m4oM3jgoZ0w7SbEShvEd8Xp6PanoUOLEHo9YEIBj",
|
||||
"base_url": "https://aareongroup1726146503.zendesk.com",
|
||||
"info": {
|
||||
"method": "POST",
|
||||
"action": "ticket"
|
||||
},
|
||||
"data": {
|
||||
"ticket": {
|
||||
"subject": "Ge<47>mporteerde memoriaalboeking kan niet gecorrigeerd worden",
|
||||
"comment": {
|
||||
"body": "Ge<47>mporteerde memoriaalboeking kan niet gecorrigeerd worden\nDatum van optreden: 26-07-2024\nTijdstip van optreden: 13:30\nOmgeving: Productie\nBeschrijf de vraag/issue: Memoriaalboeking ingelezen, maar bij valideren een foutmelding. Normaal kun je dan de regel van de boeking aanpassen (was in AX), maar kan nu niet of het is een autorisatie dingetje.\nIk zal dit bij een volgende test in ieder geval meenemen.\nModule: AX Grootboek\nKerngebruiker(s) module Grootboek: Dnzhp Ofxyaw\nStappen voorafgaand aan vraag/issue: Via de Help functie gekeken maar daar staat verder niets. Na aanpassing van het bestand opnieuw ingelezen en dan uiteindelijk wel goed.\nVerwachting: Dat ik een memoriaalboeking die niet helemaal juist is kan corrigeren en daarna boeken. \nUrgentie: Middel\nBetekenis urgentie middel: Een afdeling/team is getroffen en/of kan haar taken niet uitvoeren zoals gepland, of leidt tot financi<63>le schade, of geringe schade aan de reputatie van de klant is waarschijnlijk.\nImpact: Middel\nBetekenis impact middel: Een afdeling/team is getroffen en/of kan haar taken niet uitvoeren zoals gepland, of leidt tot financi<63>le schade, of geringe schade aan de reputatie van de klant is waarschijnlijk."
|
||||
},
|
||||
"priority": "Laag",
|
||||
"status": "new",
|
||||
"type": "incident",
|
||||
"via": {
|
||||
"channel": "web_service"
|
||||
},
|
||||
"external_id": "2194"
|
||||
}
|
||||
},
|
||||
"bijlagen": {}
|
||||
}
|
||||
}
|
||||
*/
|
||||
__Log(facilitor);
|
||||
|
||||
|
||||
__Log("*> ZENdesk.api channel="+channel+" xkey="+xkey);
|
||||
var actions = { "ticket": "/api/v2/tickets"
|
||||
, "request": "/api/v2/requests"
|
||||
, "brand": "/api/v2/brands"
|
||||
, "organization": "/api/v2/organizations"
|
||||
, "group": "/api/v2/groups"
|
||||
, "upsert_user": "/api/v2/users/create_or_update"
|
||||
// nieuwe ticket versturen
|
||||
// POST /api/v2/tickets.json
|
||||
// met data: {"ticket": {"subject": "My printer is on fire!", "comment": { "body": "The smoke is very colorful." }}}
|
||||
//
|
||||
// notities worden aan een ticket toegevoegd als comments in het ticket:
|
||||
// PUT /api/v2/tickets/{id}.json
|
||||
// met data: {"ticket": {"comment": {"body": "de notitie tekst", "author_id": 12345678}}}
|
||||
@@ -243,72 +379,51 @@ __Log(facilitor);
|
||||
// POST /api/v2/uploads?filename=<bestandsnaam>&token=<optional_token>
|
||||
}
|
||||
|
||||
var debug = false;
|
||||
var facilitor = (debug ? test_loader() : load_headerdata());
|
||||
__Log(facilitor);
|
||||
var bevinding = {};
|
||||
|
||||
if (facilitor && facilitor.zendesk)
|
||||
{
|
||||
var coupler = facilitor.zendesk || {};
|
||||
coupler.api_auth = encryptAuth(coupler.api_user, coupler.api_key);
|
||||
coupler.actions = actions;
|
||||
var v_data = facilitor.zendesk.data;
|
||||
var v_request = facilitor.zendesk.request;
|
||||
v_request.api_auth = encryptAuth(v_request.api_user, v_request.api_key);
|
||||
v_request.actions = actions;
|
||||
|
||||
//
|
||||
// Zoek eventueel eerst de benodigde id's op
|
||||
//
|
||||
// Deze log staat als commentaar omdat in deze JSON ook de base64 coded bijlage zit. Dat levert te veel logging op.
|
||||
//__Log(coupler);
|
||||
// We gaan alleen een bericht versturen als we een geldige methode hebben. We gebruiken de methode NONE om
|
||||
// aan te geven dat dit bericht niet verstuurd hoeft te worden. Dit is de mogelijkheid om
|
||||
// in de stylesheet aan te geven dat je geen bericht wilt versturen op deze notificatie.
|
||||
if (coupler.info.method != 'NONE')
|
||||
switch (channel)
|
||||
{
|
||||
var conn_params = getRequestParams(coupler.info.method, coupler.info.action, coupler);
|
||||
if (conn_params.success)
|
||||
case "ORD": var data_to_sent = getTicket(v_data);
|
||||
bevinding = call_zendesk(v_request, data_to_sent);
|
||||
if (bevinding.result.success)
|
||||
{
|
||||
__Log(conn_params.req_conn.methode + ": " + conn_params.req_conn.baseurl + conn_params.req_conn.ext_url);
|
||||
__Log( {"conn_params": conn_params});
|
||||
// var conn_result = doRequest(conn_params.req_conn, coupler.data);
|
||||
var conn_result = {success: false};
|
||||
if (conn_result.success)
|
||||
var data_received = bevinding.data;
|
||||
delete data_received.ticket.custom_fields; // bevat alleen lege velden
|
||||
delete data_received.ticket.fields; // bevat alleen lege velden
|
||||
delete data_received.audit; // nu niet nodig maar bevat misschien wel nuttige informatie
|
||||
delete bevinding.data;
|
||||
bevinding.ticket = data_received.ticket;
|
||||
}
|
||||
bevinding.attach = "";
|
||||
|
||||
update_mldopdr(v_request.info.method, v_request.info.action, bevinding.ticket);
|
||||
break;
|
||||
case "NOT": var bevinding = getTicketComment(v_data, xkey, v_request);
|
||||
if (bevinding.result.success)
|
||||
{
|
||||
delete conn_result.data.ticket.custom_fields; // bevat alleen lege velden
|
||||
delete conn_result.data.ticket.fields; // bevat alleen lege velden
|
||||
delete conn_result.data.audit; // nu niet nodig maar bevat misschien wel nuttige informatie
|
||||
bevinding = { result: { success: true
|
||||
, status: conn_result.status
|
||||
, message: conn_result.errmsg
|
||||
}
|
||||
, ticket: conn_result
|
||||
, attach: ""
|
||||
};
|
||||
if (conn_params.req_conn.methode == "POST" && conn_params.req_conn.actie)
|
||||
var data_to_sent = bevinding.ticket;
|
||||
bevinding = call_zendesk(v_request, data_to_sent);
|
||||
if (bevinding.result.success)
|
||||
{
|
||||
var sql = "UPDATE mld_opdr"
|
||||
+ " SET mld_opdr_externnr = " + conn_result.data.ticket.id
|
||||
+ " WHERE mld_opdr_key = " + conn_result.data.ticket.external_id;
|
||||
Oracle.Execute(sql);
|
||||
var data_received = bevinding.data;
|
||||
delete data_received.ticket.custom_fields; // bevat alleen lege velden
|
||||
delete data_received.ticket.fields; // bevat alleen lege velden
|
||||
delete bevinding.data;
|
||||
bevinding.comment = data_received.ticket;
|
||||
}
|
||||
bevinding.attach = "**"
|
||||
}
|
||||
else
|
||||
{ // Een foutmelding van request of een algemene fout.
|
||||
bevinding = { result: { success: false
|
||||
, status: conn_result.status
|
||||
, message: conn_result.errmsg
|
||||
}};
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Er is iets fout gegaan met het maken van de request parameters.
|
||||
bevinding = { result: { success: false
|
||||
, status: 601
|
||||
, message: conn_params.errmsg
|
||||
}};
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bevinding = { result: { success: true
|
||||
, status: 200
|
||||
, message: "er hoeft geen bericht verstuurd te worden"
|
||||
}};
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -331,9 +446,9 @@ var conn_result = {success: false};
|
||||
);
|
||||
}
|
||||
|
||||
__Log(bevinding);
|
||||
__Log({"Bevinding:": bevinding});
|
||||
__Log("*< ZENdesk.api");
|
||||
Response.Write(JSON.stringify(bevinding));
|
||||
//Response.End;
|
||||
Response.End;
|
||||
%>
|
||||
<% ASPPAGE_END(); %>
|
||||
|
||||
@@ -1397,7 +1397,7 @@ function getSqlInstemMld(fiatstatus, prsKeys, params)
|
||||
+ " AND ft.prs_perslid_key IN (" + prsKeys + ")"
|
||||
+ (fiatstatus == "close"
|
||||
? " AND fno.fac_srtnotificatie_code IN ('MLDUPD')"
|
||||
+ " AND ft.fac_tracking_datum <= (SELECT ft2.fac_tracking_datum"
|
||||
+ " AND ft.fac_tracking_datum <= (SELECT MIN(ft2.fac_tracking_datum)"
|
||||
+ " FROM fac_tracking ft2"
|
||||
+ " , fac_srtnotificatie fno2"
|
||||
+ " WHERE ft2.fac_tracking_refkey = m.mld_melding_key"
|
||||
|
||||
@@ -99,6 +99,7 @@ try
|
||||
f.WriteLine("7za -aoa e {0} >>%0.log 2>>&1".format(dumpfile));
|
||||
f.WriteLine("cd /D \"%~dp0\"");
|
||||
f.WriteLine("SET deletedmp=1");
|
||||
f.WriteLine("ATTRIB -R " + dumpfile.replace(/\.7z$/, "")); // Readonly bitje van de DMP file afhalen
|
||||
}
|
||||
f.WriteLine("SET dmpfile=" + dumpfile.replace(/\.7z$/, "")); // fclt_LOGC.dmp.7z ==> fclt_LOGC.dmp);
|
||||
f.WriteLine("SET targetSERVER=" + udl_data.DataSource);
|
||||
|
||||
@@ -416,6 +416,10 @@ else
|
||||
// Als er nog geen inspectie is geweest en er is een startdatum ingevuld, dan moet de plandatum verwijderd worden afhankelijk van mjob.
|
||||
// Voor mjob = false: als de plandatum eerder is als de startdatum (kan eigenlijk niet ingevoerd worden in edit scherm).
|
||||
// mjob = true: als de plandatum in hetzelfde jaar of eerder is als de startdatum.
|
||||
if(savemode == "P" && ins_deelsrtcontrole_key != null)
|
||||
{ // Inspectie is al ingepland en heeft dus een inspectie key. Dan deze ook aan dlsrtcont_key toekennen.
|
||||
dlsrtcont_key = ins_deelsrtcontrole_key;
|
||||
}
|
||||
if (savemode == "P" && !(this_ins.canInspPlan || this_ins.canInspPlanMjb || this_ins.canInspPlanMulti)) // Inplannen.
|
||||
{ // Ik heb geen Plan (inplannen) rechten of er was al een planrecord.
|
||||
if (ins_deelsrtcontrole_status == 0 && !multi)
|
||||
|
||||
@@ -135,7 +135,8 @@
|
||||
"fields": ["ins_deel_key"]
|
||||
},
|
||||
"prs_perslid": { "track": "#PRSUPD",
|
||||
"fields": ["prs_perslid_flags",
|
||||
"fields": ["prs_perslid_lang",
|
||||
"prs_perslid_flags",
|
||||
"prs_perslid_inactief"]
|
||||
},
|
||||
"fac_bookmark": { "track": null,
|
||||
|
||||
@@ -1647,7 +1647,7 @@ SUBFRAME_START();
|
||||
{ perslidKey: mld_melding.behandel2_key,
|
||||
idadd: 2,
|
||||
label: L("lcl_mld_processor"),
|
||||
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
|
||||
//autlevel: niet van toepassing op BH2F en BH2B
|
||||
urlAdd: urlAdd,
|
||||
hidden: hideSelectors,
|
||||
filtercode: (mld_melding.mld_status == 0? "BH2F" : "BH2B")
|
||||
|
||||
@@ -175,11 +175,10 @@ function getFiltClausePersoon(pfiltcode, params)
|
||||
lfiltClause = " AND p.prs_perslid_key IN (SELECT prs_perslid_key from fac_import)";
|
||||
break;
|
||||
case 'ORDBO':// Externe partijen toegang tot facilitor. Dan moet je 'WEB_EXTORD', 'WEB_ORDBO2' rechten hebben.
|
||||
lfiltClause = " AND p.prs_perslid_key IN (SELECT prs_perslid_key"
|
||||
lfiltClause = " AND EXISTS (SELECT prs_perslid_key"
|
||||
+ " FROM fac_v_webgebruiker g"
|
||||
+ " WHERE g.fac_functie_key IN (SELECT FAC_FUNCTIE_KEY"
|
||||
+ " FROM FAC_FUNCTIE"
|
||||
+ " WHERE FAC_FUNCTIE_CODE IN ('WEB_EXTORD', 'WEB_ORDBO2'))"
|
||||
+ " WHERE g.prs_perslid_key = p.prs_perslid_key"
|
||||
+ " AND g.fac_functie_key IN ({0}, {1})".format(F('WEB_EXTORD'), F('WEB_ORDBO2'))
|
||||
+ " AND g.fac_gebruiker_alg_level_read < 9"
|
||||
+ " AND g.fac_gebruiker_prs_level_read < 9"
|
||||
+ " )";
|
||||
@@ -303,14 +302,11 @@ function getFiltClausePersoon(pfiltcode, params)
|
||||
+ " )";
|
||||
break;
|
||||
case 'INSB': // Objectbeheerders, met schrijfrechten op INSMAN of INSUSE - gokje
|
||||
lfiltClause = " AND (p.prs_perslid_key IN"
|
||||
+ " ( SELECT prs_perslid_key"
|
||||
lfiltClause = " AND (EXISTS"
|
||||
+ " ( SELECT g.prs_perslid_key"
|
||||
+ " FROM fac_v_webgebruiker g"
|
||||
+ " WHERE g.fac_functie_key IN"
|
||||
+ " ( SELECT fac_functie_key"
|
||||
+ " FROM fac_functie"
|
||||
+ " WHERE fac_functie_code IN ('WEB_INSMAN', 'WEB_INSUSE')"
|
||||
+ " )"
|
||||
+ " WHERE g.prs_perslid_key = p.prs_perslid_key"
|
||||
+ " AND g.fac_functie_key IN ({0}, {1})".format(F('WEB_INSMAN'), F('WEB_INSUSE'))
|
||||
+ ((S("ins_can_edit_own_objects") == 1) // Dan volstaan leesrechten
|
||||
? " AND g.fac_gebruiker_alg_level_read < 9"
|
||||
+ " AND g.fac_gebruiker_prs_level_read < 9"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
Context: Vanuit ELK asp bestand
|
||||
*/
|
||||
|
||||
var FCLTVersion="2024.3c";
|
||||
var FCLTVersion="2024.3d";
|
||||
var FCLTMinDatabaseSchema="49"; // Alleen de cijfers
|
||||
|
||||
var custpath = rooturl + "/cust/" + customerId; // path to customer files
|
||||
|
||||
@@ -349,6 +349,12 @@ SafeOracle.prototype.ExecuteParam = function (sql, params, catchErrors)
|
||||
__DoLog(sql); // alsnog
|
||||
__SafeDoLog("Database exception:<br>" + Server.HTMLEncode(e1.description).replace(/\n/g,"<br/>"), "#f00");
|
||||
|
||||
try {
|
||||
if (Request.Form.Count>0) __DoLogForm("#FF0000");
|
||||
}
|
||||
catch(e)
|
||||
{ /* er is al een Request.BinaryRead geweest */ }
|
||||
|
||||
if (!catchErrors)
|
||||
{
|
||||
Session("last_sql") = sql; // wordt door 500-error.asp opgepikt
|
||||
|
||||
Reference in New Issue
Block a user