Compare commits

...

10 Commits

Author SHA1 Message Date
Marcel Bourseau
73d54f96cb MARX#69640 Wachtwoorden plain-tekst in configuratiebestanden
svn path=/Mareon/trunk/; revision=70974
2025-11-17 18:47:45 +00:00
Marcel Bourseau
ebb036dbf8 MARX#69640 Wachtwoorden plain-tekst in configuratiebestanden
svn path=/Mareon/trunk/; revision=70929
2025-11-13 13:46:04 +00:00
Marcel Bourseau
25733347c3 MARX#91167 Timeout & XML-fout bij opdrachtregels van inspectieopname - escape XML tekens
svn path=/Mareon/trunk/; revision=70687
2025-10-22 10:11:04 +00:00
Dennis Hartmann
676c39ee22 MARX#90520
svn path=/Mareon/trunk/; revision=70370
2025-09-19 11:53:38 +00:00
Marcel Bourseau
229e104af6 Ticket MARX#81899 Verbeterpunten signalering richting VG support mbt de NQ lijst
svn path=/Mareon/trunk/; revision=70062
2025-08-20 14:51:28 +00:00
Marcel Bourseau
7a0b2e8b5f Ticket MARX#90231 AiAi op factuur - opdrachtomschrijving > 4000 tekens -- GOFORWARD (agv eerdere rollback)
svn path=/Mareon/trunk/; revision=70043
2025-08-19 13:04:07 +00:00
Marcel Bourseau
f83d7066c9 Ticket MARX#90284 Registreren van 'eigen' opdrachten met AI - ROLLBACK
svn path=/Mareon/trunk/; revision=70037
2025-08-19 10:11:22 +00:00
Marcel Bourseau
a5912e5275 Ticket MARX#90231 AiAi op factuur - opdrachtomschrijving > 4000 tekens
svn path=/Mareon/trunk/; revision=70022
2025-08-15 14:22:23 +00:00
Marcel Bourseau
3332a02938 Ticket MARX#90284 Registreren van 'eigen' opdrachten met AI - MARX_MONTHLY ruimt oude (mail)records uit fac_opdracht_queue op.
svn path=/Mareon/trunk/; revision=70021
2025-08-15 14:16:52 +00:00
Marcel Bourseau
fbd5b2a719 -- MARX#90284 Registreren van 'eigen' opdrachten met AI
svn path=/Mareon/trunk/; revision=70015
2025-08-14 19:07:29 +00:00
9 changed files with 240 additions and 19 deletions

View File

