FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=67219
This commit is contained in:
@@ -2235,7 +2235,7 @@ AS
|
||||
AS
|
||||
BEGIN
|
||||
FOR bedrijfrec IN (SELECT b.prs_bedrijf_key,
|
||||
CASE WHEN b.prs_bedrijf_key = o.prs_bedrijf_key THEN 'BO' ELSE 'BOG' END bedrijfadres_type,
|
||||
CASE WHEN b.prs_bedrijf_key = o.prs_bedrijf_key THEN 'B' ELSE 'BOG' END bedrijfadres_type,
|
||||
l.alg_locatie_key,
|
||||
o.bes_bestelopdr_id
|
||||
FROM prs_bedrijf b,
|
||||
|
||||
@@ -4783,7 +4783,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
lcode,
|
||||
l_refkey
|
||||
FROM fac_tracking ft, fac_srtnotificatie fsn
|
||||
WHERE ft.fac_srtnotificatie_key = fsn.fac_srtnotificatie_key;
|
||||
WHERE ft.fac_srtnotificatie_key = fsn.fac_srtnotificatie_key
|
||||
AND ft.fac_tracking_key = ptrackingkey;
|
||||
-- we maken een uitstapje naar een module specifieke mld.notifymeldingbedrijven
|
||||
-- die bijvoorbeeld locatie_key, opdrachttype en afzender kan bepalen
|
||||
-- Daarmee worden we vervolgens weer doorgeleid naar PROCEDURE notifybedrijf (iets verderop)
|
||||
@@ -4900,9 +4901,9 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
IF (l_basrt_key IS NULL)
|
||||
THEN
|
||||
IF (pbedrijfadres_type = 'O' AND l_srtnoti_code = 'ORDNEW')
|
||||
OR (pbedrijfadres_type = 'B' AND l_srtnoti_code = 'BESNEW')
|
||||
OR (pbedrijfadres_type = 'B' AND l_srtnoti_code = 'BES2NE') -- bestelopdracht aangemaakt
|
||||
OR (pbedrijfadres_type = 'C' AND l_srtnoti_code = 'CNTNEW')
|
||||
OR (pbedrijfadres_type = 'R' AND l_srtnoti_code = 'RESNEW')
|
||||
OR (pbedrijfadres_type = 'R' AND l_srtnoti_code = 'RESNEW') -- TODO: Doorgaans veel te vroeg?
|
||||
THEN
|
||||
NULL; -- backwards compatible: als geen enkel prs_bedrijfadres_srtnoti is dan is er default een xxxNEW
|
||||
ELSE
|
||||
@@ -4917,14 +4918,16 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
fac_notificatie_oms,
|
||||
fac_notificatie_refkey,
|
||||
fac_notificatie_extrakey,
|
||||
fac_notificatie_naam,
|
||||
fac_notificatie_sender_email,
|
||||
fac_notificatie_status, -- don't care by prs_bedrijfadres_key
|
||||
fac_notificatie_status, -- don't care when by prs_bedrijfadres_key
|
||||
prs_bedrijfadres_key,
|
||||
fac_notificatie_notbefore)
|
||||
VALUES (l_srtnoti_key,
|
||||
ptracking_oms,
|
||||
prefkey,
|
||||
pxrefkey,
|
||||
preference,
|
||||
psender,
|
||||
0,
|
||||
l_bdradr_key,
|
||||
|
||||
@@ -672,7 +672,9 @@ CREATE_TABLE(fac_notificatie, 0)
|
||||
DEFAULT SYSDATE NOT NULL,
|
||||
fac_notificatie_failcount
|
||||
NUMBER(10)
|
||||
DEFAULT 0 NOT NULL
|
||||
DEFAULT 0 NOT NULL,
|
||||
fac_notificatie_failmessage /* de laatste failmessage, rest zoek je maar in Putorders logging */
|
||||
VARCHAR(4000)
|
||||
);
|
||||
/* Welke notificatiejobs bestaan er
|
||||
* Vermelding hierin veroorzaakt periodieke notificaties
|
||||
|
||||
@@ -570,7 +570,32 @@ BEGIN
|
||||
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;
|
||||
fac.notifytrackingbedrijven(:new.fac_tracking_key); -- deze doen we altijd onvoorwaardelijk
|
||||
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
|
||||
FOR INSERT
|
||||
ON fac_tracking
|
||||
COMPOUND TRIGGER
|
||||
newkey fac_tracking.fac_tracking_key%TYPE;
|
||||
|
||||
AFTER EACH ROW
|
||||
IS
|
||||
BEGIN
|
||||
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;
|
||||
|
||||
AFTER STATEMENT
|
||||
IS
|
||||
BEGIN
|
||||
fac.notifytrackingbedrijven (newkey);
|
||||
END AFTER STATEMENT;
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
@@ -337,6 +337,8 @@ CREATE_TABLE(prs_bedrijfadres_srtnoti, 0)
|
||||
fac_srtnotificatie_key
|
||||
NUMBER(10)
|
||||
REFERENCES fac_srtnotificatie(fac_srtnotificatie_key) ON DELETE CASCADE,
|
||||
prs_bedrijfadres_method -- optionele overrule method
|
||||
VARCHAR2(16),
|
||||
prs_bedrijfadres_url -- optionele overrule endpoint
|
||||
VARCHAR2(512),
|
||||
prs_bedrijfadres_srtnoti_aanmaak
|
||||
|
||||
@@ -36,6 +36,8 @@ CREATE TABLE prs_bedrijfadres_srtnoti
|
||||
fac_srtnotificatie_key
|
||||
NUMBER(10)
|
||||
REFERENCES fac_srtnotificatie(fac_srtnotificatie_key) ON DELETE CASCADE,
|
||||
prs_bedrijfadres_method -- optionele overrule method (anders GET/POST afhankelijk van of er een body is)
|
||||
VARCHAR2(16),
|
||||
prs_bedrijfadres_url -- optionele overrule endpoint
|
||||
VARCHAR2(512),
|
||||
prs_bedrijfadres_srtnoti_aanmaak
|
||||
@@ -48,6 +50,9 @@ CREATE SEQUENCE prs_s_prs_bedrijfadres_srtnoti_key MINVALUE 1;
|
||||
ALTER TABLE fac_notificatie
|
||||
ADD fac_notificatie_naam VARCHAR(80); // puur informatief voor logging/support, bijvoorbeeld opdrachtnummer
|
||||
|
||||
ALTER TABLE fac_notificatie
|
||||
ADD fac_notificatie_failmessage VARCHAR(4000); // de laatste
|
||||
|
||||
ALTER TABLE prs_bedrijfadres
|
||||
ADD ins_discipline_key NUMBER(10)
|
||||
REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE; // Scherpere bedrijfadres bepaling, vooral reserveringen?
|
||||
|
||||
Reference in New Issue
Block a user