FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=67654
This commit is contained in:
@@ -159,7 +159,8 @@ CREATE OR REPLACE PACKAGE fac
|
||||
psender VARCHAR2 DEFAULT NULL,
|
||||
plocatie_key NUMBER DEFAULT NULL,
|
||||
pdiscipline_key NUMBER DEFAULT NULL,
|
||||
ptypeopdr_key NUMBER DEFAULT NULL);
|
||||
ptypeopdr_key NUMBER DEFAULT NULL,
|
||||
pdisc_key NUMBER DEFAULT NULL);
|
||||
FUNCTION gettrackingdate (peventcode IN VARCHAR2, pkey IN number) RETURN date;
|
||||
FUNCTION gettrackinguserkey (peventcode IN VARCHAR2, pkey IN number) RETURN number;
|
||||
PROCEDURE initsession (flcode IN VARCHAR2);
|
||||
@@ -4849,10 +4850,11 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
pperslid_key NUMBER DEFAULT NULL,
|
||||
pxrefkey NUMBER DEFAULT NULL,
|
||||
preference VARCHAR2 DEFAULT NULL,
|
||||
psender VARCHAR2 DEFAULT NULL,
|
||||
psender VARCHAR2 DEFAULT NULL, // alleen bij opdrachten alg_locatie_email?
|
||||
plocatie_key NUMBER DEFAULT NULL,
|
||||
pdiscipline_key NUMBER DEFAULT NULL,
|
||||
ptypeopdr_key NUMBER DEFAULT NULL)
|
||||
ptypeopdr_key NUMBER DEFAULT NULL,
|
||||
pdisc_key NUMBER DEFAULT NULL) // future use
|
||||
AS
|
||||
l_bdradr_key prs_bedrijfadres.prs_bedrijfadres_key%TYPE;
|
||||
l_basrt_key prs_bedrijfadres_srtnoti.prs_bedrijfadres_srtnoti_key%TYPE;
|
||||
@@ -4885,7 +4887,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
AND (ba.mld_typeopdr_key = ptypeopdr_key OR ba.mld_typeopdr_key IS NULL)
|
||||
AND (ba.ins_discipline_key = pdiscipline_key OR ba.ins_discipline_key IS NULL)
|
||||
AND (ba.alg_locatie_key = plocatie_key OR ba.alg_locatie_key IS NULL)
|
||||
AND (ba.alg_locatie_key = plocatie_key OR ba.alg_locatie_key IS NULL)
|
||||
AND (ba.ins_discipline_key = pdisc_key OR ba.ins_discipline_key IS NULL)
|
||||
AND ( ba.alg_district_key = (SELECT d.alg_district_key
|
||||
FROM alg_locatie d
|
||||
WHERE d.alg_locatie_key = plocatie_key)
|
||||
|
||||
@@ -2457,6 +2457,7 @@ CREATE_TABLE(fac_task, 0)
|
||||
fac_task_code VARCHAR(32) NOT NULL,
|
||||
fac_task_nextrun DATE,
|
||||
fac_task_lastrun DATE,
|
||||
fac_task_aanmaak DATE DEFAULT SYSDATE NOT NULL,
|
||||
CONSTRAINT fac_u_fac_task UNIQUE(fac_cust_key, fac_task_code)
|
||||
);
|
||||
|
||||
|
||||
@@ -561,47 +561,45 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(fac_t_fac_tracking_b_i)
|
||||
BEFORE INSERT ON fac_tracking
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE_PRIMARY_KEY(fac_tracking_key, fac_s_fac_tracking_key);
|
||||
-- dit event moet mogelijk ook actief worden genotificeerd,
|
||||
-- dat kan expliciet worden onderdrukt door de omschrijving te prefixen met een #
|
||||
IF SUBSTR(:new.fac_tracking_oms, 1, 1) = '#'
|
||||
THEN
|
||||
-- bedoeld om te onderdrukken, maar moeten we wel weer verwijderen
|
||||
:new.fac_tracking_oms := SUBSTR(:new.fac_tracking_oms, 2);
|
||||
-- Moet ik nou nog iets doen om NULL te maken als dit alleen de # was?
|
||||
-- En nu dus niet notificeren
|
||||
ELSE
|
||||
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey, :new.fac_tracking_key);
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
-- Door de COMPOUND TRIGGER kunnen we notifytrackingbedrijven doen in de AFTER STATEMENT
|
||||
-- met alleen de newkey als parameter. Dat kan omdat bij mijn weten er eigenlijk
|
||||
-- nooit een insert into meerdere FAC_TRACKING records is in een enkel statement
|
||||
CREATE OR REPLACE TRIGGER fac_t_fac_tracking_a_i
|
||||
CREATE_TRIGGER(fac_t_fac_tracking_b_i)
|
||||
FOR INSERT
|
||||
ON fac_tracking
|
||||
COMPOUND TRIGGER
|
||||
newkey fac_tracking.fac_tracking_key%TYPE;
|
||||
|
||||
AFTER EACH ROW
|
||||
BEFORE EACH ROW
|
||||
IS
|
||||
BEGIN
|
||||
UPDATE_PRIMARY_KEY(fac_tracking_key, fac_s_fac_tracking_key);
|
||||
|
||||
IF newkey IS NOT NULL THEN
|
||||
raise_application_error(-20001, 'Unexpected multi-insert of fac_tracking'); -- for safety
|
||||
END IF;
|
||||
newkey := :new.fac_tracking_key;
|
||||
END AFTER EACH ROW;
|
||||
|
||||
-- dit event moet mogelijk ook actief worden genotificeerd,
|
||||
-- dat kan expliciet worden onderdrukt door de omschrijving te prefixen met een #
|
||||
IF SUBSTR(:new.fac_tracking_oms, 1, 1) = '#'
|
||||
THEN
|
||||
-- bedoeld om te onderdrukken, maar moeten we wel weer verwijderen
|
||||
:new.fac_tracking_oms := SUBSTR(:new.fac_tracking_oms, 2);
|
||||
-- En nu dus niet notificeren
|
||||
NULL;
|
||||
ELSE
|
||||
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey, :new.fac_tracking_key);
|
||||
newkey := :new.fac_tracking_key;
|
||||
END IF;
|
||||
END BEFORE EACH ROW;
|
||||
|
||||
AFTER STATEMENT
|
||||
IS
|
||||
BEGIN
|
||||
fac.notifytrackingbedrijven (newkey);
|
||||
IF newkey IS NOT NULL
|
||||
THEN
|
||||
fac.notifytrackingbedrijven (newkey);
|
||||
END IF;
|
||||
END AFTER STATEMENT;
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -15,7 +15,11 @@ CREATE OR REPLACE PACKAGE mld AS
|
||||
FUNCTION getmeldinguser (pmeldingkey IN number) RETURN NUMBER;
|
||||
PROCEDURE setmeldingstatus (pmeldingkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER, pnotificeren IN NUMBER DEFAULT 1);
|
||||
FUNCTION getopdrachtstatusdate (popdrkey IN number, pstatus IN number) RETURN date;
|
||||
PROCEDURE setopdrachtstatus (popdrachtkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER, popdr_note_key IN NUMBER DEFAULT NULL);
|
||||
PROCEDURE setopdrachtstatus (popdrachtkey IN NUMBER,
|
||||
pstatus IN NUMBER,
|
||||
puserkey IN NUMBER,
|
||||
popdr_note_key IN NUMBER DEFAULT NULL,
|
||||
pnotificeren IN NUMBER DEFAULT 1);
|
||||
PROCEDURE notifybackoffice (pmeldingkey IN NUMBER, pcode IN VARCHAR2, pdisc_level IN NUMBER DEFAULT 1);
|
||||
PROCEDURE notifybehandelaar (pto IN NUMBER, pcode IN VARCHAR2, pmeldingkey IN NUMBER);
|
||||
PROCEDURE notifyprio (pmeldingkey IN NUMBER, prio IN NUMBER, pperslid_key IN NUMBER, pdisc_level IN NUMBER DEFAULT 1);
|
||||
@@ -448,7 +452,11 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
-- gezet, waarbij zonodig (indien verandering) een trackrecord wordt gemaakt
|
||||
-- Als de status niet wijzigt, wordt ook geen trackrecord gemaakt
|
||||
-- ZIE schema StateDiagramOpdrachten.vsd
|
||||
PROCEDURE setopdrachtstatus (popdrachtkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER, popdr_note_key IN NUMBER DEFAULT NULL)
|
||||
PROCEDURE setopdrachtstatus (popdrachtkey IN NUMBER,
|
||||
pstatus IN NUMBER,
|
||||
puserkey IN NUMBER,
|
||||
popdr_note_key IN NUMBER DEFAULT NULL,
|
||||
pnotificeren IN NUMBER DEFAULT 1)
|
||||
AS
|
||||
currentstatus mld_opdr.mld_statusopdr_key%TYPE;
|
||||
newstatus mld_opdr.mld_statusopdr_key%TYPE;
|
||||
@@ -582,6 +590,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
IF statusopdr_key_refiat IS NULL OR
|
||||
newstatus = 3 OR newstatus = 4 OR newstatus = 10
|
||||
THEN
|
||||
IF pnotificeren = 0 AND eventcode IS NOT NULL
|
||||
THEN
|
||||
eventcode := '#' || eventcode;
|
||||
END IF;
|
||||
fac.trackaction (eventcode, popdrachtkey, puserkey, NULL, NULL, new_fac_tracking_key);
|
||||
IF popdr_note_key IS NOT NULL
|
||||
THEN
|
||||
@@ -1398,6 +1410,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
BEGIN
|
||||
FOR bedrijfrec
|
||||
IN (SELECT o.mld_typeopdr_key,
|
||||
o.mld_opdr_discipline_key,
|
||||
b.prs_bedrijf_key,
|
||||
CASE WHEN b.prs_bedrijf_key = o.mld_uitvoerende_keys THEN 'O' ELSE 'OG' END bedrijfadres_type,
|
||||
COALESCE (l1.alg_locatie_key, l2.alg_locatie_key) alg_locatie_key,
|
||||
@@ -1433,7 +1446,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
ptrackingkey => ptrackingkey,
|
||||
preference => bedrijfrec.reference,
|
||||
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,
|
||||
psender => bedrijfrec.alg_locatie_email);
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
@@ -1447,6 +1462,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
COALESCE (l1.alg_locatie_key, l2.alg_locatie_key) alg_locatie_key,
|
||||
COALESCE (l1.alg_locatie_email, l2.alg_locatie_email) alg_locatie_email,
|
||||
m.mld_melding_key reference,
|
||||
m.mld_ins_discipline_key,
|
||||
d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende
|
||||
FROM mld_melding m,
|
||||
mld_adres ma,
|
||||
@@ -1473,7 +1489,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
prefkey => pmldkey,
|
||||
ptrackingkey => ptrackingkey,
|
||||
preference => bedrijfrec.reference,
|
||||
plocatie_key => bedrijfrec.alg_locatie_key);
|
||||
plocatie_key => bedrijfrec.alg_locatie_key,
|
||||
pdisc_key => bedrijfrec.mld_ins_discipline_key,
|
||||
psender => bedrijfrec.alg_locatie_email);
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
|
||||
@@ -85,6 +85,7 @@ CREATE_TABLE(fac_task, 0)
|
||||
fac_task_code VARCHAR(32) NOT NULL,
|
||||
fac_task_nextrun DATE,
|
||||
fac_task_lastrun DATE,
|
||||
fac_task_aanmaak DATE DEFAULT SYSDATE NOT NULL,
|
||||
CONSTRAINT fac_u_fac_task UNIQUE(fac_cust_key, fac_task_code)
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user