@@ -35,7 +35,8 @@ function A2012_365_UploadDocument (v_API, v_base64_str)
function A12_365_GetCheckSum_UploadDocument(p_json_text){
v_checksum = "";
if (p_json_text){
p_json = eval("(" + p_json_text + ")");
// MARX#69640 Wachtwoorden plain-tekst in configuratiebestanden: probleem 3: eval vervangen door JSON.parse
var p_json = JSON.parse(p_json_text);
v_checksum = p_json.checksum;
}
__Log("GetCheckSum_UploadDocument v_checksum: " + v_checksum, 3);

View File

@@ -523,6 +523,13 @@ function Tobias_2_FACILITOR()
function MAREON_2_FACILITOR()
{
if (G_fclt_apikey == "")
{
//MARX#69640 Wachtwoorden plain-tekst in configuratiebestanden
//Zie notitie 12 nov 2025 14:54, probleem 1B "Facilitor secrets elimineren" gaan we hier oplossen, die gaan naar DB.
G_fclt_apikey = G_ID_saxton_client_secret;
}
if (G_push_notifyqueue == "0"){
//start then-tak pull
@@ -744,6 +751,7 @@ function MARX_LOG_XML_SETTINGS()
__Log("***XML- thirdparty/dico/messageservice/version: " + G_3party_dico_ms_version, 1);
__Log("***XML- identityserver/token/url: " + G_ID_saxton_url, 1);
__Log("***XML- mareon/url: " + G_marx_url, 1);
__Log("***XML- mareon/perslidkey: " + G_marx_perslidkey, 1);
__Log("***XML- xtractor/xmlfolder: " + G_ax_xtractorfolder, 1);
__Log("***XML- xtractor/pdffolder: " + G_pdf_xtractorfolder, 1);
__Log("***XML- xtractor/succeededfolder: " + G_ax_succeededfolder, 1);
@@ -793,9 +801,13 @@ function MARX_LOG_XML_SETTINGS()
// 1.94 -- MARX#86119: Integratie Viadata CI365 en Mareon voor inspectieproces + MARX#87722 Mareon mist statustekst bij opdrachtafmelding naar Facilitor
// 1.95 -- MARX#89177: Notitie komt in geval van onderbreken niet mee naar (ERP)systeem van opdrachtgever
// 1.96 -- MARX#89952: Notities in Mareon ook als notitie in Facilitor (en niet meer in afhandeling) + MARX#88238 Wens om ook status 'onderbroken' naar ALLR Facilitor door te geven
// 1.97 -- MARX#91167: Timeout & XML-fout bij opdrachtregels van inspectieopname
// 1.98 -- MARX#69640: Wachtwoorden plain-tekst in configuratiebestanden
var G_Mareon_Adapter = "1.96";
var G_Mareon_Adapter = "1.98";
//MARX#56643: Test Haagwonen inkoopordernummer ontbreekt in Mareon ION001753
var G_new_date = new Date();
@@ -891,6 +903,7 @@ var G_ID_ax365_supplierservice_scope = Read_Ini_Setting("ax365","supplierservice
// Mareon instellingen, de term (XML node) "facilitor" is ivm historie cq. alle locale installaties bij woco's niet 1-2-3 aan te passen in de veel logischere term mareon.
var G_marx_url = Read_Ini_Setting("facilitor","url");
var G_marx_apikey = Read_Ini_Setting("facilitor","apikey");
var G_marx_perslidkey = Read_Ini_Setting("facilitor","perslidkey");
//MARX#57502: AX Adapter robuuster maken, instelbare timeout
var G_mar_timeout = 0; //initieel 1e keer.
@@ -905,6 +918,24 @@ var G_mar_timeout = 0; //initieel 1e keer.
}
else{
//MARX#69640 Wachtwoorden plain-tekst in configuratiebestanden
//Zie notitie 12 nov 2025 14:54, probleem 2A "Mareon secrets elimineren" gaan we hier oplossen
if (G_marx_apikey == "" && G_marx_perslidkey != "")
{
// Dan halen we de Mareon APIKEY binnendoor via udl op obv perslidkey
var udlstr = 'File Name=../oracle.udl';
var Oracle = new ActiveXObject("ADODB.Connection");
Oracle.Open(udlstr);
var l_sql = "SELECT prs_perslid_apikey FROM prs_perslid WHERE prs_perslid_key = " + G_marx_perslidkey;
var oRs = Oracle.Execute(l_sql);
if (!oRs.EOF)
{
G_marx_apikey = oRs("prs_perslid_apikey").Value;
}
oRs.close();
}
// Haal de Mareon-info uit Facilitor die geregistreerd zijn voor deze woco...
// In de array staan achtereenvolgens (op plaats 0 en 1):
// - min_adapter_version

View File

@@ -128,7 +128,8 @@ function apiFCLT_inner(v_URL, v_API, v_APIKEY, v_req, v_type, v_soap_envelope, v
{ if (v_API != "MAREONINFO"){
//Mareon info bevat secrets, die gaan we nooit loggen...
var txt = xmlhttp.responseText || "{}";
var result_data = eval("(" + txt + ")");
// MARX#69640 Wachtwoorden plain-tekst in configuratiebestanden: probleem 3: eval vervangen door JSON.parse
var result_data = JSON.parse(txt);
__Log("apiFCLT - XML :" + result_data,3);
}
}

View File

@@ -63,15 +63,13 @@ function FCLT_or_MARX_PutOpdrachtBijlages(v_url_bron, v_apikey_bron, v_mld_opdr_
__Log("l_url: " + l_url,3);
var l_filename;
var l_file_url;
var v_suppress_req_logging = 0; // Logging van request, indien dat gewenst is, niet onderdrukken.
var l_response_JSON = FcltAPI2(v_apikey_bron, "GET", l_url, "", 0, v_suppress_req_logging);
if (l_response_JSON)
{
__Log("FCLT_or_MARX_PutOpdrachtBijlages: GET", 2);
var data = eval ("(" + l_response_JSON.responseText + ")");
// MARX#69640 Wachtwoorden plain-tekst in configuratiebestanden: probleem 3: eval vervangen door JSON.parse
var data = JSON.parse(l_response_JSON.responseText);
__Log("Opdracht data:" + data, 4);
if ("order" in data && "custom_fields" in data.order)
{ __Log("Opdracht : order", 3);
@@ -107,7 +105,9 @@ function MARX_GetOpdrNotitieBijlages(v_url_bron, v_apikey_bron, v_mld_opdr_key_b
if (l_response_JSON)
{
__Log("MARX_GetOpdrNotitieBijlages: GET", 2);
var data = eval ("(" + l_response_JSON.responseText + ")");
// MARX#69640 Wachtwoorden plain-tekst in configuratiebestanden: probleem 3: eval vervangen door JSON.parse
var data = JSON.parse(l_response_JSON.responseText);
__Log("Opdracht data:" + data, 4);
if ("order" in data && "notes" in data.order)
{ __Log("Opdracht : order", 3);

View File

@@ -410,7 +410,8 @@ function F_GetFactuurFiles(p_folder, p_fin_factuur_key)
if (objXMLHTTP)
{
__Log("F_GetFactuurFiles: GET", 2);
var data = eval ("(" + objXMLHTTP.responseText + ")");
// MARX#69640 Wachtwoorden plain-tekst in configuratiebestanden: probleem 3: eval vervangen door JSON.parse
var data = JSON.parse(objXMLHTTP.responseText);
__Log("Factuur data :" + data, 4);
if ("invoice" in data && "custom_fields" in data.invoice)
{ __Log("Factuur data : invoice", 3);
@@ -467,7 +468,8 @@ function F_Get_Base64_FactuurFile(p_fin_factuur_key)
if (objXMLHTTP)
{
__Log("F_Get_Base64_FactuurFile: GET", 2);
var data = eval ("(" + objXMLHTTP.responseText + ")");
// MARX#69640 Wachtwoorden plain-tekst in configuratiebestanden: probleem 3: eval vervangen door JSON.parse
var data = JSON.parse(objXMLHTTP.responseText);
__Log("F_Get_Base64_FactuurFile Factuur data :" + data,4);
if ("invoice" in data && "custom_fields" in data.invoice)
{ __Log("F_Get_Base64_FactuurFile Factuur data : invoice",3);

View File

@@ -452,10 +452,19 @@ function F_Make_DICO_005_Opdracht_regels (p_mld_opdr_key, p_statuscode)
//var l_mld_opdr_materiaal_key = l_mat_regels[i].id;
var l_mld_opdr_materiaal_id = l_mat_regels[i].seq;
var l_mld_opdr_materiaal_code = l_mat_regels[i].code;
if (l_mld_opdr_materiaal_code == null){l_mld_opdr_materiaal_code = ""};
l_mld_opdr_materiaal_code = escapeXml(l_mld_opdr_materiaal_code);
//LEDO Location = group..
var l_mld_opdr_materiaal_groep = l_mat_regels[i].group;
if (l_mld_opdr_materiaal_groep == null){l_mld_opdr_materiaal_groep = ""};
l_mld_opdr_materiaal_groep = escapeXml(l_mld_opdr_materiaal_groep);
var l_mld_opdr_materiaal_omschr = l_mat_regels[i].userdefined;
if (l_mld_opdr_materiaal_omschr == null){l_mld_opdr_materiaal_omschr = ""};
l_mld_opdr_materiaal_omschr = escapeXml(l_mld_opdr_materiaal_omschr);
var l_mld_opdr_materiaal_prijs = l_mat_regels[i].price;
var l_mld_opdr_materiaal_btw_perc = l_mat_regels[i].vat_perc;
var l_mld_opdr_materiaal_aantal = l_mat_regels[i].quantity;

Binary file not shown.

View File

@@ -59,6 +59,31 @@ SET prs_kenmerk_omschrijving = 'Verwerken eenheidsprijzen',
prs_kenmerk_nmax = 2
WHERE prs_kenmerk_key = 13;
-- MARX#81899 Verbeterpunten signalering richting VG support mbt de NQ lijst
-- 1x daags
-- flags moet op 1 zodat de xemail ook gaat werken.
-- Deze noti-job is voor intern: de Mareon applicatiebeheerder(s) en helpdesk Mareon.
INSERT INTO fac_notificatie_job (fac_notificatie_job_view, fac_notificatie_job_oms, fac_notificatie_job_interval, fac_notificatie_job_mode, fac_notificatie_job_flags, fac_notificatie_job_nextrun)
VALUES ('mar_v_noti_nq_uitval_intern', 'Berichtgeving van fouten in de NQ (notify queue)', 24, 2, 1, to_date((to_char(sysdate,'dd-mm-yyyy') || ' 18:00'),'dd-mm-yyyy hh24:mi'));
INSERT INTO fac_notificatie_job (fac_notificatie_job_view, fac_notificatie_job_oms, fac_notificatie_job_interval, fac_notificatie_job_mode, fac_notificatie_job_flags, fac_notificatie_job_nextrun)
VALUES ('mar_v_noti_nq_uitval_extern', 'Berichtgeving van fouten in de NQ (notify queue)', 24, 2, 1, to_date((to_char(sysdate,'dd-mm-yyyy') || ' 18:00'),'dd-mm-yyyy hh24:mi'));
-- Nieuwe functie die bedoeld zijn voor de support medewerker (of afdeling) van betreffende systeem (T365, REMS, Twinq, Facilitor, Viewpoint, Empire), die in geval van een NQ error een notificatie mail ontvangen.
-- Zodat we op deze personen, met deze functie dus, kunnen filteren in een nieuw flexprop bij de opdrachtgever (prs_bedrijf).
-- Als hier een persoon is geselecteerd, dan krijgt deze persoon een NQ error mail.
-- Ook heeft deze persoon toegang tot het rapport gebaseerd op VIEW 'marx_v_my_mail_queue_error', via de kolom FCLT_3D_USER_KEY
INSERT INTO PRS_SRTPERSLID (prs_srtperslid_key, prs_srtperslid_omschrijving) VALUES (3, 'Extern ICT support');
--Eerst dummy om kenmerk domein te kunnen aanmaken...
CREATE OR REPLACE VIEW MAR_V_PERSLID_NQ_ERROR (prs_perslid_key, prs_perslid_email) AS SELECT 1, 'MB was here' FROM DUAL;
INSERT INTO fac_kenmerkdomein ( fac_kenmerkdomein_key, fac_kenmerkdomein_module, fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam,
fac_kenmerkdomein_kolomnaam ,fac_kenmerkdomein_kolomtxt)
SELECT 16, 'PRS', 'Personen om NQ errors te mailen ', 'MAR_V_PERSLID_NQ_ERROR', 'PRS_PERSLID_KEY', 'PRS_PERSLID_EMAIL' FROM DUAL;
INSERT INTO prs_kenmerk (prs_kenmerk_key, prs_kenmerk_niveau, prs_kenmerk_rolcode, prs_kenmerk_volgnr, prs_kenmerk_omschrijving, prs_kenmerk_kenmerktype, fac_kenmerkdomein_key, prs_kenmerk_hint)
SELECT 80, 'B', 1, 35, '$MAR_MAILADRES_NQ_ERROR', 'R', 16, 'Uitleg: Indien ingevuld, dan worden evt. NQ errors naar dit mailadres gestuurd (genotificeerd)' FROM DUAL;
------ payload end ------

View File

@@ -8568,6 +8568,7 @@ SET DEFINE OFF
fac_notificatie_key,
fac_srtnotificatie_key,
fac_srtnotificatie_code,
code_vertaald,
fac_notificatie_failcount,
fac_notificatie_notbefore,
the_reference,
@@ -8584,6 +8585,17 @@ SET DEFINE OFF
fac_notificatie_key,
fac_srtnotificatie_key,
fac_srtnotificatie_code,
DECODE(fac_srtnotificatie_code,
'ORDACP', 'Acceptatie (ACC)',
'ORDNOB', 'Notitie (FREETEXT)',
'ORDUPD', 'Update (BIJLAGEN)',
'ORDPLD', 'Afspraak (AFH)',
'ORDPL2', 'Verlengen (VER)',
'ORDHLT', 'Onderbreking (AFW, AFR, BBT, BNT, MIB, VBW)',
'ORDRSM', 'In uitvoering (UIT)',
'ORDCAN', 'Afwijzen (WEI, ANN)',
'ORDAFM', 'Gereedmelding (GER)',
'ORDAFR', 'Afronden (FIN)', 'Update (UPD)') code_vertaald,
fac_notificatie_failcount,
fac_notificatie_notbefore,
mld_opdr_marx_nr,
@@ -8600,14 +8612,117 @@ SET DEFINE OFF
fac_notificatie_key,
fac_srtnotificatie_key,
fac_srtnotificatie_code,
DECODE(fac_srtnotificatie_code,
'FINNEW', 'Nieuw (NEW)', 'Update (UPD)') code_vertaald,
fac_notificatie_failcount,
fac_notificatie_notbefore,
fin_factuur_nr,
NULL,
fin_factuur_nr,
fac_tracking_datum,
fac_tracking_oms
FROM marx_v_rap_queue_factuur_error;
-- MARX#81899 Verbeterpunten signalering richting VG support mbt de NQ lijst
CREATE OR REPLACE VIEW MAR_V_PERSLID_NQ_ERROR (prs_perslid_key, prs_perslid_email)
AS
SELECT p.prs_perslid_key, p.prs_perslid_email
FROM prs_perslid p
WHERE p.prs_srtperslid_key = 3
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
UNION ALL
SELECT wp.prs_perslid_key, wp.prs_perslid_email
FROM mar_v_woco_perslid wp
WHERE wp.prs_perslid_apikey IS NULL
AND wp.prs_perslid_email IS NOT NULL;
-- View met mijn(!) NQ errors.
CREATE OR REPLACE VIEW marx_v_my_queue_error
(
FCLT_3D_USER_KEY,
prs_bedrijf_key,
prs_bedrijf_naam,
prs_perslid_key,
fac_entity,
the_key,
fac_notificatie_key,
fac_srtnotificatie_key,
fac_srtnotificatie_code,
code_vertaald,
fac_notificatie_failcount,
fac_notificatie_notbefore,
the_reference,
the_ext_reference,
fac_tracking_datum,
fac_tracking_oms
)
AS
SELECT fac.safe_to_number(prs_kenmerklink_waarde),
prs_bedrijf_key,
prs_bedrijf_naam,
prs_perslid_key,
fac_entity,
the_key,
fac_notificatie_key,
fac_srtnotificatie_key,
fac_srtnotificatie_code,
code_vertaald,
fac_notificatie_failcount,
fac_notificatie_notbefore,
the_reference,
the_ext_reference,
fac_tracking_datum,
fac_tracking_oms
FROM marx_v_rap_queue_error, prs_kenmerklink
WHERE prs_kenmerk_key = 80
AND prs_link_key = prs_bedrijf_key
AND prs_kenmerklink_niveau = 'B'
AND prs_kenmerklink_verwijder IS NULL;
-- View met mijn(!) NQ errors sinds de laatste keer.
CREATE OR REPLACE VIEW marx_v_my_mail_queue_error
(
FCLT_3D_USER_KEY,
prs_bedrijf_key,
prs_bedrijf_naam,
prs_perslid_key,
fac_entity,
the_key,
fac_notificatie_key,
fac_srtnotificatie_key,
fac_srtnotificatie_code,
code_vertaald,
fac_notificatie_failcount,
fac_notificatie_notbefore,
the_reference,
the_ext_reference,
fac_tracking_datum,
fac_tracking_oms
)
AS
SELECT FCLT_3D_USER_KEY,
prs_bedrijf_key,
prs_bedrijf_naam,
prs_perslid_key,
fac_entity,
the_key,
fac_notificatie_key,
fac_srtnotificatie_key,
fac_srtnotificatie_code,
code_vertaald,
fac_notificatie_failcount,
fac_notificatie_notbefore,
the_reference,
the_ext_reference,
fac_tracking_datum,
fac_tracking_oms
FROM marx_v_my_queue_error
WHERE fac_tracking_datum >= (SELECT MIN(nj.fac_notificatie_job_lastrun)
FROM fac_notificatie_job nj
WHERE nj.fac_notificatie_job_view = 'MAR_V_NOTI_NQ_UITVAL_EXTERN');
-- MARX#65192: MARX19 OVERALL TICKET - Reset NQ: Mogelijkheid om (in sommige gevallen waarin dat wenselijk/noodzakelijk is) een bericht die fout blijft gaan, uit de NQ te verwijderen.
-- Bv HTTP-errors die niet in Mareon te herstellen zijn (omdat oorzaak bij externe systeem ligt), en externe systeem geen oplossing biedt. Of wel, maar over enkele maanden (jaren).
-- Perslid p_perslid_key die aanroep (import) doet, deze moet PRSSYS rechten hebben.
@@ -11795,7 +11910,12 @@ SET DEFINE OFF
END IF;
h_rc_ordernr := rc.ordernr;
END LOOP;
-- MARX#90231: CR's ervan maken... (TODO, comments uit onderstaande 3 regels verwijderen.
UPDATE fac_imp_factuur
SET omschrijving = REPLACE(omschrijving, '@@', CHR(10))
WHERE fac_import_key = p_import_key;
COMMIT;
EXCEPTION
WHEN OTHERS
@@ -18725,13 +18845,27 @@ SET DEFINE OFF
AND a.prs_afdeling_key = p.prs_afdeling_key
AND b.prs_bedrijf_key = a.prs_bedrijf_key
AND b.prs_bedrijf_key = sa.prs_bedrijf_key
AND INSTR (sa.prs_bedrijf_mailadres, '@') > 0
UNION ALL
SELECT DISTINCT 'CUST05', '', noti.prs_perslid_key,
AND INSTR (sa.prs_bedrijf_mailadres, '@') > 0;
-- MARX#81899 Verbeterpunten signalering richting VG support mbt de NQ lijst
-- 1) alle Mareon support medewerkers van afdeling 121 met ingids = 1 (as-is kopie van bovenstaande view mar_v_noti_sync_uitval, let op, ook VGmareon (emmen) doet in deze mee, deze kan uitgefaseerd worden...
CREATE OR REPLACE VIEW mar_v_noti_nq_uitval_intern
(
code,
sender,
receiver,
text,
key,
xkey,
xemail,
xmobile
)
AS
SELECT DISTINCT 'CUST05', '', noti.prs_perslid_key,
'Sinds de laatste keer mail (tot nu toe): '
|| (SELECT count(*) FROM marx_v_rap_queue_error rap2 WHERE rap2.fac_tracking_datum >=
(SELECT MIN(nj.fac_notificatie_job_lastrun) FROM fac_notificatie_job nj
WHERE nj.fac_notificatie_job_view = 'MAR_V_NOTI_SYNC_UITVAL'))
WHERE nj.fac_notificatie_job_view = 'MAR_V_NOTI_NQ_UITVAL_INTERN'))
|| ' nieuwe NQ fout(en) opgetreden.',
(SELECT fac_usrrap_key FROM fac_usrrap WHERE fac_usrrap_code = 'NQERRORS'),
NULL, NULL, NULL
@@ -18741,9 +18875,27 @@ SET DEFINE OFF
AND INSTR (noti.prs_perslid_email, '@') > 0
AND noti.prs_perslid_ingids = 1
AND rap.fac_tracking_datum >= (SELECT MIN(nj.fac_notificatie_job_lastrun) FROM fac_notificatie_job nj
WHERE nj.fac_notificatie_job_view = 'MAR_V_NOTI_SYNC_UITVAL');
WHERE nj.fac_notificatie_job_view = 'MAR_V_NOTI_NQ_UITVAL_INTERN');
-- MARX#81899 Verbeterpunten signalering richting VG support mbt de NQ lijst
-- Indien nieuwe prsbedrijf flexprop 'mailadres' veld gevuld met de support afdeling van betreffende systeem (T365, REMS, Twinq, Facilitor, Viewpoint, Empire), dan gaat hier een mail naar toe in geval van een NQ error.
CREATE OR REPLACE VIEW mar_v_noti_nq_uitval_extern
(
code,
receiver,
text,
geturl
)
AS
SELECT DISTINCT 'CUST05',
mqe.FCLT_3D_USER_KEY,
'Sinds de laatste keer mail (tot nu toe): '
|| (SELECT count(*) FROM marx_v_my_mail_queue_error rap2 WHERE rap2.FCLT_3D_USER_KEY = mqe.FCLT_3D_USER_KEY)
|| ' nieuwe NQ fout(en) opgetreden.',
'appl/fac/fac_report.asp?formail=1' || '&' || 'showall=1' || '&' || 'rapcode=MYNQERRORS' || '&' || 'mode=list' || '&' || 'outputmode=1'
FROM marx_v_my_mail_queue_error mqe;
-- MARX#87282 Nieuwe API voor activeren leveranciers vanuit (opdrachtgevers)ERP naar Mareon
-- Nieuwe view t.b.v. notificeren naar leverancier (en ook naar Mareon helpdesk)...