Merge 2025.1 DB50a patches

svn path=/Database/trunk/; revision=68306
This commit is contained in:
Jos Groot Lipman
2025-03-06 14:54:32 +00:00
parent 15c176f8b7
commit a400748783
11 changed files with 181 additions and 89 deletions

View File

@@ -66,10 +66,12 @@ AS
RETURN NUMBER; RETURN NUMBER;
PROCEDURE notifybestellingbedrijven (pbestelkey NUMBER, PROCEDURE notifybestellingbedrijven (pbestelkey NUMBER,
ptrackingkey NUMBER); ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifybestelopdrbedrijven (pbestelopdrkey NUMBER, PROCEDURE notifybestelopdrbedrijven (pbestelopdrkey NUMBER,
ptrackingkey NUMBER); ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE autodeliver; PROCEDURE autodeliver;
@@ -2226,14 +2228,16 @@ AS
END; END;
PROCEDURE notifybestellingbedrijven (pbestelkey NUMBER, PROCEDURE notifybestellingbedrijven (pbestelkey NUMBER,
ptrackingkey NUMBER) ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS AS
BEGIN BEGIN
NULL; -- TODO? NULL; -- TODO?
END; END;
PROCEDURE notifybestelopdrbedrijven (pbestelopdrkey NUMBER, PROCEDURE notifybestelopdrbedrijven (pbestelopdrkey NUMBER,
ptrackingkey NUMBER) ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS AS
BEGIN BEGIN
FOR bedrijfrec IN (SELECT b.prs_bedrijf_key, FOR bedrijfrec IN (SELECT b.prs_bedrijf_key,
@@ -2261,7 +2265,8 @@ AS
prefkey => pbestelopdrkey, prefkey => pbestelopdrkey,
ptrackingkey => ptrackingkey, ptrackingkey => ptrackingkey,
preference => bedrijfrec.bes_bestelopdr_id, preference => bedrijfrec.bes_bestelopdr_id,
plocatie_key => bedrijfrec.alg_locatie_key); plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP; END LOOP;
END; END;

View File

@@ -22,7 +22,8 @@ CREATE OR REPLACE PACKAGE cnt AS
PROCEDURE remove(p_contract_key IN NUMBER); PROCEDURE remove(p_contract_key IN NUMBER);
PROCEDURE notifycontractbedrijven (pcntkey NUMBER, PROCEDURE notifycontractbedrijven (pcntkey NUMBER,
ptrackingkey NUMBER); ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PRAGMA RESTRICT_REFERENCES (cnt_contract_status, WNDS, WNPS); PRAGMA RESTRICT_REFERENCES (cnt_contract_status, WNDS, WNPS);
END cnt; END cnt;
@@ -704,7 +705,8 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
END; END;
PROCEDURE notifycontractbedrijven (pcntkey NUMBER, PROCEDURE notifycontractbedrijven (pcntkey NUMBER,
ptrackingkey NUMBER) ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS AS
BEGIN BEGIN
FOR bedrijfrec FOR bedrijfrec
@@ -773,7 +775,8 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
prefkey => pcntkey, prefkey => pcntkey,
ptrackingkey => ptrackingkey, ptrackingkey => ptrackingkey,
preference => bedrijfrec.cnt_contract_nummer_intern, preference => bedrijfrec.cnt_contract_nummer_intern,
plocatie_key => bedrijfrec.alg_locatie_key); plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP; END LOOP;
END; END;

View File

@@ -148,14 +148,15 @@ CREATE OR REPLACE PACKAGE fac
PROCEDURE trackaction_withkey (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE, poms VARCHAR2, psubjectkey NUMBER, new_fac_tracking_key OUT NUMBER); PROCEDURE trackaction_withkey (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE, poms VARCHAR2, psubjectkey NUMBER, new_fac_tracking_key OUT NUMBER);
PROCEDURE backtrackaction (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE); PROCEDURE backtrackaction (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE);
PROCEDURE notifytracking(psrtnotificatiekey NUMBER, pperslid_key NUMBER, ptracking_oms VARCHAR2, prefkey NUMBER, ptrackingkey NUMBER DEFAULT NULL); PROCEDURE notifytracking(psrtnotificatiekey NUMBER, pperslid_key NUMBER, ptracking_oms VARCHAR2, prefkey NUMBER, ptrackingkey NUMBER DEFAULT NULL);
PROCEDURE notifytrackingbedrijven(ptrackingkey NUMBER); PROCEDURE notifytrackingbedrijven(ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifytrackingbedrijven(peventcode IN VARCHAR2, prefkey IN NUMBER); PROCEDURE notifytrackingbedrijven(peventcode IN VARCHAR2, prefkey IN NUMBER, pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifygeneriekbedrijven(prefkey NUMBER, ptrackingkey NUMBER); PROCEDURE notifygeneriekbedrijven(prefkey NUMBER, ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifybedrijf(pbedrijf_key NUMBER, PROCEDURE notifybedrijf(pbedrijf_key NUMBER,
pbedrijfadres_type VARCHAR2, pbedrijfadres_type VARCHAR2,
prefkey NUMBER, prefkey NUMBER,
ptrackingkey NUMBER DEFAULT NULL, ptrackingkey NUMBER DEFAULT NULL,
psrtnoti_key NUMBER DEFAULT NULL, -- als geen trackingkey psrtnoti_key NUMBER DEFAULT NULL, -- als geen trackingkey
pnotidelay NUMBER DEFAULT NULL,
pxrefkey NUMBER DEFAULT NULL, pxrefkey NUMBER DEFAULT NULL,
preference VARCHAR2 DEFAULT NULL, preference VARCHAR2 DEFAULT NULL,
psender VARCHAR2 DEFAULT NULL, psender VARCHAR2 DEFAULT NULL,
@@ -2298,6 +2299,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
lphone fac_notificatie.fac_notificatie_receiver_phone%TYPE; lphone fac_notificatie.fac_notificatie_receiver_phone%TYPE;
llang prs_perslid.prs_perslid_lang%TYPE; llang prs_perslid.prs_perslid_lang%TYPE;
lsysteem prs_perslid.prs_perslid_systeemadres%TYPE; lsysteem prs_perslid.prs_perslid_systeemadres%TYPE;
notbefore fac_notificatie.fac_notificatie_notbefore%TYPE;
delaymode NUMBER;
immediate NUMBER(1); immediate NUMBER(1);
BEGIN BEGIN
IF pcode IS NOT NULL IF pcode IS NOT NULL
@@ -2421,6 +2424,15 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND basrt.fac_srtnotificatie_key = skey AND basrt.fac_srtnotificatie_key = skey
) )
LOOP LOOP
notbefore := SYSDATE;
delaymode := fac.safe_to_number(fac.getsetting('noti_delay_mode'));
IF delaymode = 1 -- default uit, naar technische adres zonder vertraging
THEN
notbefore := notbefore + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0);
ELSIF delaymode > 1 -- fixed delay
THEN
notbefore := notbefore + delaymode / 60/ 60/ 24;
END IF;
INSERT INTO fac_notificatie (fac_srtnotificatie_key, INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status, fac_notificatie_status,
prs_perslid_key_sender, prs_perslid_key_sender,
@@ -2446,7 +2458,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
lsysteem, lsysteem,
pattach, pattach,
bedrijfadresrec.prs_bedrijfadres_key, -- enige bijzondere, rest gewoon blind doorgeven, bedrijfadresrec.prs_bedrijfadres_key, -- enige bijzondere, rest gewoon blind doorgeven,
SYSDATE); -- hier geen delay + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0)); notbefore);
END LOOP; END LOOP;
END IF; END IF;
@@ -2616,7 +2628,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
soms, soms,
pref, pref,
pxref, pxref,
pprio, CASE WHEN l_srtnoti_delay = 0 THEN 1 ELSE pprio END, // delay 0 altijd hoge prio en 'voorkruipen'
psender, psender,
llang, llang,
lsysteem, lsysteem,
@@ -4852,7 +4864,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
END; END;
-- Zoek de nieuwste 'peventcode' tracking van prefkey en notificeer daarvan de bedrijven -- Zoek de nieuwste 'peventcode' tracking van prefkey en notificeer daarvan de bedrijven
PROCEDURE notifytrackingbedrijven(peventcode IN VARCHAR2, prefkey IN NUMBER) PROCEDURE notifytrackingbedrijven(peventcode IN VARCHAR2, prefkey IN NUMBER, pnotidelay NUMBER DEFAULT NULL)
AS AS
l_trackingkey fac_tracking.fac_tracking_key%TYPE; l_trackingkey fac_tracking.fac_tracking_key%TYPE;
BEGIN BEGIN
@@ -4865,12 +4877,12 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND fsn.fac_srtnotificatie_code = peventcode; AND fsn.fac_srtnotificatie_code = peventcode;
IF l_trackingkey IS NOT NULL IF l_trackingkey IS NOT NULL
THEN THEN
fac.notifytrackingbedrijven (l_trackingkey); fac.notifytrackingbedrijven (l_trackingkey, pnotidelay);
END IF; END IF;
END; END;
-- Notificeren via een technisch adres -- Notificeren via een technisch adres
PROCEDURE notifytrackingbedrijven (ptrackingkey NUMBER) PROCEDURE notifytrackingbedrijven (ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL)
AS AS
lxmlnode fac_srtnotificatie.fac_srtnotificatie_xmlnode%TYPE; lxmlnode fac_srtnotificatie.fac_srtnotificatie_xmlnode%TYPE;
lcode fac_srtnotificatie.fac_srtnotificatie_code%TYPE; lcode fac_srtnotificatie.fac_srtnotificatie_code%TYPE;
@@ -4891,30 +4903,30 @@ CREATE OR REPLACE PACKAGE BODY fac AS
CASE CASE
WHEN lxmlnode = 'melding' WHEN lxmlnode = 'melding'
THEN THEN
mld.notifymeldingbedrijven(l_refkey, ptrackingkey); mld.notifymeldingbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'opdracht' WHEN lxmlnode = 'opdracht'
THEN THEN
mld.notifyopdrbedrijven(l_refkey, ptrackingkey); mld.notifyopdrbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'reservering' OR lxmlnode = 'xreservering' WHEN lxmlnode = 'reservering' OR lxmlnode = 'xreservering'
THEN THEN
res.notifyreserveringbedrijven(l_refkey, ptrackingkey); res.notifyreserveringbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'bestelling' WHEN lxmlnode = 'bestelling'
THEN THEN
bes.notifybestellingbedrijven(l_refkey, ptrackingkey); bes.notifybestellingbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'bestelopdr' WHEN lxmlnode = 'bestelopdr'
THEN THEN
bes.notifybestelopdrbedrijven(l_refkey, ptrackingkey); bes.notifybestelopdrbedrijven(l_refkey, ptrackingkey, pnotidelay);
WHEN lxmlnode = 'contract' WHEN lxmlnode = 'contract'
THEN THEN
cnt.notifycontractbedrijven(l_refkey, ptrackingkey); cnt.notifycontractbedrijven(l_refkey, ptrackingkey, pnotidelay);
ELSE ELSE
fac.notifygeneriekbedrijven(l_refkey, ptrackingkey); fac.notifygeneriekbedrijven(l_refkey, ptrackingkey, pnotidelay);
END CASE; END CASE;
END; END;
-- Notificeer genrieke bedrijven die luisteren naar onze notificatie -- Notificeer genrieke bedrijven die luisteren naar onze notificatie
PROCEDURE notifygeneriekbedrijven (prefkey NUMBER, ptrackingkey NUMBER) PROCEDURE notifygeneriekbedrijven (prefkey NUMBER, ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL)
AS AS
BEGIN BEGIN
FOR bedrijfrec FOR bedrijfrec
@@ -4933,7 +4945,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key, fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type, pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => prefkey, prefkey => prefkey,
ptrackingkey => ptrackingkey); ptrackingkey => ptrackingkey,
pnotidelay => pnotidelay);
END LOOP; END LOOP;
END; END;
@@ -4943,6 +4956,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
prefkey NUMBER, prefkey NUMBER,
ptrackingkey NUMBER DEFAULT NULL, ptrackingkey NUMBER DEFAULT NULL,
psrtnoti_key NUMBER DEFAULT NULL, -- als geen trackingkey, bijvoorbeeld vanuit mld_t_mld_opdr_B_IU als teverzenden op 2 wordt gezet psrtnoti_key NUMBER DEFAULT NULL, -- als geen trackingkey, bijvoorbeeld vanuit mld_t_mld_opdr_B_IU als teverzenden op 2 wordt gezet
pnotidelay NUMBER DEFAULT NULL,
pxrefkey NUMBER DEFAULT NULL, pxrefkey NUMBER DEFAULT NULL,
preference VARCHAR2 DEFAULT NULL, preference VARCHAR2 DEFAULT NULL,
psender VARCHAR2 DEFAULT NULL, -- alleen bij opdrachten alg_locatie_email? psender VARCHAR2 DEFAULT NULL, -- alleen bij opdrachten alg_locatie_email?
@@ -4964,6 +4978,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
nn_noti NUMBER (10); nn_noti NUMBER (10);
aantal NUMBER (10); aantal NUMBER (10);
dummy VARCHAR2 (1); dummy VARCHAR2 (1);
notbefore fac_notificatie.fac_notificatie_notbefore%TYPE;
delaymode NUMBER;
BEGIN BEGIN
IF ptrackingkey IS NULL IF ptrackingkey IS NULL
@@ -5098,6 +5114,19 @@ CREATE OR REPLACE PACKAGE BODY fac AS
-- Ok, het technisch adres luistert naar onze notificatie! -- Ok, het technisch adres luistert naar onze notificatie!
-- Geen putnotificationsrtprio. Die is veel te agressief met ontdubbelen -- Geen putnotificationsrtprio. Die is veel te agressief met ontdubbelen
delaymode := fac.safe_to_number(fac.getsetting('noti_delay_mode'));
IF pnotidelay IS NOT NULL
THEN
notbefore := SYSDATE + pnotidelay / 60/ 60/ 24;
ELSIF delaymode = 1
THEN
notbefore := SYSDATE + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0);
ELSIF delaymode > 1 -- fixed delay
THEN
notbefore := SYSDATE + delaymode / 60/ 60/ 24;
ELSE -- delaymode = 0 -- default uit, naar technische adres zonder vertraging
notbefore := SYSDATE;
END IF;
INSERT INTO fac_notificatie (fac_srtnotificatie_key, INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_oms, fac_notificatie_oms,
fac_notificatie_refkey, fac_notificatie_refkey,
@@ -5115,7 +5144,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
psender, psender,
0, 0,
l_bdradr_key, l_bdradr_key,
SYSDATE); -- nooit delay, we ontdubbelen toch niet? + NVL(l_srtnoti_delay/ 60/ 60/ 24, 0)); notbefore);
END; END;
-- Levert de (nieuwste) datum op van een getrackt event op key -- Levert de (nieuwste) datum op van een getrackt event op key

