BLOS#72319 -- Punchout-koppelingen Planet Happy en Mandaten voor Locatiemanagers inregelen

svn path=/Customer/trunk/; revision=58786
This commit is contained in:
Jos Migo
2023-01-24 10:14:53 +00:00
parent f86d3f7a3c
commit f57fbc6ac2

View File

@@ -368,159 +368,367 @@ AS
WHERE p.niveau = '2 - district'
AND p.cluster_wp = l.cluster_district_code ;
--- DE PROCEDURE om voor de Locatiemanagers van de CLUSTERS de juiste CLUSTER-LOCATIES te koppelen als werkplek
CREATE OR REPLACE PROCEDURE blos_export_wpcluster (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
-- BRONVIEW: Alle locaties met haar kostenplaats(en)
CREATE OR REPLACE VIEW blos_v_locaties_kp
(
alg_locatie_key,
alg_locatie_omschrijving,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_eind,
prs_kostenplaats_verwijder
)
AS
CURSOR c_nieuw
IS
SELECT p.prs_perslid_key, p.alg_locatie_key, l.alg_locatie_code, l.cluster_label_code, l.cluster_district_code
FROM blos_v_cluster_personen_2 p, blos_v_cluster_locaties l
WHERE p.alg_locatie_key = l.alg_locatie_key
AND NOT EXISTS
(SELECT v.alg_locatie_key
FROM prs_perslidwerkplek wp, prs_v_werkplekafdeling_geg v
WHERE wp.prs_perslidwerkplek_key =
v.prs_perslidwerkplek_key
AND wp.prs_perslid_key = p.prs_perslid_key
AND v.alg_locatie_key = p.alg_locatie_key) ;
SELECT alg_locatie_key,
alg_locatie_omschrijving,
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_eind,
prs_kostenplaats_verwijder
FROM alg_locatie l, alg_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'L'
AND kw.alg_kenmerk_key = 1140 -- kostenplaats-1
UNION
SELECT alg_locatie_key,
alg_locatie_omschrijving,
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_eind,
prs_kostenplaats_verwijder
FROM alg_locatie l, alg_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'L'
AND kw.alg_kenmerk_key = 1141 -- kostenplaats-2
UNION
SELECT alg_locatie_key,
alg_locatie_omschrijving,
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_eind,
prs_kostenplaats_verwijder
FROM alg_locatie l, alg_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'L'
AND kw.alg_kenmerk_key = 1142 -- kostenplaats-3
;
CURSOR c_del
IS
SELECT b.prs_perslid_key, b.alg_locatie_key, b.prs_perslidwerkplek_key, COALESCE(l.alg_locatie_code, 'Vervallen locactie ' || loc.alg_locatie_code) alg_locatie_code, l.cluster_label_code, l.cluster_district_code
FROM (SELECT wp.prs_perslid_key,
v.alg_locatie_key,
wp.prs_perslidwerkplek_key,
v.prs_werkplek_key,
v.prs_werkplek_volgnr,
v.alg_ruimte_key
FROM prs_perslidwerkplek wp, prs_v_werkplekafdeling_geg v
WHERE wp.prs_perslidwerkplek_key = v.prs_perslidwerkplek_key) b,
blos_v_cluster_locaties l,
alg_locatie loc
WHERE b.alg_locatie_key = l.alg_locatie_key (+)
AND b.alg_locatie_key = loc.alg_locatie_key
AND NOT EXISTS
(SELECT l.alg_locatie_key
FROM blos_v_cluster_personen_2 l
WHERE l.prs_perslid_key = b.prs_perslid_key
AND l.alg_locatie_key = b.alg_locatie_key) ;
-- BRONVIEW: Alle werkplek-koppeling per locatiemanager en de kp's die daarbij vanuit locatiekaart bijhoren
CREATE OR REPLACE VIEW blos_v_locaties_wp_kp
(
prs_perslid_key,
prs_perslid_naam,
prs_srtperslid_omschrijving,
prs_perslidwerkplek_key,
alg_locatie_omschrijving,
alg_locatie_key,
prs_kostenplaats_key,
prs_kostenplaats_nr
)
AS
SELECT v.prs_perslid_key,
p.prs_perslid_naam,
sp.prs_srtperslid_omschrijving,
v.prs_perslidwerkplek_key,
l.alg_locatie_omschrijving,
lkp.alg_locatie_key,
lkp.prs_kostenplaats_key,
lkp.prs_kostenplaats_nr
FROM prs_v_werkplekperslid_gegevens v,
alg_locatie l,
prs_perslid p,
prs_srtperslid sp,
blos_v_locaties_kp lkp
WHERE v.prs_perslid_key = p.prs_perslid_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND v.alg_locatie_key = l.alg_locatie_key
AND v.alg_locatie_key = lkp.alg_locatie_key(+)
AND prs_srtperslid_upper = 'LOCATIEMANAGER';
v_ruimte_key NUMBER;
v_prs_werkplek_volgnr NUMBER;
v_prs_werkplek_key NUMBER ;
--- DE PROCEDURE om voor de Locatiemanagers van de CLUSTERS de juiste CLUSTER-LOCATIES te koppelen als werkplek
CREATE OR REPLACE VIEW blos_v_export_wpcluster
(
result,
result_order
)
AS
SELECT '"SYNC - Werkplekkoppeling en Mandaten"'
|| ';"Uitgevoerd"',
0
FROM DUAL ;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_mes VARCHAR2 (200);
oracle_err_num NUMBER;
currentversion fac_module.fac_module_version%TYPE;
v_aanduiding VARCHAR2 (1000);
v_count NUMBER;
CREATE OR REPLACE PROCEDURE blos_select_wpcluster (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Werkplekkoppelingen toevoegen
CURSOR c_nieuw
IS
SELECT p.prs_perslid_key,
p.alg_locatie_key,
l.alg_locatie_code,
l.cluster_label_code,
l.cluster_district_code
FROM blos_v_cluster_personen_2 p, blos_v_cluster_locaties l
WHERE p.alg_locatie_key = l.alg_locatie_key
AND NOT EXISTS
(SELECT v.alg_locatie_key
FROM prs_perslidwerkplek wp,
prs_v_werkplekafdeling_geg v
WHERE wp.prs_perslidwerkplek_key =
v.prs_perslidwerkplek_key
AND wp.prs_perslid_key = p.prs_perslid_key
AND v.alg_locatie_key = p.alg_locatie_key);
-- Werkplekkoppelingen verwijderen
CURSOR c_del
IS
SELECT b.prs_perslid_key,
b.alg_locatie_key,
b.prs_perslidwerkplek_key,
COALESCE (l.alg_locatie_code,
'Vervallen locactie ' || loc.alg_locatie_code)
alg_locatie_code,
l.cluster_label_code,
l.cluster_district_code
FROM (SELECT wp.prs_perslid_key,
v.alg_locatie_key,
wp.prs_perslidwerkplek_key,
v.prs_werkplek_key,
v.prs_werkplek_volgnr,
v.alg_ruimte_key
FROM prs_perslidwerkplek wp, prs_v_werkplekafdeling_geg v
WHERE wp.prs_perslidwerkplek_key = v.prs_perslidwerkplek_key)
b,
blos_v_cluster_locaties l,
alg_locatie loc
WHERE b.alg_locatie_key = l.alg_locatie_key(+)
AND b.alg_locatie_key = loc.alg_locatie_key
AND NOT EXISTS
(SELECT l.alg_locatie_key
FROM blos_v_cluster_personen_2 l
WHERE l.prs_perslid_key = b.prs_perslid_key
AND l.alg_locatie_key = b.alg_locatie_key);
-- Mandaten toevoegen
CURSOR m_nieuw
IS
SELECT v.prs_perslid_key,
v.prs_perslid_naam,
v.alg_locatie_omschrijving,
v.prs_kostenplaats_key,
kp.prs_kostenplaats_nr
FROM blos_v_locaties_wp_kp v, prs_kostenplaats kp
WHERE v.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND v.prs_kostenplaats_key NOT IN
(SELECT prs_kostenplaats_key
FROM prs_perslidkostenplaats pkp
WHERE pkp.prs_perslid_key = v.prs_perslid_key)
ORDER BY 1,
2,
3,
4;
-- Mandaten verwijderen
CURSOR m_del
IS
SELECT pkp.prs_perslidkostenplaats_key,
pkp.prs_perslid_key,
p.prs_perslid_naam,
pkp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr
FROM prs_perslidkostenplaats pkp,
prs_kostenplaats kp,
prs_perslid p
WHERE pkp.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND p.prs_perslid_key = pkp.prs_perslid_key
AND pkp.prs_kostenplaats_key NOT IN
(SELECT v.prs_kostenplaats_key
FROM blos_v_locaties_wp_kp v
WHERE v.prs_kostenplaats_key IS NOT NULL
AND v.prs_perslid_key = pkp.prs_perslid_key)
ORDER BY 1, 2, 3;
v_ruimte_key NUMBER;
v_prs_werkplek_volgnr NUMBER;
v_prs_werkplek_key NUMBER;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_mes VARCHAR2 (200);
oracle_err_num NUMBER;
currentversion fac_module.fac_module_version%TYPE;
v_aanduiding VARCHAR2 (1000);
v_count NUMBER;
BEGIN
v_count:=0;
v_count := 0;
FOR rec IN c_nieuw
LOOP
v_aanduiding :=
'Werkplekkoppeling: ' || rec.alg_locatie_code || ' (' || rec.cluster_label_code || ' - ' || rec.cluster_district_code || ')' ;
'Werkplekkoppeling: '
|| rec.alg_locatie_code
|| ' ('
|| rec.cluster_label_code
|| ' - '
|| rec.cluster_district_code
|| ')';
v_errormsg := 'Fout bij aanmaken werkplekkoppeling';
-- Ruimte_key ophalen van desbetreffende locatie_keten
SELECT min(alg_ruimte_key)
INTO v_ruimte_key
FROM alg_v_allonrgoed_gegevens v
WHERE v.alg_locatie_key = rec.alg_locatie_key and v.alg_type ='R' ;
-- Ruimte_key ophalen van desbetreffende locatie_keten
SELECT MIN (alg_ruimte_key)
INTO v_ruimte_key
FROM alg_v_allonrgoed_gegevens v
WHERE v.alg_locatie_key = rec.alg_locatie_key AND v.alg_type = 'R';
IF v_ruimte_key IS NULL THEN
fac.writelog (p_applname,
IF v_ruimte_key IS NULL
THEN
fac.writelog (p_applname,
'W',
v_errormsg || ' Locatie wordt overgeslagen:',
v_aanduiding);
END IF;
v_errorhint := 'INSERT clusterkoppeling bij persoon: ' || rec.alg_locatie_code || ' / ' || rec.prs_perslid_key;
IF v_ruimte_key IS NOT NULL THEN
-- Volgnr werkplek
SELECT COALESCE(MIN (prs_werkplek_volgnr + 1),1)
INTO v_prs_werkplek_volgnr
FROM prs_werkplek pw WHERE prs_alg_ruimte_key = v_ruimte_key AND NOT EXISTS ( SELECT * FROM prs_werkplek pw2 WHERE prs_alg_ruimte_key = v_ruimte_key AND pw2.prs_werkplek_volgnr = pw.prs_werkplek_volgnr + 1);
END IF;
INSERT INTO prs_werkplek w (prs_werkplek_volgnr, prs_werkplek_omschrijving, prs_alg_ruimte_key, prs_werkplek_virtueel)
SELECT v_prs_werkplek_volgnr, alg_ruimte_nr || '/1', v_ruimte_key, 1 FROM alg_ruimte WHERE alg_ruimte_key = v_ruimte_key ;
v_errorhint :=
'INSERT clusterkoppeling bij persoon: '
|| rec.alg_locatie_code
|| ' / '
|| rec.prs_perslid_key;
SELECT prs_werkplek_key
INTO v_prs_werkplek_key
FROM prs_werkplek WHERE prs_alg_ruimte_key = v_ruimte_key AND prs_werkplek_volgnr = v_prs_werkplek_volgnr ;
IF v_ruimte_key IS NOT NULL
THEN
-- Volgnr werkplek
SELECT COALESCE (MIN (prs_werkplek_volgnr + 1), 1)
INTO v_prs_werkplek_volgnr
FROM prs_werkplek pw
WHERE prs_alg_ruimte_key = v_ruimte_key
AND NOT EXISTS
(SELECT *
FROM prs_werkplek pw2
WHERE prs_alg_ruimte_key = v_ruimte_key
AND pw2.prs_werkplek_volgnr =
pw.prs_werkplek_volgnr + 1);
INSERT INTO prs_perslidwerkplek(prs_perslidwerkplek_bezetting, prs_perslidwerkplek_volgnr, prs_werkplek_key, prs_perslid_key) -- prs_perslidwerkplek_key)
VALUES (100, NULL, v_prs_werkplek_key, rec.prs_perslid_key) ;
INSERT INTO prs_werkplek w (prs_werkplek_volgnr,
prs_werkplek_omschrijving,
prs_alg_ruimte_key,
prs_werkplek_virtueel)
SELECT v_prs_werkplek_volgnr,
alg_ruimte_nr || '/1',
v_ruimte_key,
1
FROM alg_ruimte
WHERE alg_ruimte_key = v_ruimte_key;
fac.trackaction (
'PRSUPD',
rec.prs_perslid_key,
3,
SYSDATE,
v_aanduiding);
SELECT prs_werkplek_key
INTO v_prs_werkplek_key
FROM prs_werkplek
WHERE prs_alg_ruimte_key = v_ruimte_key
AND prs_werkplek_volgnr = v_prs_werkplek_volgnr;
END IF;
INSERT INTO prs_perslidwerkplek (prs_perslidwerkplek_bezetting,
prs_perslidwerkplek_volgnr,
prs_werkplek_key,
prs_perslid_key) -- prs_perslidwerkplek_key)
VALUES (100,
NULL,
v_prs_werkplek_key,
rec.prs_perslid_key);
fac.trackaction ('PRSUPD',
rec.prs_perslid_key,
3,
SYSDATE,
v_aanduiding);
END IF;
END LOOP;
FOR rec IN c_del
LOOP
v_aanduiding :=
'Werkplekkoppeling verwijderen - betreft: ' || rec.alg_locatie_code || ' (' || rec.cluster_label_code || ' - ' || rec.cluster_district_code || ')' ;
'Werkplekkoppeling verwijderen - betreft: '
|| rec.alg_locatie_code
|| ' ('
|| rec.cluster_label_code
|| ' - '
|| rec.cluster_district_code
|| ')';
v_errorhint := 'werkplekkoppeling verwijderen';
DELETE FROM prs_werkplek WHERE prs_werkplek_key IN (SELECT prs_werkplek_key FROM prs_perslidwerkplek WHERE prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key) ;
DELETE FROM prs_werkplek
WHERE prs_werkplek_key IN
(SELECT prs_werkplek_key
FROM prs_perslidwerkplek
WHERE prs_perslidwerkplek_key =
rec.prs_perslidwerkplek_key);
DELETE FROM prs_perslidwerkplek WHERE prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key ;
DELETE FROM prs_perslidwerkplek
WHERE prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
fac.trackaction (
'PRSUPD',
rec.prs_perslid_key,
3,
SYSDATE,
v_aanduiding);
fac.trackaction ('PRSUPD',
rec.prs_perslid_key,
3,
SYSDATE,
v_aanduiding);
END LOOP;
FOR rec IN m_nieuw
LOOP
BEGIN
v_aanduiding :=
'Mandaat: '
|| rec.prs_perslid_naam
|| ' op kostenplaats '
|| rec.prs_kostenplaats_nr;
v_errormsg := 'Fout bij aanmaken mandaat';
INSERT INTO prs_perslidkostenplaats (
prs_perslidkostenplaats_boeken,
prs_perslidkostenplaats_inzage,
prs_perslid_key,
prs_kostenplaats_key)
VALUES (1,
1,
rec.prs_perslid_key,
rec.prs_kostenplaats_key);
END;
END LOOP;
FOR rec IN m_del
LOOP
BEGIN
v_aanduiding :=
'Mandaat '
|| rec.prs_kostenplaats_nr
|| ' verwijdern voor persoon '
|| rec.prs_perslid_naam;
v_errormsg := 'Fout bij verwijderen mandaat';
DELETE FROM prs_perslidkostenplaats
WHERE prs_perslidkostenplaats_key =
rec.prs_perslidkostenplaats_key;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes;
fac.writelog (p_applname,
'E',
v_errormsg,
v_errorhint);
fac.writelog (p_applname,
'E',
v_errormsg,
v_errorhint);
END;
/
-- script om dagelijks terugkerende scripts aan te roepen.
CREATE OR REPLACE PROCEDURE blos_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
-- job om de werkplekkoppelingen te realiseren en onderhouden voor de locatiemanagers
blos_export_wpcluster (p_applname, p_applrun);
END;
/
CREATE OR REPLACE PROCEDURE blos_import_perslid (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
@@ -1074,6 +1282,76 @@ CREATE OR REPLACE PROCEDURE blos_mld_after_insert (p_key IN NUMBER)
END blos_mld_after_insert;
/
---------------------------------------------------------------------------------------------------------------
--- Rapportage Views ---
---------------------------------------------------------------------------------------------------------------
-- Rapportage Gebouwbeheer
CREATE OR REPLACE VIEW BLOS_V_ALG_ONROERENDGOED
(
CLUSTER_NAAM,
LOCATIE,
LOCATIE_CODE,
LOCATIE_KEY,
GEBOUW,
-- gegevens uit locatiekaart
CLUSTERLABEL_OORSPRONKELIJK,
TYPE_OPVANG,
BIJZONDERHEDEN,
KOSTENPLAATS_1,
KOSTENPLAATS_2,
KOSTENPLAATS_3,
--
VERDIEPING,
RUIMTENR,
RUIMTE_OMSCHRIJVING,
RUIMTEFUNCTIE,
BVO_M2,
VLOERSOORT
)
AS
SELECT d.alg_district_omschrijving,
l.alg_locatie_omschrijving,
l.alg_locatie_code,
l.alg_locatie_key,
v.alg_gebouw_code || ' - ' || v.alg_gebouw_naam
gebouw,
km.cluster_label_oorspr,
km.type_opvang,
km.bijzonderheden,
km.kostenplaats_1,
km.kostenplaats_2,
km.kostenplaats_3,
v.alg_verdieping_omschrijving || ' - ' || v.alg_verdieping_code
verdieping,
v.alg_ruimte_nr,
v.alg_ruimte_omschrijving,
sr.alg_srtruimte_omschrijving,
r.alg_ruimte_bruto_vloeropp,
flx.getdomeinwaarde(101, flx.getflex('ALG', 1080, r.alg_ruimte_key, 'R')) vloersoort
FROM alg_v_onroerendgoed_gegevens v,
alg_locatie l,
alg_district d,
(SELECT l.alg_locatie_key,
flx.getdomeinwaarde(1, flx.getflex('ALG',1000, l.alg_locatie_key,'L')) cluster_label_oorspr,
flx.getdomeinwaarde(2, flx.getflex('ALG',1002, l.alg_locatie_key,'L')) type_opvang,
flx.getflex('ALG',1020, l.alg_locatie_key,'L') bijzonderheden,
flx.getdomeinwaarde(161,flx.getflex('ALG',1141, l.alg_locatie_key,'L')) kostenplaats_1,
flx.getdomeinwaarde(161,flx.getflex('ALG',1142, l.alg_locatie_key,'L')) kostenplaats_2,
flx.getdomeinwaarde(161,flx.getflex('ALG',1143, l.alg_locatie_key,'L')) kostenplaats_3
FROM alg_locatie l ) km,
alg_ruimte r,
alg_srtruimte sr
WHERE v.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND v.alg_type IN ('R')
AND v.alg_locatie_key = km.alg_locatie_key
AND v.alg_ruimte_key = r.alg_ruimte_key AND r.alg_ruimte_verwijder IS NULL
AND r.alg_srtruimte_key = sr.alg_srtruimte_key (+)
ORDER BY d.alg_district_omschrijving, l.alg_locatie_code, v.alg_gebouw_code, v.alg_ruimte_nr
;
CREATE OR REPLACE VIEW blos_v_rap_ruimteketen_check
AS
SELECT l.alg_locatie_code,
@@ -1412,6 +1690,20 @@ AS
WHERE fac_notificatie_job_view = 'BLOS_V_NOTI_SERVICEDESK_ORD' )
) ;
---------------------------------------------------------------------------------------------------------------
--- Facilitor Graphics / CAD ---
---------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE VIEW blos_v_thema_set_res_wp
AS
SELECT ins_deel_key, DECODE (rd.res_deel_key, NULL, 0, 1) waarde
FROM ins_deel d,
(SELECT *
FROM res_deel
WHERE res_deel_verwijder IS NULL) rd
WHERE d.ins_deel_key = rd.res_ins_deel_key(+);
CREATE OR REPLACE VIEW blos_v_thema_vloersoort
(
ALG_RUIMTE_KEY,
@@ -1442,6 +1734,40 @@ AS
WHERE r.alg_ruimte_key = va.alg_ruimte_key(+);
---------------------------------------------------------------------------------------------------------------
--- Periodieke procedures die afgetrapt worden binnen BLOS ---
---------------------------------------------------------------------------------------------------------------
-- script om dagelijks terugkerende scripts aan te roepen.
CREATE OR REPLACE PROCEDURE blos_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
-- job om de werkplekkoppelingen te realiseren en onderhouden voor de locatiemanagers
blos_select_wpcluster ('WP_CLUSTER', SYSDATE);
END;
/
/* TZT nog aanpassen naar onderstaande
CREATE OR REPLACE PROCEDURE blos_daily
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
blos_select_wpcluster ('WP_CLUSTER', SYSDATE);
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 blos_daily;
/
*/
------ payload end ------
SET DEFINE OFF