UBRH#55068 -- Importprocedure data topdesk naar facilitor

UBRH#55068  -- View voor kennisbank-verantwoordelijke

svn path=/Customer/trunk/; revision=40386
This commit is contained in:
Jos Migo
2019-01-03 14:33:14 +00:00
parent 3a0867d562
commit 684484095b

View File

@@ -1,3 +1,4 @@
/* Formatted on 20-12-2018 13:17:01 (QP5 v5.136.908.31019) */
--
-- $Id$
--
@@ -18,87 +19,58 @@ SET DEFINE OFF
------ payload begin ------
-- Deze view nog weghalen voor PRODUCTIE
CREATE OR REPLACE VIEW ubrh_v_prs_levcontacten
(
PRS_CONTACTPERSOON_KEY,
PRS_BEDRIJF_KEY,
PRS_BEDRIJF_NAAM,
PRS_CONTACTPERSOON_NAAM,
CONTACT
)
AS
SELECT c.prs_contactpersoon_key,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
c.prs_contactpersoon_naam,
( b.prs_bedrijf_naam
|| ' - '
|| c.prs_contactpersoon_naam
|| ' - '
|| c.prs_contactpersoon_email)
contact
FROM prs_v_aanwezigbedrijf b, prs_contactpersoon c
WHERE b.prs_bedrijf_leverancier = 1
AND b.prs_bedrijf_key = c.prs_bedrijf_key
ORDER BY contact;
-- View om bij de meldingen de Afdeling te kunnen kiezen vanuit 1e niveau Ministerie en daaronder de echte afdeling (laagste niveau)
CREATE OR REPLACE VIEW ubrh_v_afdelingkiezen
(
PRS_AFDELING_KEY,
PRS_AFDELING_OMSCHRIJVING,
PRS_DEPARTEMENT_KEY,
PRS_DEPARTEMENT_OMSCHRIJVING,
PRS_DEPARTEMENT_CODE,
PRS_AFDELING_KEUZELIJST
PRS_AFDELING_KEY,
PRS_AFDELING_OMSCHRIJVING,
PRS_DEPARTEMENT_KEY,
PRS_DEPARTEMENT_OMSCHRIJVING,
PRS_DEPARTEMENT_CODE,
PRS_AFDELING_KEUZELIJST
)
AS
SELECT b.prs_afdeling_key
AS Key_EigenAfdeling,
(SELECT a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_key = b.prs_afdeling_key)
AS EigenAfdelingsNaam,
b.prs_afdeling_key1
AS Key_Departement,
a.prs_afdeling_omschrijving
AS Naam_Departement,
a.prs_afdeling_naam
AS Code_Departement,
a.prs_afdeling_naam
|| ' / '
|| (SELECT a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_key = b.prs_afdeling_key)
AS Naam_Keuzelijst
FROM prs_v_afdeling_boom b, prs_afdeling a
WHERE b.prs_afdeling_key1 = a.prs_afdeling_key
AND b.prs_afdeling_key2 IS NOT NULL
AND a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_aanmaak > TO_DATE ('01-12-2018', 'DD-MM-YYYY')
ORDER BY Key_EigenAfdeling ASC;
SELECT b.prs_afdeling_key AS Key_EigenAfdeling,
(SELECT a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_key = b.prs_afdeling_key)
AS EigenAfdelingsNaam,
b.prs_afdeling_key1 AS Key_Departement,
a.prs_afdeling_omschrijving AS Naam_Departement,
a.prs_afdeling_naam AS Code_Departement,
a.prs_afdeling_naam
|| ' / '
|| (SELECT a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_key = b.prs_afdeling_key)
AS Naam_Keuzelijst
FROM prs_v_afdeling_boom b, prs_afdeling a
WHERE b.prs_afdeling_key1 = a.prs_afdeling_key
AND b.prs_afdeling_key2 IS NOT NULL
AND a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_aanmaak > TO_DATE ('01-12-2018', 'DD-MM-YYYY')
ORDER BY Key_EigenAfdeling ASC;
-- View voor kennisbank, de verantwoordelijke mensen voor vastlegging en onderhoud.
-- View voor kennisbank, de verantwoordelijke mensen voor vastlegging en onderhoud.
-- LET OP - ID autorisatiegroep nog in PROD goedzetten
CREATE OR REPLACE VIEW ubrh_v_mdw_kennisbank
(
PRS_PERSLID_KEY,
NAAM
PRS_PERSLID_KEY,
NAAM
)
AS
SELECT DISTINCT p.prs_perslid_key, N.PRS_PERSLID_NAAM_FRIENDLY
FROM fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
fac_groep gr,
fac_groeprechten grr,
prs_v_perslid_fullnames n
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key = gr.fac_groep_key
AND gr.FAC_GROEP_KEY = grr.fac_groep_key
AND n.prs_perslid_key = p.prs_perslid_key
AND gr.FAC_GROEP_KEY = 201;
SELECT DISTINCT p.prs_perslid_key, N.PRS_PERSLID_NAAM_FRIENDLY
FROM fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
fac_groep gr,
fac_groeprechten grr,
prs_v_perslid_fullnames n
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key = gr.fac_groep_key
AND gr.FAC_GROEP_KEY = grr.fac_groep_key
AND n.prs_perslid_key = p.prs_perslid_key
AND gr.FAC_GROEP_KEY = 42;
CREATE OR REPLACE PROCEDURE ubrh_import_topdesk (p_import_key IN NUMBER)
@@ -120,27 +92,20 @@ AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- De importvelden vanuit Topdesk
v_afdeling VARCHAR2 (100);
v_meldingnummer VARCHAR2 (100);
v_extern_nummer VARCHAR2 (100);
v_datumtijd_van_aanmaak VARCHAR2 (100);
v_streefdatum VARCHAR2 (100);
v_aanmaker_kaart VARCHAR2 (100);
v_naam_aanmelder VARCHAR2 (100);
v_extern_nummer VARCHAR2 (100);
v_aanmaker_kaart VARCHAR2 (100);
v_naam_behandelaar VARCHAR2 (100);
v_korte_omschrijving VARCHAR2 (100);
v_status VARCHAR2 (100);
v_soort_melding VARCHAR2 (100);
v_gereed VARCHAR2 (100);
v_datumtijd_van_aanmaak VARCHAR2 (100);
v_afgemeld VARCHAR2 (100);
v_impact VARCHAR2 (100);
v_uitvoering VARCHAR2 (100);
v_departement VARCHAR2 (100);
v_korte_omschrijving VARCHAR2 (100);
v_soort_melding VARCHAR2 (100);
v_status VARCHAR2 (100);
v_streefdatum VARCHAR2 (100);
v_categorie VARCHAR2 (100);
v_subcategorie VARCHAR2 (100);
v_behandelaar_escaleren VARCHAR2 (100);
v_behandelaarsgroep VARCHAR2 (100);
-- v_lange_omschrijving VARCHAR2 (4000);
v_urgentie VARCHAR2 (100);
header_found BOOLEAN := FALSE;
BEGIN
@@ -154,94 +119,82 @@ BEGIN
BEGIN
v_newline := rec1.fac_imp_file_line;
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling);
fac.imp_getfield (v_newline, v_fielddelimitor, v_meldingnummer);
fac.imp_getfield (v_newline, v_fielddelimitor, v_naam_aanmelder);
fac.imp_getfield (v_newline, v_fielddelimitor, v_extern_nummer);
fac.imp_getfield (v_newline, v_fielddelimitor, v_aanmaker_kaart);
fac.imp_getfield (v_newline, v_fielddelimitor, v_naam_behandelaar);
fac.imp_getfield (v_newline, v_fielddelimitor, v_categorie);
fac.imp_getfield (v_newline,
v_fielddelimitor,
v_datumtijd_van_aanmaak);
fac.imp_getfield (v_newline, v_fielddelimitor, v_streefdatum);
fac.imp_getfield (v_newline, v_fielddelimitor, v_aanmaker_kaart);
fac.imp_getfield (v_newline, v_fielddelimitor, v_naam_aanmelder);
fac.imp_getfield (v_newline, v_fielddelimitor, v_naam_behandelaar);
fac.imp_getfield (v_newline, v_fielddelimitor, v_korte_omschrijving);
fac.imp_getfield (v_newline, v_fielddelimitor, v_status);
fac.imp_getfield (v_newline, v_fielddelimitor, v_soort_melding);
fac.imp_getfield (v_newline, v_fielddelimitor, v_gereed);
fac.imp_getfield (v_newline, v_fielddelimitor, v_afgemeld);
fac.imp_getfield (v_newline, v_fielddelimitor, v_impact);
fac.imp_getfield (v_newline, v_fielddelimitor, v_uitvoering);
fac.imp_getfield (v_newline, v_fielddelimitor, v_departement);
fac.imp_getfield (v_newline, v_fielddelimitor, v_categorie);
fac.imp_getfield (v_newline, v_fielddelimitor, v_korte_omschrijving);
fac.imp_getfield (v_newline, v_fielddelimitor, v_soort_melding);
fac.imp_getfield (v_newline, v_fielddelimitor, v_status);
fac.imp_getfield (v_newline, v_fielddelimitor, v_streefdatum);
fac.imp_getfield (v_newline, v_fielddelimitor, v_subcategorie);
fac.imp_getfield (v_newline,
v_fielddelimitor,
v_behandelaar_escaleren);
fac.imp_getfield (v_newline, v_fielddelimitor, v_behandelaarsgroep);
-- fac.imp_getfield (v_newline, v_fielddelimitor, v_lange_omschrijving);
fac.imp_getfield (v_newline, v_fielddelimitor, v_urgentie);
-- Skip until the header is found
IF (header_found = FALSE)
THEN
IF UPPER (v_afdeling) = 'AFDELING'
AND UPPER (v_meldingnummer) = 'MELDING-NUMMER'
IF UPPER (v_meldingnummer) = 'MELDINGNUMMER'
AND UPPER (v_naam_aanmelder) = 'NAAM AANMELDER'
AND UPPER (v_extern_nummer) = 'EXTERN NUMMER'
AND UPPER (v_aanmaker_kaart) = 'AANMAKER VAN DE KAART'
AND UPPER (v_naam_behandelaar) = 'BEHANDELAAR'
AND UPPER (v_categorie) = 'CATEGORIE'
AND UPPER (v_datumtijd_van_aanmaak) =
'DATUM / TIJD VAN AANMAAK'
AND UPPER (v_streefdatum) = 'STREEFDATUM'
AND UPPER (v_aanmaker_kaart) = 'AANMAKER VAN DE KAART'
AND UPPER (v_naam_aanmelder) = 'NAAM AANMELDER'
AND UPPER (v_naam_behandelaar) = 'BEHANDELAAR'
AND UPPER (v_afgemeld) = 'DATUM AFGEMELD'
AND UPPER (v_korte_omschrijving) =
'KORTE OMSCHRIJVING (DETAILS)'
AND UPPER (v_status) = 'STATUS'
AND UPPER (v_soort_melding) = 'SOORT MELDING'
AND UPPER (v_gereed) = 'GEREED'
AND UPPER (v_afgemeld) = 'AFGEMELD'
AND UPPER (v_impact) = 'IMPACT'
AND UPPER (v_uitvoering) = 'UITVOERING'
AND UPPER (v_departement) = 'DEPARTEMENT (AANMELDER)'
AND UPPER (v_categorie) = 'CATEGORIE'
AND UPPER (v_status) = 'STATUS'
AND UPPER (v_streefdatum) = 'STREEFDATUM'
AND UPPER (v_subcategorie) = 'SUBCATEGORIE'
AND UPPER (v_behandelaar_escaleren) =
'BEHANDELAAR (DE-)ESCALEREN'
AND UPPER (v_behandelaarsgroep) = 'BEHANDELAARSGROEP'
-- AND UPPER (v_lange_omschrijving) = '-'
AND UPPER (v_urgentie) = 'URGENTIE'
THEN
header_found := TRUE;
END IF;
ELSE
INSERT INTO ubrh_imp_topdesk (afdeling,
meldingnummer,
externnummer,
aanmaakdatum,
aanmaker_naam,
melder_naam,
behandelaar_naam,
onderwerp,
impact_omschrijving,
status_omschrijving,
soort_melding_oms)
VALUES (v_afdeling,
v_meldingnummer,
INSERT INTO ubrh_imp_topdesk (meldingnummer,
naam_aanmelder,
extern_nummer,
aanmaker_kaart,
behandelaar,
datum_aanmaak,
datum_afgemeld,
korte_omschrijving,
soort_melding,
status,
streefdatum,
categorie,
subcategorie,
urgentie)
VALUES (v_meldingnummer,
v_naam_aanmelder,
SUBSTR (v_extern_nummer, 1, 30),
v_aanmaker_kaart,
v_naam_behandelaar,
fac.safe_to_date (v_datumtijd_van_aanmaak,
'YYYY-MM-DD HH24:MI'),
v_aanmaker_kaart,
v_naam_aanmelder,
v_naam_behandelaar,
v_afgemeld,
v_korte_omschrijving,
v_impact,
v_soort_melding,
v_status,
v_subcategorie);
v_streefdatum,
v_categorie,
v_subcategorie,
v_urgentie);
v_count_import := v_count_import + 1;
--- MELDING KEY ERBIJ HALEN
-- TO DO: Indien geen stdmelding achterhaald kan worden dan vullen met key van dummy melding (in update)
UPDATE ubrh_imp_topdesk
SET soort_melding =
SET subcategorie_key =
(SELECT DISTINCT mld_stdmelding_key
FROM mld_stdmelding m, ins_tab_discipline d
WHERE m.mld_ins_discipline_key = d.ins_discipline_key
@@ -250,12 +203,12 @@ BEGIN
UPPER (v_categorie)
AND m.mld_stdmelding_upper =
UPPER (v_subcategorie))
WHERE soort_melding_oms = v_subcategorie;
WHERE subcategorie = v_subcategorie;
--- STATUS KEY
UPDATE ubrh_imp_topdesk
SET status =
DECODE (UPPER (status_omschrijving),
SET status_key =
DECODE (UPPER (status),
'NIEUW', 2,
'DIGIINKOOP - LOGIUS', 7,
'IN BEHANDELING', 4,
@@ -263,37 +216,38 @@ BEGIN
--- PRIO KEY
UPDATE ubrh_imp_topdesk
SET impact =
DECODE (UPPER (impact_omschrijving),
'KLEIN', 4,
'GEMIDDELD', 3,
'GROOT', 2);
SET urgentie_key =
DECODE (UPPER (urgentie),
'LAAG', 4,
'NORMAAL', 3,
'HOOG', 2);
--- PERSLID KEY AANMAKER
--- PERSLID KEY AANMELDER
UPDATE ubrh_imp_topdesk
SET aanmaker =
SET melderkey =
(SELECT MAX (prs_perslid_key)
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_naam) =
UPPER (v_aanmaker_kaart))
WHERE aanmaker_naam = v_aanmaker_kaart;
UPPER (naam_aanmelder))
WHERE naam_aanmelder = v_naam_aanmelder;
--- PERSLID KEY MELDER
--- PERSLID KEY AANMAKER VD KAART
UPDATE ubrh_imp_topdesk
SET melder =
SET aanmaker_kaartkey =
(SELECT MAX (prs_perslid_key)
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_naam) =
UPPER (v_naam_aanmelder))
WHERE melder_naam = v_naam_aanmelder;
UPPER (aanmaker_kaart))
WHERE aanmaker_kaart = v_aanmaker_kaart;
-- PERSLID KEY BEHANDELAAR
UPDATE ubrh_imp_topdesk
SET behandelaar =
SET behandelaar_key =
(SELECT MAX (prs_perslid_key)
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_naam) =
UPPER (v_naam_behandelaar));
UPPER (v_naam_behandelaar))
WHERE behandelaar = v_naam_behandelaar;
END IF;
END;
END LOOP;
@@ -327,6 +281,7 @@ EXCEPTION
END;
/
/*
CREATE OR REPLACE PROCEDURE ubrh_update_topdesk (p_import_key IN NUMBER)
AS
CURSOR c1
@@ -354,19 +309,20 @@ BEGIN
mld_stdmelding_key,
prs_perslid_key,
mld_melding_status,
MLD_MELDING_SPOED)
mld_melding_spoed)
VALUES (rec1.meldingnummer,
'MLD',
SUBSTR (rec1.onderwerp, 1, 80), --lang genoeg?
6,
rec1.aanmaakdatum,
--- bug_desc, omschrijving lang... nog te doen
rec1.aanmaakdatum,
rec1.behandelaar,
rec1.soort_melding,
COALESCE (rec1.melder, rec1.aanmaker, rec1.behandelaar),
rec1.status,
rec1.impact);
rec1.impact) ; -- Deze regel geeft 2-1 foutmelding
---- TO DO: Topdesk nummer is standaard extern nummer bij de melding, maar extern nummer Logius moet naar kenmerkveld
v_count_import := v_count_import + 1;
END;
END LOOP;
@@ -389,6 +345,7 @@ EXCEPTION
'');
END ubrh_update_topdesk;
/
*/
------ payload end ------