FCLT#74284 DSMA0
svn path=/Customer/trunk/; revision=58462
This commit is contained in:
146
DSMA/dsma.sql
146
DSMA/dsma.sql
@@ -415,10 +415,11 @@ AS
|
||||
COALESCE (o.mld_opdr_externsyncdate, TRUNC (SYSDATE)) syncdate_old,
|
||||
MAX (GREATEST (mon.mld_opdr_note_aanmaak, mon.mld_opdr_note_wijzigdatum)) syncdate_new
|
||||
FROM mld_opdr o, mld_opdr_note mon
|
||||
WHERE o.mld_statusopdr_key IN (5, 8) -- Toegekend/Geaccepteerd
|
||||
AND o.mld_uitvoerende_keys = 101 -- Base27
|
||||
WHERE o.mld_uitvoerende_keys = 101 -- Base27
|
||||
AND o.mld_typeopdr_key = 61 -- Base27
|
||||
AND o.mld_statusopdr_key IN (5, 8) -- Toegekend/Geaccepteerd
|
||||
AND o.mld_opdr_key = mon.mld_opdr_key
|
||||
AND mon.prs_perslid_key != 682 -- API-user tbv. Base27
|
||||
AND mon.prs_perslid_key != 682 -- API-user tbv. Base27
|
||||
AND GREATEST (mon.mld_opdr_note_aanmaak, mon.mld_opdr_note_wijzigdatum) > COALESCE (o.mld_opdr_externsyncdate, TRUNC (SYSDATE))
|
||||
GROUP BY '[' || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || '] ',
|
||||
o.mld_opdr_key,
|
||||
@@ -475,6 +476,145 @@ EXCEPTION
|
||||
END DSMA_SELECT_BASE27;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PACKAGE DSMA
|
||||
AS
|
||||
PROCEDURE afmelden_mld;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PACKAGE BODY DSMA
|
||||
AS
|
||||
PROCEDURE afmelden_mld
|
||||
AS
|
||||
c_applname VARCHAR2 (50) := 'AFMELDEN_MLD';
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_count_tot NUMBER (10) := 0;
|
||||
|
||||
CURSOR c_mld_base27
|
||||
IS
|
||||
SELECT m.mld_melding_key, m.mld_melding_onderwerp, m.mld_melding_status
|
||||
FROM mld_melding m, mld_stdmelding sm
|
||||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND sm.mld_ins_discipline_key = 50 -- Privacy + Security
|
||||
AND m.mld_melding_status IN (4, 99) -- In behandeling/Niet opgelost
|
||||
AND NOT EXISTS -- Geen lopende opdrachten (zou zo moeten zijn)
|
||||
(SELECT 1
|
||||
FROM mld_opdr
|
||||
WHERE mld_uitvoerende_keys = 101 -- Base27
|
||||
AND mld_typeopdr_key = 61 -- Base27
|
||||
AND mld_statusopdr_key IN (3, 4, 5, 8, 10) -- Ter fiattering/Gefiatteerd/Toegekend/Geaccepteerd/Ter goedkeuring
|
||||
AND mld_melding_key = m.mld_melding_key)
|
||||
ORDER BY 1;
|
||||
|
||||
-- Afmelden Korton-meldingen (met onderliggende opdrachten naar Korton)!
|
||||
-- 23=Aanvraag/ICT/Toegang netwerk en mail
|
||||
-- 24=Aanvraag/ICT/Aanvraag laptop
|
||||
-- 25=Aanvraag/ICT/Aanvraag vaste computer
|
||||
-- 26=Aanvraag/ICT/Aanvraag beeldscherm
|
||||
-- 40=ICT incident/ICT/Printer defect
|
||||
-- 41=ICT incident/ICT/Dock defect
|
||||
-- 42=ICT incident/ICT/Beeldscherm
|
||||
-- 43=Aanvraag/ICT/Aanvraag dock
|
||||
-- 44=ICT incident/ICT/Laptop defect
|
||||
-- 45=ICT incident/ICT/Vaste computer defect
|
||||
-- 48=Overige meldingen/ICT/Overig ICT
|
||||
CURSOR c_ord_korton
|
||||
IS
|
||||
SELECT o.mld_opdr_key, o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr
|
||||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm
|
||||
WHERE o.mld_uitvoerende_keys = 841 -- Korton
|
||||
AND o.mld_typeopdr_key = 5 -- Uitvoeringsopdracht
|
||||
AND o.mld_statusopdr_key IN (5, 8) -- Toegekend/Geaccepteerd
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND sm.mld_stdmelding_key IN (23, 24, 25, 26, 40, 41, 42, 43, 44, 45, 48) -- Afgesproken ICT-meldingen
|
||||
ORDER BY 1;
|
||||
|
||||
CURSOR c_mld_korton
|
||||
IS
|
||||
SELECT m.mld_melding_key, m.mld_melding_onderwerp, m.mld_melding_status
|
||||
FROM mld_melding m, mld_stdmelding sm
|
||||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND sm.mld_stdmelding_key IN (23, 24, 25, 26, 40, 41, 42, 43, 44, 45, 48) -- Afgesproken ICT-meldingen
|
||||
AND m.mld_melding_status IN (4, 7, 99) -- In behandeling/Uigegeven/Niet opgelost
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM mld_opdr
|
||||
WHERE mld_uitvoerende_keys = 841 -- Korton
|
||||
AND mld_typeopdr_key = 5 -- Uitvoeringsopdracht
|
||||
AND mld_melding_key = m.mld_melding_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM mld_opdr
|
||||
WHERE mld_uitvoerende_keys = 841 -- Korton
|
||||
AND mld_typeopdr_key = 5 -- Uitvoeringsopdracht
|
||||
AND mld_statusopdr_key IN (3, 4, 5, 8, 10) -- Ter fiattering/Gefiatteerd/Toegekend/Geaccepteerd/Ter goedkeuring
|
||||
AND mld_melding_key = m.mld_melding_key)
|
||||
ORDER BY 1;
|
||||
BEGIN
|
||||
-- Alle lopende Base27-meldingen sluiten als onderliggende Base27-opdrachten zijn gesloten.
|
||||
FOR rec IN c_mld_base27
|
||||
LOOP
|
||||
v_aanduiding := '[' || TO_CHAR (rec.mld_melding_key) || '|' || rec.mld_melding_onderwerp || '] ';
|
||||
v_count_tot := v_count_tot + 1;
|
||||
MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL); -- Afgemeld (incl. tracking)
|
||||
IF MOD (v_count_tot, 500) = 0 THEN COMMIT; END IF;
|
||||
END LOOP;
|
||||
fac.writelog (c_applname, 'S', '#Base27-meldingen gesloten: ' || TO_CHAR (v_count_tot), '');
|
||||
COMMIT;
|
||||
|
||||
--Alle lopende Korton-opdrachten automatisch sluiten.
|
||||
FOR rec IN c_ord_korton
|
||||
LOOP
|
||||
v_aanduiding := '[' || TO_CHAR (rec.mld_opdr_key) || '|' || TO_CHAR (rec.mld_melding_key) || '/' || TO_CHAR (rec.mld_opdr_bedrijfopdr_volgnr) || '] ';
|
||||
v_count_tot := v_count_tot + 1;
|
||||
MLD.setopdrachtstatus (rec.mld_opdr_key, 6, NULL); -- Afgemeld (incl. tracking)
|
||||
IF MOD (v_count_tot, 500) = 0 THEN COMMIT; END IF;
|
||||
END LOOP;
|
||||
fac.writelog (c_applname, 'S', '#Korton-opdrachten gesloten: ' || TO_CHAR (v_count_tot), '');
|
||||
COMMIT;
|
||||
|
||||
-- Alle lopende Korton-meldingen sluiten als onderliggende Korton-opdrachten zijn gesloten.
|
||||
FOR rec IN c_mld_korton
|
||||
LOOP
|
||||
v_aanduiding := '[' || TO_CHAR (rec.mld_melding_key) || '|' || rec.mld_melding_onderwerp || '] ';
|
||||
v_count_tot := v_count_tot + 1;
|
||||
MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL); -- Afgemeld (incl. tracking)
|
||||
IF MOD (v_count_tot, 500) = 0 THEN COMMIT; END IF;
|
||||
END LOOP;
|
||||
fac.writelog (c_applname, 'S', '#Korton-meldingen gesloten: ' || TO_CHAR (v_count_tot), '');
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Daily achtergrond taak afgebroken!');
|
||||
END;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE DSMA_DAILY
|
||||
AS
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
dsma.afmelden_mld;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.writelog ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
|
||||
END DSMA_DAILY;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW DSMA_V_RAP_BEZITTINGEN
|
||||
(
|
||||
ins_deel_key,
|
||||
|
||||
Reference in New Issue
Block a user