View File

@@ -17,6 +17,8 @@ AS
PROCEDURE starttask (p_taskcode VARCHAR2, PROCEDURE starttask (p_taskcode VARCHAR2,
p_nextrun DATE DEFAULT SYSDATE, p_nextrun DATE DEFAULT SYSDATE,
p_customerid VARCHAR2 DEFAULT NULL); p_customerid VARCHAR2 DEFAULT NULL);
PROCEDURE waittask (pinterval NUMBER DEFAULT 5,
ptimeout NUMBER DEFAULT 300);
END tsk; END tsk;
/ /
@@ -28,7 +30,8 @@ AS
tsk_master_schema VARCHAR(32); tsk_master_schema VARCHAR(32);
custid fac_version.fac_version_cust%TYPE; custid fac_version.fac_version_cust%TYPE;
selfid fac_version.fac_version_cust%TYPE; selfid fac_version.fac_version_cust%TYPE;
selfschema fac_version.fac_version_schema%TYPE; fac_schema fac_version.fac_version_schema%TYPE;
currentdb_schema VARCHAR2 (64);
tsksql VARCHAR2 (4000); tsksql VARCHAR2 (4000);
cursor_name INTEGER; cursor_name INTEGER;
rows_processed INTEGER; rows_processed INTEGER;
@@ -36,16 +39,17 @@ AS
SELECT fac_version_cust, SELECT fac_version_cust,
fac_version_schema fac_version_schema
INTO selfid, INTO selfid,
selfschema fac_schema
FROM fac_version; FROM fac_version;
custid := COALESCE(p_customerid, selfid); custid := COALESCE(p_customerid, selfid);
tsk_master_schema := fac.getsetting ('tsk_master_schema'); tsk_master_schema := fac.getsetting ('tsk_master_schema');
currentdb_schema := SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA');
IF tsk_master_schema IS NULL OR tsk_master_schema = USER IF tsk_master_schema IS NULL OR tsk_master_schema = '*SELF*' OR tsk_master_schema = currentdb_schema
THEN -- zelf oplossen THEN -- zelf oplossen
BEGIN BEGIN
INSERT INTO fac_cust(fac_cust_customerid, fac_cust_schema) INSERT INTO fac_cust(fac_cust_customerid, fac_cust_schema)
VALUES(custid, COALESCE(p_schema, selfschema)); VALUES(custid, COALESCE(p_schema, fac_schema));
EXCEPTION EXCEPTION
WHEN DUP_VAL_ON_INDEX WHEN DUP_VAL_ON_INDEX
THEN THEN
@@ -53,7 +57,7 @@ AS
END; END;
-- Schema bijwerken -- Schema bijwerken
UPDATE fac_cust UPDATE fac_cust
SET fac_cust_schema = COALESCE(p_schema, selfschema) SET fac_cust_schema = COALESCE(p_schema, fac_schema)
WHERE fac_cust_customerid = custid; WHERE fac_cust_customerid = custid;
ELSE -- Remote register ELSE -- Remote register
tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.registercust(:custid, :schema); END;'; tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.registercust(:custid, :schema); END;';
@@ -61,7 +65,7 @@ AS
cursor_name := DBMS_SQL.open_cursor; cursor_name := DBMS_SQL.open_cursor;
DBMS_SQL.PARSE (cursor_name, tsksql, DBMS_SQL.NATIVE); DBMS_SQL.PARSE (cursor_name, tsksql, DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':custid', selfid); DBMS_SQL.BIND_VARIABLE (cursor_name, ':custid', selfid);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':schema', selfschema); DBMS_SQL.BIND_VARIABLE (cursor_name, ':schema', fac_schema);
rows_processed := DBMS_SQL.EXECUTE (cursor_name); rows_processed := DBMS_SQL.EXECUTE (cursor_name);
DBMS_SQL.CLOSE_CURSOR (cursor_name); DBMS_SQL.CLOSE_CURSOR (cursor_name);
END IF; END IF;
@@ -73,13 +77,15 @@ AS
tsk_master_schema VARCHAR(32); tsk_master_schema VARCHAR(32);
selfid fac_version.fac_version_cust%TYPE; selfid fac_version.fac_version_cust%TYPE;
tsksql VARCHAR2 (4000); tsksql VARCHAR2 (4000);
currentdb_schema VARCHAR2 (64);
cursor_name INTEGER; cursor_name INTEGER;
rows_processed INTEGER; rows_processed INTEGER;
BEGIN BEGIN
SELECT fac_version_cust INTO selfid FROM fac_version; SELECT fac_version_cust INTO selfid FROM fac_version;
tsk_master_schema := fac.getsetting ('tsk_master_schema'); tsk_master_schema := fac.getsetting ('tsk_master_schema');
currentdb_schema := SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA');
IF tsk_master_schema IS NULL OR tsk_master_schema = USER IF tsk_master_schema IS NULL OR tsk_master_schema = '*SELF*' OR tsk_master_schema = currentdb_schema
THEN -- zelf oplossen THEN -- zelf oplossen
BEGIN BEGIN
INSERT INTO fac_task(fac_cust_key, fac_task_code) INSERT INTO fac_task(fac_cust_key, fac_task_code)
@@ -111,13 +117,15 @@ AS
tsk_master_schema VARCHAR(32); tsk_master_schema VARCHAR(32);
selfid fac_version.fac_version_cust%TYPE; selfid fac_version.fac_version_cust%TYPE;
tsksql VARCHAR2 (4000); tsksql VARCHAR2 (4000);
currentdb_schema VARCHAR2 (64);
cursor_name INTEGER; cursor_name INTEGER;
rows_processed INTEGER; rows_processed INTEGER;
BEGIN BEGIN
SELECT fac_version_cust INTO selfid FROM fac_version; SELECT fac_version_cust INTO selfid FROM fac_version;
tsk_master_schema := fac.getsetting ('tsk_master_schema'); tsk_master_schema := fac.getsetting ('tsk_master_schema');
currentdb_schema := SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA');
IF tsk_master_schema IS NULL OR tsk_master_schema = USER IF tsk_master_schema IS NULL OR tsk_master_schema = '*SELF*' OR tsk_master_schema = currentdb_schema
THEN -- zelf oplossen THEN -- zelf oplossen
UPDATE fac_task UPDATE fac_task
SET fac_task_nextrun = fac.safe_LEAST (p_nextrun, fac_task_nextrun) SET fac_task_nextrun = fac.safe_LEAST (p_nextrun, fac_task_nextrun)
@@ -137,6 +145,34 @@ AS
DBMS_SQL.CLOSE_CURSOR (cursor_name); DBMS_SQL.CLOSE_CURSOR (cursor_name);
END IF; END IF;
END; END;
-- Keert terug als er iets interessants in fac_task staat
-- of als timeout is verstreken
PROCEDURE waittask (pinterval NUMBER DEFAULT 5,
ptimeout NUMBER DEFAULT 300)
AS
timeend DATE;
firsttask DATE;
BEGIN
timeend := SYSDATE + ptimeout / 60/60/24;
WHILE timeend > SYSDATE
LOOP
SELECT MIN (fac_task_nextrun)
INTO firsttask
FROM fac_task tt, fac_cust tsko
WHERE tt.fac_cust_key = tsko.fac_cust_key
AND fac_cust_enabled > 0
AND fac_task_nextrun <= SYSDATE
AND BITAND (fac_task_flags, 1) = 1;
IF firsttask <= SYSDATE
THEN
RETURN;
END IF;
DBMS_SESSION.SLEEP(pinterval);
END LOOP;
END;
END tsk; END tsk;
/ /
-- tsk_master_schema needs: -- tsk_master_schema needs:

