BLOS#68339 -- Oncescript om deze procedure blos_mld_after_inser uit standaard klant-sql alvast vooruit te leveren
svn path=/Customer/; revision=54428
This commit is contained in:
115
onces/BLOS/BLOS#68339_label_mld_hook.sql
Normal file
115
onces/BLOS/BLOS#68339_label_mld_hook.sql
Normal file
@@ -0,0 +1,115 @@
|
||||
-- Customer specific once-script voor BLOS
|
||||
|
||||
-- $Id$
|
||||
--
|
||||
-- Oncescript om procedure blos_mld_after_insert uit SINN.SQL alvast vooruit te leveren.
|
||||
-- Deze procedure hoort bij hookfunctie om kenmerkveld Clusterlabel (oorspronkelijk) bij de nieuwe melding te vullen.
|
||||
|
||||
DEFINE thisfile = 'BLOS#68339_label_mld_hook.SQL'
|
||||
DEFINE dbuser = '^BLOS'
|
||||
|
||||
SET ECHO ON
|
||||
SET DEFINE ON
|
||||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||||
WHENEVER SQLERROR EXIT;
|
||||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
SPOOL &fcltlogfile
|
||||
SET DEFINE OFF
|
||||
|
||||
|
||||
------ payload begin ------
|
||||
|
||||
-- Hook functie die na het saven (mld_postsave) van een melding aangeroepen wordt.
|
||||
CREATE OR REPLACE PROCEDURE blos_mld_after_insert (p_key IN NUMBER)
|
||||
AS
|
||||
v_locatie_key NUMBER;
|
||||
v_kenmerk_waarde_cluster VARCHAR (100);
|
||||
v_kenmerk_waarde_key NUMBER (10);
|
||||
v_mld_kenmerkmelding_key NUMBER (10);
|
||||
v_mld_kenmerkmelding_waarde VARCHAR (100);
|
||||
v_errormsg VARCHAR2 (100);
|
||||
|
||||
BEGIN
|
||||
v_errormsg := 'Ophalen meldinggegevens';
|
||||
|
||||
SELECT m.mld_alg_locatie_key
|
||||
INTO v_locatie_key
|
||||
FROM mld_melding m
|
||||
WHERE mld_melding_key = p_key AND mld_stdmelding_key NOT IN (1) ; -- Niet voor M2M-meldingen
|
||||
|
||||
IF v_locatie_key IS NOT NULL
|
||||
THEN
|
||||
|
||||
BEGIN
|
||||
-- Ophalen waarde Cluster bij Locatie vastgelegd
|
||||
SELECT ud.fac_usrdata_omschr, ud.fac_usrdata_key
|
||||
INTO v_kenmerk_waarde_cluster, v_kenmerk_waarde_key
|
||||
FROM alg_locatie l, alg_onrgoedkenmerk k, alg_kenmerk km, fac_kenmerkdomein kd, fac_usrdata ud
|
||||
WHERE l.alg_locatie_key = v_locatie_key
|
||||
AND l.alg_locatie_key = k.alg_onrgoed_key AND alg_onrgoed_niveau = 'L' AND k.alg_kenmerk_key = 1000 -- Clusterlabel (oorspronkelijk)
|
||||
AND k.alg_kenmerk_key = km.alg_kenmerk_key
|
||||
AND km.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
||||
AND kd.fac_usrtab_key = ud.fac_usrtab_key
|
||||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key ;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_kenmerk_waarde_cluster := NULL;
|
||||
v_kenmerk_waarde_key := NULL;
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
-- Is het kenmerk al eerder weggeschreven op de melding?
|
||||
SELECT km.mld_kenmerkmelding_key, km.mld_kenmerkmelding_waarde
|
||||
INTO v_mld_kenmerkmelding_key, v_mld_kenmerkmelding_waarde
|
||||
FROM mld_melding m, mld_kenmerkmelding km
|
||||
WHERE m.mld_melding_key = p_key
|
||||
AND m.mld_melding_key = km.mld_melding_key
|
||||
AND km.mld_kenmerk_key = 221 -- Clusterlabel (oorspronkelijk)
|
||||
AND km.mld_kenmerkmelding_verwijder IS NULL ;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_mld_kenmerkmelding_key := NULL;
|
||||
END;
|
||||
|
||||
-- Toevoegen kenmerk-record als waarde gevuld en er nog geen record is aangemaakt
|
||||
IF v_kenmerk_waarde_cluster IS NOT NULL AND v_mld_kenmerkmelding_key IS NULL
|
||||
THEN
|
||||
BEGIN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
||||
mld_kenmerk_key,
|
||||
mld_kenmerkmelding_waarde)
|
||||
VALUES (p_key, 221, v_kenmerk_waarde_cluster) ;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
-- Aanpassen kenmerk-record als de locatie is omgezet op de melding
|
||||
IF v_kenmerk_waarde_cluster IS NOT NULL AND v_mld_kenmerkmelding_key IS NOT NULL AND v_mld_kenmerkmelding_waarde <> v_kenmerk_waarde_cluster
|
||||
THEN
|
||||
BEGIN
|
||||
UPDATE mld_kenmerkmelding
|
||||
SET mld_kenmerkmelding_waarde = v_kenmerk_waarde_cluster
|
||||
WHERE mld_kenmerkmelding_key = v_mld_kenmerkmelding_key;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
|
||||
END blos_mld_after_insert;
|
||||
/
|
||||
|
||||
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
BEGIN adm.systrackscriptId ('$Id$', 1); END;
|
||||
/
|
||||
|
||||
COMMIT;
|
||||
SET ECHO OFF
|
||||
SPOOL OFF
|
||||
SET DEFINE ON
|
||||
PROMPT Logfile of this upgrade is: &fcltlogfile
|
||||
Reference in New Issue
Block a user