View File

@@ -65,7 +65,9 @@ DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'sys_ip_restrict_internal'
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_imagecharts_account_id' , 'string' , '' , 'Image-charts account_id (future use)') DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_imagecharts_account_id' , 'string' , '' , 'Image-charts account_id (future use)')
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_imagecharts_secret_key' , 'string' , '' , 'Image-charts secret_key (future use)') DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_imagecharts_secret_key' , 'string' , '' , 'Image-charts secret_key (future use)')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_master_schema' , 'string' , '' , 'Task master schema name (not necessarily customerId)') DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_master_schema' , 'string' , '' , 'Tasker master schema name (not necessarily customerId)')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_extra_folders' , 'array' , '' , 'Tasker extra folders to start CUST tasks (future use))')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', 'noti_delay_mode' , 'number' , '0' , '0=Notification to bedrijfadres always zero delay, 1=honor fac_srtnotificatie_delay, >1=fixed delay in seconds (eg. 5)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_api2_compatibility' , 'number' , '0' , '0=latest and greatest, bit 1=backwards compatible') DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_api2_compatibility' , 'number' , '0' , '0=latest and greatest, bit 1=backwards compatible')
@@ -211,9 +213,9 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flexAllowedExt'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'imgAllowedExt' , 'string' , 'jpg|jpeg|png|gif|bmp' , 'Allowed image extensions') DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'imgAllowedExt' , 'string' , 'jpg|jpeg|png|gif|bmp' , 'Allowed image extensions')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flexPreviewExt' , 'string' , '.*\.(jpg|jpeg|png|gif|bmp)$' , 'Extentions of attachments to preview in show_mld') DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flexPreviewExt' , 'string' , '.*\.(jpg|jpeg|png|gif|bmp)$' , 'Extentions of attachments to preview in show_mld')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_mimetypes' , 'json' , '{ "jpg": "image/jpeg", "jpeg": "image/jpeg" , "png": "image/png", "bmp": "image/bmp", "gif": "image/gif", "pdf": "application/pdf", "html": "text/html", "eml": "message/rfc822" }', 'Supported streaming mimetypes') DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_mimetypes' , 'json' , '{ "jpg": "image/jpeg", "jpeg": "image/jpeg" , "png": "image/png", "bmp": "image/bmp", "gif": "image/gif", "pdf": "application/pdf", "html": "text/html", "eml": "message/rfc822" }', 'Supported streaming mimetypes')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_min_size' , 'number' , '64' , 'E-mail attachments smaller (in bytes) than this are silently ignored') DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flex_min_size' , 'number' , '64' , 'E-mail attachments smaller (in bytes) than this are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_min_imgsize' , 'number' , '64' , 'Future use. E-mail image attachments smaller (in bytes) than this are silently ignored') DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flex_min_imgsize' , 'number' , '64' , 'E-mail image attachments smaller (in bytes) than this are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_min_imgsize_ext' , 'string' , '.*\.(jpg|jpeg|png|gif|bmp)$' , 'Future use. Small (flex_min_imgsize) E-mail attachments are ignored') DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flex_min_imgsize_ext' , 'string' , '.*\.(jpg|jpeg|png|gif|bmp)$' , 'Small (flex_min_imgsize) E-mail attachments are ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mail_subject_undeliverable' , 'string' , '^(Undeliverable:|Message undeliverable:|Onbestelbaar:|Bericht onbestelbaar:)', 'Undeliverable E-mails with bounced this subject are silently ignored') DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mail_subject_undeliverable' , 'string' , '^(Undeliverable:|Message undeliverable:|Onbestelbaar:|Bericht onbestelbaar:)', 'Undeliverable E-mails with bounced this subject are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mail_subject_ignore' , 'string' , '^(Automatic reply:|Automatisch antwoord:)', 'E-mails with this subject are silently ignored') DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mail_subject_ignore' , 'string' , '^(Automatic reply:|Automatisch antwoord:)', 'E-mails with this subject are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'mld_instemmer_self' , 'number' , '0' , 'Fallback option for approving a concept if no consenter is defined or if you are the consenter { 0=No consent needed | 1=Budgetholder | 2=Objectmanager | 4=Departmentmanager | 8=Manager | 16=Buildingmanager}') DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'mld_instemmer_self' , 'number' , '0' , 'Fallback option for approving a concept if no consenter is defined or if you are the consenter { 0=No consent needed | 1=Budgetholder | 2=Objectmanager | 4=Departmentmanager | 8=Manager | 16=Buildingmanager}')
@@ -845,6 +847,7 @@ DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_pda_room_times'
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_adhoc_threshold' , 'number' , '10' , 'The amount of time (in minutes) before the end of a reservation before an adhoc reservation can be made') DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_adhoc_threshold' , 'number' , '10' , 'The amount of time (in minutes) before the end of a reservation before an adhoc reservation can be made')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'msgraph_sync_level' , 'number' , '0' , 'Level of synchronization (Sufficient rights required); { 0: No sync, +1: Facilitor reads from Exchange, +2: Facilitor writes only to Exchange rooms, +4: Facilitor writes to all Exchange users }') DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'msgraph_sync_level' , 'number' , '0' , 'Level of synchronization (Sufficient rights required); { 0: No sync, +1: Facilitor reads from Exchange, +2: Facilitor writes only to Exchange rooms, +4: Facilitor writes to all Exchange users }')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'exchange_internal_email_regexp' , 'string' , '*' , 'Regular expression to match internal visitors by; internal visitors are not registered in Facilitor (All visitors are internal by default)') DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'exchange_internal_email_regexp' , 'string' , '*' , 'Regular expression to match internal visitors by; internal visitors are not registered in Facilitor (All visitors are internal by default)')
DEFINE_SETTING('RES', 0001, 'WEB_FACTAB', 'exchange_max_concurrent_notifications' , 'number' , '50' , 'The maximum number of concurrent notifications in progress')
DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'cil_ins_srt_groep_key' , 'number' , '-1' , 'INS_SRTDEEL_KEY of object type Cylinders') DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'cil_ins_srt_groep_key' , 'number' , '-1' , 'INS_SRTDEEL_KEY of object type Cylinders')
DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'sle_cil_koppelen' , 'number' , '1' , 'Sleutels en cilinders zijn door bo handmatig te koppelen {0=nee, 1=ja(default)}') DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'sle_cil_koppelen' , 'number' , '1' , 'Sleutels en cilinders zijn door bo handmatig te koppelen {0=nee, 1=ja(default)}')
DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'sle_ins_srt_groep_key' , 'number' , '-1' , 'INS_SRTDEEL_KEY of object type Keys') DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'sle_ins_srt_groep_key' , 'number' , '-1' , 'INS_SRTDEEL_KEY of object type Keys')

View File

@@ -412,6 +412,9 @@ BEGIN
OR :NEW.fac_notificatie_systeemadres IS NOT NULL OR :NEW.fac_notificatie_systeemadres IS NOT NULL
THEN THEN
tsk.starttask(p_taskcode => 'PUTORDERS', p_nextrun => :NEW.fac_notificatie_notbefore); tsk.starttask(p_taskcode => 'PUTORDERS', p_nextrun => :NEW.fac_notificatie_notbefore);
ELSIF :NEW.fac_notificatie_queue = 'EXCHANGE' -- future use
THEN
tsk.starttask(p_taskcode => 'EXCHANGE', p_nextrun => :NEW.fac_notificatie_notbefore);
END IF; END IF;
END IF; END IF;
END; END;

View File

@@ -62,7 +62,7 @@ PROJEXE=z:\Project\FACILITOR\BUILD
## ##
CURRENTVERSION=50 CURRENTVERSION=50
NEXTVERSION=51 NEXTVERSION=51
FILEVERSION= FILEVERSION=a
NEXTROOT=DB$(NEXTVERSION)$(FILEVERSION) NEXTROOT=DB$(NEXTVERSION)$(FILEVERSION)
CURRENTUPDATE=DB$(CURRENTVERSION)to$(NEXTVERSION) CURRENTUPDATE=DB$(CURRENTVERSION)to$(NEXTVERSION)

View File

@@ -42,47 +42,49 @@ AS
/* Voor onderdelen de plaats/eigenaar van de parent. */ /* Voor onderdelen de plaats/eigenaar van de parent. */
CREATE_VIEW(ins_v_deelenonderdeel, 0) CREATE_VIEW(ins_v_deelenonderdeel, 0)
AS AS
SELECT ins_deel_key, SELECT dl.ins_deel_key,
ins_deel_module, dl.ins_deel_module,
ins_srtdeel_key, dl.ins_srtdeel_key,
(COALESCE(dl.ins_alg_ruimte_key, (SELECT d2.ins_alg_ruimte_key FROM ins_deel d2 WHERE d2.ins_deel_key = dl.ins_deel_parent_key))) ins_alg_ruimte_key, COALESCE(dl.ins_alg_ruimte_key, parent_deel.ins_alg_ruimte_key) ins_alg_ruimte_key,
(COALESCE(dl.ins_alg_ruimte_type, (SELECT d2.ins_alg_ruimte_type FROM ins_deel d2 WHERE d2.ins_deel_key = dl.ins_deel_parent_key))) ins_alg_ruimte_type, COALESCE(dl.ins_alg_ruimte_type, parent_deel.ins_alg_ruimte_type) ins_alg_ruimte_type,
ins_deel_aantal, dl.ins_deel_aantal,
ins_deel_omschrijving, dl.ins_deel_omschrijving,
ins_deel_opmerking, dl.ins_deel_opmerking,
ins_deel_upper, dl.ins_deel_upper,
ins_deel_aanmaak, dl.ins_deel_aanmaak,
ins_deel_vervaldatum, dl.ins_deel_vervaldatum,
ins_deel_verwijder, dl.ins_deel_verwijder,
ins_deel_getekend, dl.ins_deel_getekend,
ins_discipline_key, dl.ins_discipline_key,
ins_alg_locatie_key, dl.ins_alg_locatie_key,
ins_deel_parent_key, dl.ins_deel_parent_key,
ins_deel_omtrek, dl.ins_deel_omtrek,
ins_deel_oppervlak, dl.ins_deel_oppervlak,
ins_deel_dwgx, dl.ins_deel_dwgx,
ins_deel_dwgy, dl.ins_deel_dwgy,
ins_deel_dwgz, dl.ins_deel_dwgz,
ins_deel_dwgrotatie, dl.ins_deel_dwgrotatie,
ins_deel_dwgschaal, dl.ins_deel_dwgschaal,
ins_deel_x, dl.ins_deel_x,
ins_deel_y, dl.ins_deel_y,
ins_alg_ruimte_key_org, dl.ins_alg_ruimte_key_org,
ins_alg_ruimte_type_org, dl.ins_alg_ruimte_type_org,
ins_deel_state, dl.ins_deel_state,
ins_deel_statedate, dl.ins_deel_statedate,
ins_deel_t_uitvoertijd, dl.ins_deel_t_uitvoertijd,
ins_deel_actief, dl.ins_deel_actief,
ins_deel_image, dl.ins_deel_image,
ins_deel_mjb_score1, dl.ins_deel_mjb_score1,
ins_deel_mjb_score2, dl.ins_deel_mjb_score2,
ins_deel_externnr, dl.ins_deel_externnr,
ins_deel_externsyncdate, dl.ins_deel_externsyncdate,
ins_deel_flag, dl.ins_deel_flag,
prs_perslid_key_beh, dl.prs_perslid_key_beh,
res_rsv_deel_key, dl.res_rsv_deel_key,
bes_bestelopdr_key dl.bes_bestelopdr_key
FROM ins_deel dl; FROM ins_deel dl
LEFT OUTER JOIN ins_deel parent_deel
ON parent_deel.ins_deel_key = dl.ins_deel_parent_key;
/* Views met ins_deel moeten voorwaarde : "AND ins_deel_parent_key IS NULL" bevatten... */ /* Views met ins_deel moeten voorwaarde : "AND ins_deel_parent_key IS NULL" bevatten... */
DEFINIEER_VIEW_AANWEZIG(ins_deel, ins_deel_verwijder, DEFINIEER_VIEW_AANWEZIG(ins_deel, ins_deel_verwijder,

View File

@@ -25,9 +25,11 @@ CREATE OR REPLACE PACKAGE mld AS
PROCEDURE notifyprio (pmeldingkey IN NUMBER, prio IN NUMBER, pperslid_key IN NUMBER, pdisc_level IN NUMBER DEFAULT 1); PROCEDURE notifyprio (pmeldingkey IN NUMBER, prio IN NUMBER, pperslid_key IN NUMBER, pdisc_level IN NUMBER DEFAULT 1);
PROCEDURE notifyopdrgoedkeurders (popdrkey IN NUMBER); PROCEDURE notifyopdrgoedkeurders (popdrkey IN NUMBER);
PROCEDURE notifyopdrbedrijven (popdrkey NUMBER, PROCEDURE notifyopdrbedrijven (popdrkey NUMBER,
ptrackingkey NUMBER); ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifymeldingbedrijven (pmldkey NUMBER, PROCEDURE notifymeldingbedrijven (pmldkey NUMBER,
ptrackingkey NUMBER); ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
FUNCTION getinstemmer (pmldkey IN NUMBER) RETURN NUMBER; FUNCTION getinstemmer (pmldkey IN NUMBER) RETURN NUMBER;
PROCEDURE notifyinstemmer (pmldkey IN NUMBER); PROCEDURE notifyinstemmer (pmldkey IN NUMBER);
FUNCTION mld_besteed_budget_pgb (p_prs_key IN NUMBER, p_disc_key IN NUMBER) FUNCTION mld_besteed_budget_pgb (p_prs_key IN NUMBER, p_disc_key IN NUMBER)
@@ -1426,7 +1428,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
-- in het bijzonder de uitvoerende maar het mag ook een -- in het bijzonder de uitvoerende maar het mag ook een
-- ander 'subscribed' bedrijf zijn (bedrijfadres_type 'G'). -- ander 'subscribed' bedrijf zijn (bedrijfadres_type 'G').
PROCEDURE notifyopdrbedrijven (popdrkey NUMBER, PROCEDURE notifyopdrbedrijven (popdrkey NUMBER,
ptrackingkey NUMBER) ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS AS
BEGIN BEGIN
FOR bedrijfrec FOR bedrijfrec
@@ -1469,12 +1472,14 @@ CREATE OR REPLACE PACKAGE BODY mld AS
ptypeopdr_key => bedrijfrec.mld_typeopdr_key, ptypeopdr_key => bedrijfrec.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key, plocatie_key => bedrijfrec.alg_locatie_key,
pdisc_key => bedrijfrec.mld_opdr_discipline_key, pdisc_key => bedrijfrec.mld_opdr_discipline_key,
psender => bedrijfrec.alg_locatie_email); psender => bedrijfrec.alg_locatie_email,
pnotidelay => pnotidelay);
END LOOP; END LOOP;
END; END;
PROCEDURE notifymeldingbedrijven (pmldkey NUMBER, PROCEDURE notifymeldingbedrijven (pmldkey NUMBER,
ptrackingkey NUMBER) ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS AS
BEGIN BEGIN
FOR bedrijfrec FOR bedrijfrec
@@ -1513,7 +1518,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
preference => bedrijfrec.reference, preference => bedrijfrec.reference,
plocatie_key => bedrijfrec.alg_locatie_key, plocatie_key => bedrijfrec.alg_locatie_key,
pdisc_key => bedrijfrec.mld_ins_discipline_key, pdisc_key => bedrijfrec.mld_ins_discipline_key,
psender => bedrijfrec.alg_locatie_email); psender => bedrijfrec.alg_locatie_email,
pnotidelay => pnotidelay);
END LOOP; END LOOP;
END; END;

View File

@@ -42,7 +42,7 @@ CREATE OR REPLACE PACKAGE res AS
FUNCTION notifypool (pbez_bezoeker_key IN NUMBER, pcode IN VARCHAR2) RETURN NUMBER; FUNCTION notifypool (pbez_bezoeker_key IN NUMBER, pcode IN VARCHAR2) RETURN NUMBER;
PROCEDURE notifybackoffice (prsvkey IN NUMBER, pcode IN VARCHAR2, ptype IN VARCHAR2 DEFAULT NULL, pkey IN NUMBER DEFAULT NULL); PROCEDURE notifybackoffice (prsvkey IN NUMBER, pcode IN VARCHAR2, ptype IN VARCHAR2 DEFAULT NULL, pkey IN NUMBER DEFAULT NULL);
PROCEDURE remove(p_rsv_ruimte_key IN NUMBER); PROCEDURE remove(p_rsv_ruimte_key IN NUMBER);
PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER, ptrackingkey NUMBER); PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER, ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL);
END res; END res;
/ /
@@ -2552,7 +2552,8 @@ AS
END; END;
PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER, PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER,
ptrackingkey NUMBER) ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS AS
BEGIN BEGIN
FOR bedrijfrec FOR bedrijfrec
@@ -2595,7 +2596,8 @@ AS
prefkey => prsvkey, prefkey => prsvkey,
ptrackingkey => ptrackingkey, ptrackingkey => ptrackingkey,
preference => bedrijfrec.reference, preference => bedrijfrec.reference,
plocatie_key => bedrijfrec.alg_locatie_key); plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP; END LOOP;
END; END;
END res; END res;

View File

@@ -328,6 +328,9 @@ ALTER TABLE mld_typeopdr
NUMBER(1) NUMBER(1)
DEFAULT 0; DEFAULT 0;
ALTER PACKAGE fac COMPILE; // anders (mogelijk nog) invalid en lukt het volgende niet
ALTER PACKAGE fac COMPILE BODY;
UPDATE mld_typeopdr UPDATE mld_typeopdr
SET mld_typeopdr_confirm_for_send = fac.getsetting('mld_opdr_confirm_for_send'); SET mld_typeopdr_confirm_for_send = fac.getsetting('mld_opdr_confirm_for_send');