1435 lines
60 KiB
SQL
1435 lines
60 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
|
|
DEFINE thisfile = 'PCBO.SQL'
|
|
DEFINE dbuser = 'PCBO'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
---------------------------------------
|
|
PROMPT &fcltcusttxt
|
|
---------------------------------------
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
CREATE OR REPLACE VIEW pcbo_v_rapp_gebouwdossier
|
|
(
|
|
html_foto,
|
|
BRIN,
|
|
Locatie_omschrijving,
|
|
Adres,
|
|
Postcode,
|
|
Plaats,
|
|
Contactpersoon,
|
|
Telefoonnummer_contactpers,
|
|
Intern_telefoonnummer_contactpers,
|
|
Gebouw_code,
|
|
Gebouw_naam,
|
|
Gebouw_key
|
|
)
|
|
AS
|
|
SELECT DECODE (
|
|
g.alg_gebouw_image,
|
|
NULL, 'Geen foto',
|
|
'<img src="https://pcbo.facilitor.nl/cust/PCBO/photos/gebouw/'
|
|
|| g.alg_gebouw_image
|
|
|| '" height="60">') foto,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
l.alg_locatie_adres,
|
|
l.alg_locatie_postcode,
|
|
l.alg_locatie_plaats,
|
|
cp.contactpersoon,
|
|
telnr.telnr_contactpersoon,
|
|
intern_telnr.intern_telnr_contactpersoon,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_naam,
|
|
g.alg_gebouw_key
|
|
FROM alg_gebouw g,
|
|
alg_locatie l,
|
|
(SELECT gk.alg_onrgoed_key,
|
|
gk.alg_onrgoedkenmerk_waarde contactpersoon
|
|
FROM alg_onrgoedkenmerk gk
|
|
WHERE gk.alg_kenmerk_key = 1380) cp,
|
|
(SELECT gk.alg_onrgoed_key,
|
|
gk.alg_onrgoedkenmerk_waarde telnr_contactpersoon
|
|
FROM alg_onrgoedkenmerk gk
|
|
WHERE gk.alg_kenmerk_key = 1140) telnr,
|
|
(SELECT gk.alg_onrgoed_key,
|
|
gk.alg_onrgoedkenmerk_waarde intern_telnr_contactpersoon
|
|
FROM alg_onrgoedkenmerk gk
|
|
WHERE gk.alg_kenmerk_key = 1142) intern_telnr
|
|
WHERE l.alg_locatie_key = g.alg_locatie_key
|
|
AND cp.alg_onrgoed_key(+) = g.alg_gebouw_key
|
|
AND telnr.alg_onrgoed_key(+) = g.alg_gebouw_key
|
|
AND intern_telnr.alg_onrgoed_key(+) = g.alg_gebouw_key
|
|
AND g.alg_gebouw_verwijder IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW PCBO_V_CAD_THEMA_GEBRUIKSF
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE,
|
|
WAARDE_KEY
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key, COALESCE(gf.fac_usrdata_omschr, 'Onbekend'), COALESCE(gf.fac_usrdata_key, 21)
|
|
from alg_ruimte r,
|
|
(SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key
|
|
FROM alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_kenmerkdomein rk,
|
|
alg_kenmerk k,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
|
AND TO_CHAR (ud.fac_usrdata_key) =
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
AND k.alg_kenmerk_key = 1160
|
|
AND rr.alg_ruimte_key = ok.alg_onrgoed_key) gf
|
|
WHERE gf.alg_ruimte_key (+) = r.alg_ruimte_key;
|
|
|
|
CREATE OR REPLACE TRIGGER pcbo_t_thema_gebruiksf_i_iu
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON PCBO_V_CAD_THEMA_GEBRUIKSF
|
|
FOR EACH ROW
|
|
BEGIN
|
|
--- kenmerk bijwerken, let op: de nieuwe waarde is de key en dus niet de omschrijving
|
|
alg.upsertkenmerk (1101, :new.alg_ruimte_key, :new.waarde_key);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW PCBO_V_ALGEMEEN
|
|
AS
|
|
SELECT D.INS_DEEL_KEY INS_DEEL_KEY,
|
|
D.INS_DEEL_OMSCHRIJVING || ' - ' || D.INS_DEEL_OPMERKING INS_OMSCHRIJVING
|
|
FROM INS_DEEL D, INS_SRTDEEL SD, INS_SRTGROEP SG
|
|
WHERE D.INS_SRTDEEL_KEY = SD.INS_SRTDEEL_KEY
|
|
AND SG.INS_SRTGROEP_KEY = SD.INS_SRTGROEP_KEY
|
|
AND SG.INS_SRTGROEP_KEY = 81 -- algemeen
|
|
AND D.INS_DEEL_VERWIJDER IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW PCBO_V_BOUWKUNDIG
|
|
AS
|
|
SELECT D.INS_DEEL_KEY INS_DEEL_KEY,
|
|
D.INS_DEEL_OMSCHRIJVING || ' - ' || D.INS_DEEL_OPMERKING INS_OMSCHRIJVING
|
|
FROM INS_DEEL D, INS_SRTDEEL SD, INS_SRTGROEP SG
|
|
WHERE D.INS_SRTDEEL_KEY = SD.INS_SRTDEEL_KEY
|
|
AND SG.INS_SRTGROEP_KEY = SD.INS_SRTGROEP_KEY
|
|
AND SG.INS_SRTGROEP_KEY = 82 -- bouwkundig
|
|
AND D.INS_DEEL_VERWIJDER IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW PCBO_V_E_INSTALLATIES
|
|
AS
|
|
SELECT D.INS_DEEL_KEY INS_DEEL_KEY,
|
|
D.INS_DEEL_OMSCHRIJVING || ' - ' || D.INS_DEEL_OPMERKING INS_OMSCHRIJVING
|
|
FROM INS_DEEL D, INS_SRTDEEL SD, INS_SRTGROEP SG
|
|
WHERE D.INS_SRTDEEL_KEY = SD.INS_SRTDEEL_KEY
|
|
AND SG.INS_SRTGROEP_KEY = SD.INS_SRTGROEP_KEY
|
|
AND SG.INS_SRTGROEP_KEY = 83 -- e-installaties
|
|
AND D.INS_DEEL_VERWIJDER IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW PCBO_V_W_INSTALLATIES
|
|
AS
|
|
SELECT D.INS_DEEL_KEY INS_DEEL_KEY,
|
|
D.INS_DEEL_OMSCHRIJVING || ' - ' || D.INS_DEEL_OPMERKING INS_OMSCHRIJVING
|
|
FROM INS_DEEL D, INS_SRTDEEL SD, INS_SRTGROEP SG
|
|
WHERE D.INS_SRTDEEL_KEY = SD.INS_SRTDEEL_KEY
|
|
AND SG.INS_SRTGROEP_KEY = SD.INS_SRTGROEP_KEY
|
|
AND SG.INS_SRTGROEP_KEY = 84 -- w-installaties
|
|
AND D.INS_DEEL_VERWIJDER IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW PCBO_V_CONSTRUCTIE
|
|
AS
|
|
SELECT D.INS_DEEL_KEY INS_DEEL_KEY,
|
|
D.INS_DEEL_OMSCHRIJVING || ' - ' || D.INS_DEEL_OPMERKING INS_OMSCHRIJVING
|
|
FROM INS_DEEL D, INS_SRTDEEL SD, INS_SRTGROEP SG
|
|
WHERE D.INS_SRTDEEL_KEY = SD.INS_SRTDEEL_KEY
|
|
AND SG.INS_SRTGROEP_KEY = SD.INS_SRTGROEP_KEY
|
|
AND SG.INS_SRTGROEP_KEY = 101 -- constructie
|
|
AND D.INS_DEEL_VERWIJDER IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW PCBO_V_CAD_THEMA_VLOERAFW
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key, va.fac_usrdata_omschr
|
|
FROM alg_ruimte r,
|
|
(SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr
|
|
FROM alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_kenmerkdomein rk,
|
|
alg_kenmerk k,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
|
AND TO_CHAR (ud.fac_usrdata_key) =
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
AND k.alg_kenmerk_key = 1161
|
|
AND rr.alg_ruimte_key = ok.alg_onrgoed_key) va
|
|
WHERE va.alg_ruimte_key = r.alg_ruimte_key;
|
|
|
|
CREATE OR REPLACE VIEW PCBO_V_CAD_THEMA_SCHOONM
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE,
|
|
WAARDE_KEY
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key, COALESCE(gf.fac_usrdata_omschr, 'Onbekend'), COALESCE(gf.fac_usrdata_key, 161)
|
|
from alg_ruimte r,
|
|
(SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key
|
|
FROM alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_kenmerkdomein rk,
|
|
alg_kenmerk k,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
|
AND TO_CHAR (ud.fac_usrdata_key) =
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
AND k.alg_kenmerk_key = 1320
|
|
AND rr.alg_ruimte_key = ok.alg_onrgoed_key) gf
|
|
WHERE gf.alg_ruimte_key (+) = r.alg_ruimte_key;
|
|
|
|
CREATE OR REPLACE TRIGGER pcbo_t_thema_schoonm_i_iu
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON PCBO_V_CAD_THEMA_SCHOONM
|
|
FOR EACH ROW
|
|
BEGIN
|
|
--- kenmerk bijwerken, let op: de nieuwe waarde is de key en dus niet de omschrijving
|
|
alg.upsertkenmerk (1320, :new.alg_ruimte_key, :new.waarde_key);
|
|
END;
|
|
/
|
|
|
|
|
|
----------------------------------------------------------------------------
|
|
------------------ BEGIN MBJOB IMPORT --------------------------------------
|
|
----------------------------------------------------------------------------
|
|
CREATE OR REPLACE PROCEDURE pcbo_import_insp_mjob (p_import_key IN NUMBER)
|
|
IS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
|
|
v_newline VARCHAR2 (4000); -- Input line
|
|
v_errormsg VARCHAR (1000);
|
|
v_hint VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_ongeldig NUMBER (1);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_header_is_valid NUMBER (1);
|
|
v_dummy VARCHAR2 (1000);
|
|
v_count NUMBER;
|
|
v_count_rec NUMBER := 0 ; -- totaal aantal record in csv
|
|
v_count_verwerk NUMBER ; -- aantal te verwerken regels
|
|
v_count_n_taak NUMBER ; -- aantal nieuw aan te maken basistaken
|
|
v_count_n_taakobject NUMBER ; -- aantal nieuw aan te maken objecttaken
|
|
v_count_w_taak NUMBER ; -- aantal bestaande taken te wijzigen
|
|
|
|
-- De importvelden:
|
|
v_locatiecode VARCHAR2(1000);
|
|
v_objectomschrijving VARCHAR2(1000);
|
|
v_objectaanteh VARCHAR2(1000);
|
|
v_objectaantal VARCHAR2(1000);
|
|
v_taakcategorie VARCHAR2(1000);
|
|
v_taakomschrijving VARCHAR2(1000);
|
|
v_taakomschrijving_nieuw VARCHAR2(1000); -- Vullen we in kolom extra_veld5
|
|
v_taakopmerking VARCHAR2(1000);
|
|
v_taakgroep VARCHAR2(1000);
|
|
v_taakprioriteit VARCHAR2(1000);
|
|
v_taakobjectpercentage VARCHAR2(1000);
|
|
v_taakobjectopmerking VARCHAR2(1000);
|
|
v_taakobjectperiode VARCHAR2(1000);
|
|
v_taakobjectstartjaar VARCHAR2(1000); -- Startjaar uit CSV
|
|
v_taakobjectstartjaar_d DATE;
|
|
v_object_aanmaak DATE; -- Datum aanmaak van Object
|
|
|
|
v_taakobjecteindjaar VARCHAR2(1000);
|
|
v_taakobjecteindjaar_d DATE;
|
|
v_taakobjectmateriaal VARCHAR2(1000);
|
|
v_taakobjectkosten VARCHAR2(1000);
|
|
v_taakobjecteenheid VARCHAR2(1000);
|
|
v_taakobjecthoeveelheid VARCHAR2(1000);
|
|
v_taakdienst VARCHAR2(1000);
|
|
v_deel_key NUMBER(10);
|
|
v_deel_aant NUMBER(10);
|
|
v_discipline_key NUMBER(10);
|
|
v_ismjob NUMBER;
|
|
v_taak_geschiedenis NUMBER (10); -- Vullen we in kolom extra_veld4
|
|
|
|
v_srtcontrole_key NUMBER(10);
|
|
v_srtcontrole_teller NUMBER(10);
|
|
v_ins_srtdeel_key NUMBER(10);
|
|
v_ins_srtdeel_code VARCHAR2(10);
|
|
v_ins_srtcontroledl_xcp_key NUMBER(10);
|
|
v_taakobject_startjaar_d DATE; -- Startjaar van de reeds in Facilitor gekoppelde objecttaak
|
|
|
|
CURSOR c
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
|
|
BEGIN
|
|
-- Eerst opruiming
|
|
|
|
DELETE FROM tmp_imp_mjb;
|
|
|
|
COMMIT;
|
|
|
|
v_header_is_valid := 0;
|
|
v_ongeldig := 0;
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
|
|
BEGIN
|
|
v_ongeldig := 0;
|
|
v_taak_geschiedenis := NULL ;
|
|
v_deel_key := NULL ;
|
|
v_ins_srtdeel_key := NULL ;
|
|
v_ins_srtdeel_code := NULL ;
|
|
v_srtcontrole_key := NULL ;
|
|
v_ins_srtcontroledl_xcp_key := NULL;
|
|
|
|
v_errormsg := 'Fout FETCH te importeren rij';
|
|
v_newline := rec.fac_imp_file_line;
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij:' || SUBSTR (v_newline, 1, 200);
|
|
v_aanduiding := '';
|
|
|
|
IF (REPLACE(UPPER (v_newline), ' ') LIKE 'OBJECTIDENTIFICATIE;OBJECTAANTEH;OBJECTAANTAL;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN;DIENST;TAAKOMSCHRIJVINGNIEUW%')
|
|
THEN
|
|
|
|
v_header_is_valid := 1;
|
|
ELSE
|
|
-- Lees alle veldwaarden
|
|
v_count_rec := v_count_rec + 1 ;
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (object)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_objectomschrijving);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (object eehnheid)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_objectaanteh);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (object aantal)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_objectaantal);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (discipline)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakcategorie);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (taakomschrijving)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (taakopmerking)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakopmerking);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (taakgroep)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakgroep);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (prioriteit)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakprioriteit);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (percentage)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectpercentage);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (opmerking)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectopmerking);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (eenheid)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteenheid);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (periode)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectperiode);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (startjaar)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectstartjaar);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (eindjaar)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteindjaar);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (materiaal)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectmateriaal);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (dienst)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakdienst);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (taakomschrijvingnieuw)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving_nieuw);
|
|
|
|
|
|
IF v_header_is_valid = 1 THEN -- Als geldige header gepasseerd en csv-recordvelden gevuld dan gaan we eerst checken of data klopt
|
|
|
|
-- Controleer of het object bestaat
|
|
-- Controleer of object er meerdere keren in staat (valt terug naar OTHERS, regel 300)
|
|
BEGIN
|
|
v_errormsg :=
|
|
'Fout bij opzoeken object: ' || v_objectomschrijving ||' komt vaker dan 1 keer voor';
|
|
|
|
SELECT ins_deel_key, ins_deel_aantal
|
|
INTO v_deel_key, v_deel_aant
|
|
FROM ins_deel
|
|
WHERE UPPER (ins_deel_omschrijving) = UPPER (v_objectomschrijving)
|
|
AND ins_deel_verwijder IS NULL;
|
|
EXCEPTION WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'E', 'Object bestaat niet - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving);
|
|
v_ongeldig := 1;
|
|
END;
|
|
-- wijkt het aantal in de import uit van het aantal dat bij het object staat?
|
|
-- Zo nee: dan nemen we aantal en eenheid NIET over in het xcp record
|
|
IF v_deel_aant = fac.safe_to_number(v_objectaantal)
|
|
THEN
|
|
v_objectaantal := NULL;
|
|
v_objectaanteh := NULL;
|
|
END IF;
|
|
|
|
-- Controleer de taakcategorie
|
|
v_errormsg :=
|
|
'Fout bij controleren taakcategorie ' ;
|
|
BEGIN
|
|
SELECT ins_discipline_key, ctr_disc_params_ismjob
|
|
INTO v_discipline_key, v_ismjob
|
|
FROM ins_tab_discipline d, ctr_disc_params dp
|
|
WHERE dp.ctr_ins_discipline_key = d.ins_discipline_key
|
|
AND UPPER (d.ins_discipline_omschrijving) = TRIM(UPPER(v_taakcategorie));
|
|
EXCEPTION WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'E', 'Inspectie discipline niet gevonden - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index || ' - ' || v_taakcategorie);
|
|
v_ongeldig := 1;
|
|
END;
|
|
|
|
-- Controleer de eenheid
|
|
IF v_ismjob = 1
|
|
THEN
|
|
v_taakobjecteenheid := '4'; -- jaar
|
|
END IF;
|
|
|
|
IF v_taakobjecteenheid IS NOT NULL AND v_taakobjecteenheid NOT IN ('1', '2', '3', '4')
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'E', 'Eenheid is niet correct gevuld (of leeg of 1,2,3,4) - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjecteenheid);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
-- Controleer dienst
|
|
v_errormsg :=
|
|
'Fout controleren dienst ';
|
|
|
|
IF v_taakdienst IS NOT NULL
|
|
THEN
|
|
SELECT count(*)
|
|
INTO v_count
|
|
FROM prs_dienst
|
|
WHERE UPPER(prs_dienst_omschrijving) = UPPER(v_taakdienst);
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'W', 'Dienst onbekend - zal bij verwerken aangemaakt worden.. ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakdienst);
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Controleer de kosten - leeg of numeriek
|
|
v_errormsg :=
|
|
'Fout controleren kosten ';
|
|
|
|
IF v_taakobjectmateriaal IS NOT NULL AND fac.safe_to_number (REPLACE (v_taakobjectmateriaal, ',', '.')) IS NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'E', 'Kosten taakobject niet goed ingevuld - Regel wordt niet verwerkt.. ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || 'Kosten csv: ' || v_taakobjectmateriaal);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
-- Controleer de taakperiode - Leeg of numeriek
|
|
v_errormsg :=
|
|
'Fout controleren taakperiode ';
|
|
|
|
IF v_taakobjectperiode IS NOT NULL AND fac.safe_to_number (v_taakobjectperiode) IS NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'E', 'Ongeldige taakobjectperiode - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjectperiode);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
-- Controleer de taakprioriteit - Leeg of numeriek
|
|
v_errormsg :=
|
|
'Fout controleren taakprioriteit ';
|
|
|
|
IF v_taakprioriteit IS NOT NULL AND fac.safe_to_number (v_taakprioriteit) IS NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'E', 'Prioriteit taak niet goed ingevuld - Regel wordt niet verwerkt.. ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || 'Kosten csv: ' || v_taakprioriteit);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
-- Controleer de startdatum
|
|
v_errormsg :=
|
|
'Fout bij controle startdatum ';
|
|
|
|
-- In geval jaar-invoer op datum zetten..
|
|
IF LENGTH (v_taakobjectstartjaar) = 4
|
|
THEN
|
|
v_taakobjectstartjaar := '01-01-' || v_taakobjectstartjaar;
|
|
END IF;
|
|
|
|
IF v_taakobjectstartjaar IS NOT NULL AND fac.safe_to_date (v_taakobjectstartjaar, 'dd-mm-yyyy') IS NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'E', 'Startdatum ongeldige invoer - Regel wordt niet verwerkt.. ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjectstartjaar);
|
|
v_ongeldig := 1;
|
|
ELSE
|
|
v_taakobjectstartjaar_d := fac.safe_to_date(v_taakobjectstartjaar, 'dd-mm-yyyy') ;
|
|
END IF;
|
|
|
|
-- Hier controleren of de startdatum voor de Objectregisratiedatum ligt
|
|
v_errormsg :=
|
|
'Fout bij controle start- en objectregistratiedatum ';
|
|
|
|
IF v_deel_key IS NOT NULL AND v_ongeldig = 0
|
|
THEN
|
|
|
|
SELECT ins_deel_aanmaak
|
|
INTO v_object_aanmaak
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = v_deel_key ;
|
|
END IF;
|
|
|
|
-- Controleer de einddatum
|
|
v_errormsg :=
|
|
'Fout bij controle einddatum ';
|
|
|
|
-- In geval jaar-invoer op datum zetten..
|
|
IF LENGTH (v_taakobjecteindjaar) = 4
|
|
THEN
|
|
v_taakobjecteindjaar := '31-12-' || v_taakobjecteindjaar;
|
|
END IF;
|
|
|
|
IF v_taakobjecteindjaar IS NOT NULL AND fac.safe_to_date (v_taakobjecteindjaar, 'dd-mm-yyyy') IS NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'E', 'Einddatum ongeldige invoer - Regel wordt niet verwerkt.. ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjecteindjaar);
|
|
v_ongeldig := 1;
|
|
ELSE
|
|
v_taakobjecteindjaar_d := fac.safe_to_date(v_taakobjecteindjaar, 'dd-mm-yyyy') ;
|
|
END IF;
|
|
|
|
-- Hier controleren of de taak al bestaat...
|
|
v_errormsg :=
|
|
'Fout controleren nieuwe of bestaande taak ' || rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving ;
|
|
|
|
IF v_deel_key IS NOT NULL AND v_ongeldig = 0
|
|
THEN
|
|
|
|
-- Eerst ins_srtdeel_code bepalen
|
|
SELECT d.ins_srtdeel_key, sd.ins_srtdeel_code
|
|
INTO v_ins_srtdeel_key, v_ins_srtdeel_code
|
|
FROM ins_deel d, ins_srtdeel sd
|
|
WHERE d.ins_deel_key = v_deel_key
|
|
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND ins_deel_verwijder IS NULL;
|
|
|
|
-- Vervolgens kijken of er al een taak op aangemaakt is
|
|
|
|
SELECT count(*)
|
|
INTO v_srtcontrole_teller
|
|
FROM ins_srtcontrole
|
|
WHERE LOWER(ins_srtcontrole_omschrijving) =
|
|
SUBSTR (
|
|
TRIM (
|
|
v_ins_srtdeel_code
|
|
|| ' - '
|
|
|| LOWER(v_taakomschrijving)),
|
|
1,
|
|
60);
|
|
|
|
-- Zo ja, dan gaan we de srt_controle_key vullen
|
|
--- Ps. Komt soms bij heyday voor dat eenzelfde basistaak er meer dan 1 keer in staat (per ongeluk) en daarom pakken we hier dan de max(key).
|
|
IF v_srtcontrole_teller >0 THEN
|
|
|
|
SELECT max(ins_srtcontrole_key)
|
|
INTO v_srtcontrole_key
|
|
FROM ins_srtcontrole
|
|
WHERE LOWER(ins_srtcontrole_omschrijving) =
|
|
SUBSTR (
|
|
TRIM (
|
|
v_ins_srtdeel_code
|
|
|| ' - '
|
|
|| LOWER(v_taakomschrijving)),
|
|
1,
|
|
60) ;
|
|
|
|
ELSE -- Zo niet, dan is het dus geen bestaande standaard taak en gaan we straks in de update NIEUWE taak aanmaken
|
|
|
|
-- En passen dan ook maar gelijk taakomschrijving goed aan
|
|
v_errormsg := 'Fout bij aanpassen taakomschrijving ';
|
|
|
|
IF (LENGTH (TRIM(v_ins_srtdeel_code)) + 3 + LENGTH(TRIM(v_taakomschrijving))) > 60
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'W', 'Nieuwe taak - Aangepast ivm lengte groter dan 60 ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving || ' wordt: ' || SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving), 1, 60) );
|
|
END IF;
|
|
|
|
v_taakomschrijving := SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving), 1, 60) ;
|
|
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Hier controleren of voor de bestaande taak ook de objecttaak al bestaat...
|
|
v_errormsg :=
|
|
'Fout controleren nieuwe of bestaande objecttaak ' || rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving ;
|
|
|
|
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL THEN
|
|
|
|
SELECT max(t.ins_srtcontroledl_xcp_key), max(t.ins_srtcontroledl_xcp_startdat)
|
|
INTO v_ins_srtcontroledl_xcp_key, v_taakobject_startjaar_d
|
|
FROM ins_srtcontroledl_xcp t
|
|
WHERE t.ins_srtcontrole_key = v_srtcontrole_key AND t.ins_deel_key = v_deel_key ;
|
|
|
|
END IF;
|
|
|
|
-- Hier controleren of alle verplichte velden voor de nieuwe objecttaak correct zijn gevuld
|
|
---- Dit zijn: Startdatum + Eenheid + Periode + Taakgroep(?) + Percentage (?) + Kosten (?)
|
|
v_errormsg := 'Fout controleren verplichte velden bij nieuwe objecttaak ';
|
|
|
|
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_ins_srtcontroledl_xcp_key IS NULL THEN
|
|
|
|
-- startdatum mag ook leeg zijn, dan is het automatich object registratie + cyclus
|
|
-- IF v_taakobjectstartjaar IS NULL THEN
|
|
-- fac.imp_writelog (
|
|
-- p_import_key, 'E', 'Startdatum niet ingevuld - Regel wordt niet verwerkt.. ',
|
|
-- rec.fac_imp_file_index || ' - ' || v_objectomschrijving);
|
|
-- v_ongeldig := 1;
|
|
-- END IF;
|
|
|
|
IF v_taakobjecteenheid IS NULL or v_taakobjecteenheid NOT IN ('1', '2', '3', '4') THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'E', 'Geen of ongeldige eenheid gevonden - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjecteenheid);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
IF (v_taakobjectperiode IS NULL) OR (v_taakobjectperiode IS NOT NULL AND fac.safe_to_number (v_taakobjectperiode) IS NULL) THEN
|
|
fac.imp_writelog (
|
|
p_import_key, 'E', 'Geen of ongeldige taakobjectperiode - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjectperiode);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
-- Hier controleren of er al geschiedenis op de objecttaak zit en de startdatum afwijkt van degene meegegeven in csv
|
|
v_errormsg :=
|
|
'Fout controleren geschiedenis op objecttaak ';
|
|
|
|
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL AND v_ins_srtcontroledl_xcp_key IS NOT NULL THEN
|
|
|
|
v_taak_geschiedenis := 0;
|
|
|
|
SELECT count(*)
|
|
INTO v_taak_geschiedenis
|
|
FROM ins_deelsrtcontrole
|
|
WHERE ins_deel_key = v_deel_key and ins_srtcontrole_key = v_srtcontrole_key ;
|
|
|
|
IF v_taak_geschiedenis > 0 AND v_taakobjectstartjaar IS NOT NULL AND v_taakobjectstartjaar_d <> v_taakobject_startjaar_d
|
|
THEN
|
|
|
|
fac.imp_writelog (
|
|
p_import_key, 'W', 'Op deze objecttaak zit al geschiedenis - afwijkende startdatum zal niet aangepast worden.. ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving || ' - ' || v_taakobjectstartjaar_d || ' vs. ' || v_taakobject_startjaar_d) ;
|
|
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Aangezien de taken altijd een startdatum hebben, en objecten niet altijd een aanmaakdatum, gaan we die hier gelijk trekken.
|
|
-- Daarna maken we de taak startdatum leeg, zodat de cyclus gaat lopen vanaf de bijgewerkte ins_deel_aanmaak.
|
|
-- Zo blijft het mogelijk om taken in de MJOB console te verslepen naar jaartallen eerder dan het aangegeven startjaar.
|
|
|
|
IF v_taakobjectstartjaar_d < SYSDATE
|
|
THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_aanmaak = v_taakobjectstartjaar_d
|
|
WHERE ins_deel_key = v_deel_key;
|
|
END IF;
|
|
|
|
-- v_taakobjectstartjaar_d := NULL;
|
|
|
|
-- Nu kunnen we de tussentabel vullen
|
|
v_errormsg :=
|
|
'Fout bij toevoegen regel aan tabel '
|
|
|| v_objectomschrijving;
|
|
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
|
|
INSERT INTO tmp_imp_mjb (locatiecode,
|
|
objectomschrijving ,
|
|
objectaanteh,
|
|
objectaantal,
|
|
taakcategorie,
|
|
taakomschrijving,
|
|
taakopmerking,
|
|
taakgroep,
|
|
taakprioriteit,
|
|
taakobjectpercentage,
|
|
taakobjectopmerking,
|
|
taakobjectperiode,
|
|
taakobjectstartjaar,
|
|
taakobjecteindjaar,
|
|
taakobjectmateriaal,
|
|
taakobjecteenheid,
|
|
taakdienst,
|
|
extra_veld4, -- Gebruiken voor taakgeschiedenis
|
|
extra_veld5, -- Gebruiken voor taakomschrijving_nieuw
|
|
deel_key,
|
|
discipline_key,
|
|
ismjob,
|
|
ins_srtcontrole_key,
|
|
ins_srtcontroledl_xcp_key,
|
|
ins_srtdeel_key)
|
|
VALUES (v_locatiecode,
|
|
v_objectomschrijving,
|
|
v_objectaanteh,
|
|
v_objectaantal,
|
|
v_taakcategorie,
|
|
v_taakomschrijving,
|
|
v_taakopmerking,
|
|
v_taakgroep,
|
|
v_taakprioriteit,
|
|
v_taakobjectpercentage,
|
|
v_taakobjectopmerking,
|
|
v_taakobjectperiode,
|
|
v_taakobjectstartjaar_d,
|
|
v_taakobjecteindjaar_d,
|
|
v_taakobjectmateriaal,
|
|
v_taakobjecteenheid,
|
|
v_taakdienst,
|
|
v_taak_geschiedenis,
|
|
v_taakomschrijving_nieuw,
|
|
v_deel_key,
|
|
v_discipline_key,
|
|
v_ismjob,
|
|
v_srtcontrole_key,
|
|
v_ins_srtcontroledl_xcp_key,
|
|
v_ins_srtdeel_key);
|
|
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
v_hint := v_errormsg;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint);
|
|
END;
|
|
END LOOP;
|
|
|
|
-- Aantallen tellen voor logging
|
|
v_errormsg := 'Fout bij tellen aantallen voor logging ' ;
|
|
|
|
v_count_verwerk := 0 ; -- aantal te verwerken regels
|
|
v_count_n_taak := 0 ; -- aantal nieuw aan te maken basistaken
|
|
v_count_n_taakobject := 0 ; -- aantal nieuw aan te maken objecttaken
|
|
v_count_w_taak := 0 ; -- aantal bestaande (object)taken te wijzigen
|
|
|
|
SELECT count(*) INTO v_count_verwerk FROM tmp_imp_mjb ;
|
|
SELECT count(*) INTO v_count_n_taak FROM (SELECT DISTINCT(taakomschrijving) FROM tmp_imp_mjb WHERE ins_srtcontrole_key IS NULL) v ;
|
|
SELECT count(*) INTO v_count_n_taakobject FROM tmp_imp_mjb WHERE ins_srtcontroledl_xcp_key IS NULL ;
|
|
SELECT count(*) INTO v_count_w_taak FROM tmp_imp_mjb WHERE ins_srtcontrole_key IS NOT NULL AND ins_srtcontroledl_xcp_key IS NOT NULL ;
|
|
|
|
|
|
IF v_header_is_valid = 0
|
|
THEN
|
|
ROLLBACK;
|
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Ongeldig importbestand', 'Toelichting: Verkeerde header. Niet conform specs. ');
|
|
ELSE
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'IMPORT TAKEN: aantal te verwerken regels: ' || TO_CHAR (v_count_verwerk) || ' (van de ' || TO_CHAR (v_count_rec) || ' records in csv)'
|
|
|| CHR(13) || CHR(10)
|
|
|| 'Aantal nieuwe taken: ' || TO_CHAR (v_count_n_taak)
|
|
|| CHR(13) || CHR(10)
|
|
|| 'Aantal nieuwe objecttaken: ' || TO_CHAR (v_count_n_taakobject)
|
|
|| CHR(13) || CHR(10)
|
|
|| 'Aantal bestaande, te wijzigen (object)taken: ' || TO_CHAR (v_count_w_taak),
|
|
'');
|
|
END IF;
|
|
COMMIT;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
ROLLBACK;
|
|
oracle_err_num := SQLCODE;
|
|
v_hint := v_errormsg;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint);
|
|
END pcbo_import_insp_mjob;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pcbo_update_insp_mjob (p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c_n -- nieuwe taken en objecttaken aanmaken..
|
|
IS
|
|
SELECT i.*
|
|
FROM tmp_imp_mjb i
|
|
WHERE i.ins_srtcontrole_key IS NULL;
|
|
|
|
CURSOR c_no -- nieuwe objecttaken aanmaken..
|
|
IS
|
|
SELECT i.*
|
|
FROM tmp_imp_mjb i
|
|
WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NULL;
|
|
|
|
CURSOR c_m -- bestaande taak en/of objecttaak wijzigen
|
|
IS
|
|
SELECT i.*
|
|
FROM tmp_imp_mjb i
|
|
WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NOT NULL;
|
|
|
|
v_errormsg VARCHAR2 (4000);
|
|
v_error_hint VARCHAR2 (4000);
|
|
oracle_err_mes VARCHAR2 (4000);
|
|
oracle_err_num VARCHAR2 (4000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
v_aanduiding_objecttaak VARCHAR2 (1000);
|
|
v_ongeldig NUMBER (1);
|
|
v_ins_srtcontrole_key NUMBER (10);
|
|
v_dienst_key NUMBER (10);
|
|
v_taak_al_aangemaakt NUMBER(10);
|
|
|
|
v_count_verwerk NUMBER := 0 ; -- aantal verwerkte records
|
|
v_count_n_taak NUMBER := 0 ; -- aantal nieuw aangemaakte basistaken
|
|
v_count_n_taakobject NUMBER := 0 ; -- aantal nieuw aangemaakte objecttaken
|
|
v_count_w_taak NUMBER := 0 ; -- aantal bestaande basistaken gewijzigd
|
|
v_count_w_taakobject NUMBER := 0 ; -- aantal bestaande object-taken gewijzigd
|
|
v_count_taak NUMBER := 0 ;
|
|
v_count_taakobject NUMBER := 0 ;
|
|
|
|
|
|
-- Velden
|
|
v_taakomschrijving VARCHAR2(1000);
|
|
v_ins_srtdeel_code VARCHAR2(10);
|
|
v_taakomschrijving_nieuw VARCHAR2(1000);
|
|
v_taakopmerking VARCHAR2(1000);
|
|
v_taakgroep VARCHAR2(1000);
|
|
v_taakdienst_key NUMBER(10);
|
|
v_taakdienst VARCHAR2(1000);
|
|
v_taakprioriteit NUMBER(3);
|
|
v_percentage NUMBER(3);
|
|
v_objecttaakopmerking VARCHAR2(1000);
|
|
v_eenheid NUMBER(3);
|
|
v_periode NUMBER(3);
|
|
v_startjaar DATE;
|
|
v_eindjaar DATE;
|
|
v_materiaalkosten NUMBER(10);
|
|
|
|
BEGIN
|
|
v_ongeldig := 0;
|
|
|
|
FOR rec IN c_n
|
|
LOOP
|
|
|
|
BEGIN
|
|
v_aanduiding :=
|
|
rec.objectomschrijving
|
|
|| ' / '
|
|
|| rec.taakcategorie
|
|
|| ' - '
|
|
|| rec.taakomschrijving;
|
|
|
|
-- Eenzelfde basistaak kan meerdere keren in CSV zitten.
|
|
-- Daarom gaan we in deze cursor eerst kijken of de basistaak er in deze LOOP al ingezet is.
|
|
-- Zo ja, dan kunnen we door naar de Objecttaak. Zo niet, dan gaan we eerst de basis
|
|
v_errormsg := 'Opzoeken basistaak ' || v_aanduiding;
|
|
v_taak_al_aangemaakt:=0;
|
|
|
|
SELECT count(*)
|
|
INTO v_taak_al_aangemaakt
|
|
FROM ins_srtcontrole
|
|
WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving;
|
|
|
|
-- Als basistaak al in loop was aangemaakt nog even de key erbij zoeken
|
|
IF v_taak_al_aangemaakt >0
|
|
THEN
|
|
|
|
SELECT max(ins_srtcontrole_key)
|
|
INTO v_ins_srtcontrole_key
|
|
FROM ins_srtcontrole
|
|
WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving;
|
|
|
|
END IF;
|
|
|
|
-- Basistaak aanmaken
|
|
IF v_taak_al_aangemaakt = 0
|
|
THEN
|
|
|
|
-- We gaan we eerst op zoek naar de dienst.
|
|
v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding;
|
|
v_dienst_key := NULL;
|
|
IF rec.taakdienst IS NOT NULL
|
|
THEN
|
|
BEGIN
|
|
SELECT prs_dienst_key
|
|
INTO v_dienst_key
|
|
FROM prs_dienst
|
|
WHERE UPPER(prs_dienst_omschrijving) = UPPER(SUBSTR(rec.taakdienst, 1,60));
|
|
EXCEPTION WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
|
VALUES (SUBSTR(rec.taakdienst,1,60))
|
|
RETURNING prs_dienst_key INTO v_dienst_key;
|
|
END;
|
|
END IF;
|
|
|
|
v_count_verwerk := v_count_verwerk + 1 ;
|
|
v_count_n_taak := v_count_n_taak +1 ;
|
|
|
|
v_errormsg := 'Aanmaken taak ' || v_aanduiding;
|
|
INSERT INTO ins_srtcontrole (
|
|
ins_srtinstallatie_key,
|
|
ins_srtcontrole_niveau,
|
|
ins_srtcontrole_omschrijving,
|
|
ctr_discipline_key,
|
|
ins_srtcontrole_info,
|
|
ins_srtcontrole_periode,
|
|
ins_srtcontrole_eenheid,
|
|
ins_srtcontrole_mode,
|
|
ins_srtcontrole_level,
|
|
ins_srtcontrole_opmerking,
|
|
prs_dienst_key)
|
|
VALUES (
|
|
rec.ins_srtdeel_key,
|
|
'S',
|
|
rec.taakomschrijving,
|
|
rec.discipline_key,
|
|
NULL,
|
|
0,
|
|
rec.taakobjecteenheid,
|
|
1,
|
|
COALESCE (rec.taakprioriteit, '0'),
|
|
rec.taakopmerking,
|
|
v_dienst_key)
|
|
RETURNING ins_srtcontrole_key
|
|
INTO v_ins_srtcontrole_key;
|
|
|
|
fac.trackaction('CTRSUP', v_ins_srtcontrole_key, 4, NULL, 'Periodieke taak toegevoegd - Via taakimport ');
|
|
|
|
END IF;
|
|
|
|
-- Nu kunnen we de objectaak aanmaken
|
|
v_count_n_taakobject := v_count_n_taakobject +1 ;
|
|
|
|
v_errormsg := 'Aanmaken taak object ' || v_aanduiding || ' ['
|
|
|| rec.deel_key || '|'
|
|
|| v_ins_srtcontrole_key || '|'
|
|
|| rec.taakobjectperiode || '|'
|
|
|| rec.taakobjecteenheid || '|'
|
|
|| fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) || '|'
|
|
|| ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) || '|'
|
|
|| rec.taakgroep || '|'
|
|
|| rec.taakobjectopmerking || ']';
|
|
|
|
INSERT INTO ins_srtcontroledl_xcp (
|
|
ins_deel_key,
|
|
ins_srtcontrole_key,
|
|
ins_srtcontroledl_xcp_periode,
|
|
ins_srtcontroledl_xcp_eenheid,
|
|
ins_srtcontroledl_xcp_materia,
|
|
ins_srtcontroledl_xcp_perc,
|
|
ins_srtcontroledl_xcp_groep,
|
|
ins_srtcontroledl_xcp_opmerk,
|
|
ins_srtcontroledl_xcp_startdat)
|
|
VALUES (
|
|
rec.deel_key,
|
|
v_ins_srtcontrole_key,
|
|
rec.taakobjectperiode,
|
|
rec.taakobjecteenheid,
|
|
fac.safe_to_number (
|
|
REPLACE (rec.taakobjectmateriaal, ',', '.')),
|
|
ROUND(fac.safe_to_number (
|
|
REPLACE (rec.taakobjectpercentage, ',', '.'))),
|
|
rec.taakgroep,
|
|
rec.taakobjectopmerking,
|
|
rec.taakobjectstartjaar
|
|
);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_error_hint := v_errormsg;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| 'ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_error_hint);
|
|
v_ongeldig := 1;
|
|
END;
|
|
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_no
|
|
LOOP
|
|
BEGIN
|
|
|
|
v_aanduiding :=
|
|
rec.objectomschrijving
|
|
|| ' / '
|
|
|| rec.taakcategorie
|
|
|| ' - '
|
|
|| rec.taakomschrijving;
|
|
|
|
-- We kunnen direct objectaak aanmaken
|
|
v_count_verwerk := v_count_verwerk + 1 ;
|
|
v_count_n_taakobject := v_count_n_taakobject +1 ;
|
|
|
|
v_errormsg := 'Aanmaken taak object ' || v_aanduiding || ' ['
|
|
|| rec.deel_key || '|'
|
|
|| rec.ins_srtcontrole_key || '|'
|
|
|| rec.taakobjectperiode || '|'
|
|
|| rec.taakobjecteenheid || '|'
|
|
|| fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) || '|'
|
|
|| ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) || '|'
|
|
|| rec.taakgroep || '|'
|
|
|| rec.taakobjectopmerking || ']';
|
|
INSERT INTO ins_srtcontroledl_xcp (
|
|
ins_deel_key,
|
|
ins_srtcontrole_key,
|
|
ins_srtcontroledl_xcp_periode,
|
|
ins_srtcontroledl_xcp_eenheid,
|
|
ins_srtcontroledl_xcp_materia,
|
|
ins_srtcontroledl_xcp_perc,
|
|
ins_srtcontroledl_xcp_groep,
|
|
ins_srtcontroledl_xcp_opmerk)
|
|
VALUES (
|
|
rec.deel_key,
|
|
rec.ins_srtcontrole_key,
|
|
rec.taakobjectperiode,
|
|
rec.taakobjecteenheid,
|
|
fac.safe_to_number (
|
|
REPLACE (rec.taakobjectmateriaal, ',', '.')),
|
|
ROUND(fac.safe_to_number (
|
|
REPLACE (rec.taakobjectpercentage, ',', '.'))),
|
|
rec.taakgroep,
|
|
rec.taakobjectopmerking);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_error_hint := v_errormsg;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| 'ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_error_hint);
|
|
v_ongeldig := 1;
|
|
END;
|
|
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_m
|
|
LOOP
|
|
BEGIN
|
|
v_count_verwerk := v_count_verwerk + 1 ;
|
|
|
|
v_aanduiding :=
|
|
rec.objectomschrijving
|
|
|| ' / '
|
|
|| rec.taakcategorie
|
|
|| ' - '
|
|
|| rec.taakomschrijving;
|
|
|
|
-- Basis-taak - Taakomschrijving
|
|
v_errormsg := 'Fout taakomschrijving wijzigen ';
|
|
v_taakomschrijving := '' ; -- huidige taakomschrijving
|
|
v_taakomschrijving_nieuw := '' ;
|
|
|
|
IF rec.extra_veld5 IS NOT NULL
|
|
THEN
|
|
|
|
-- Eerst de objectsrt-code ophalen en nieuwe taakomschrijving bepalen
|
|
SELECT ins_srtdeel_code_upper
|
|
INTO v_ins_srtdeel_code
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_key = rec.ins_srtdeel_key ;
|
|
|
|
v_taakomschrijving_nieuw := SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || rec.extra_veld5), 1, 60) ;
|
|
|
|
-- Huidige omschrijving ophalen
|
|
SELECT ins_srtcontrole_omschrijving
|
|
INTO v_taakomschrijving
|
|
FROM ins_srtcontrole
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
|
|
IF v_taakomschrijving <> v_taakomschrijving_nieuw
|
|
THEN
|
|
|
|
UPDATE ins_srtcontrole
|
|
SET ins_srtcontrole_omschrijving = v_taakomschrijving_nieuw
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
v_count_taak:= 1 ;
|
|
|
|
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Taakomschrijving: ' || v_taakomschrijving || '-->' || v_taakomschrijving_nieuw);
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
-- Basis-taak - Taakopmerking
|
|
v_errormsg := 'Fout taakopmerking wijzigen ';
|
|
|
|
SELECT ins_srtcontrole_opmerking
|
|
INTO v_taakopmerking
|
|
FROM ins_srtcontrole
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
|
|
IF v_taakopmerking IS NULL THEN v_taakopmerking := '<leeg>' ;
|
|
END IF;
|
|
|
|
IF v_taakopmerking <> rec.taakopmerking AND rec.taakopmerking IS NOT NULL
|
|
THEN
|
|
|
|
UPDATE ins_srtcontrole
|
|
SET ins_srtcontrole_opmerking = rec.taakopmerking
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
v_count_taak:= 1 ;
|
|
|
|
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Taakopmerking: ' || v_taakopmerking || '-->' || rec.taakopmerking);
|
|
|
|
END IF;
|
|
|
|
-- Basis-taak - Taakprioriteit
|
|
v_errormsg := 'Fout prioriteit wijzigen ';
|
|
|
|
SELECT ins_srtcontrole_level
|
|
INTO v_taakprioriteit
|
|
FROM ins_srtcontrole
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
|
|
IF rec.taakprioriteit IS NOT NULL AND v_taakprioriteit <> fac.safe_to_number(rec.taakprioriteit)
|
|
THEN
|
|
|
|
UPDATE ins_srtcontrole
|
|
SET ins_srtcontrole_level = fac.safe_to_number(rec.taakprioriteit)
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
v_count_taak:= 1 ;
|
|
|
|
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Prioriteit: ' || v_taakprioriteit || '-->' || rec.taakprioriteit);
|
|
|
|
END IF;
|
|
|
|
-- Basis-taak - Dienst
|
|
v_errormsg := 'Fout dienst wijzigen ' || v_aanduiding;
|
|
v_taakdienst_key := NULL ;
|
|
v_taakdienst := '<leeg>' ;
|
|
|
|
-- Eerst huidige dienstkey en omschrijving ophalen
|
|
BEGIN
|
|
|
|
SELECT max(t.prs_dienst_key), max(d.prs_dienst_omschrijving)
|
|
INTO v_taakdienst_key, v_taakdienst
|
|
FROM ins_srtcontrole t, prs_dienst d
|
|
WHERE t.ins_srtcontrole_key = rec.ins_srtcontrole_key AND t.prs_dienst_key = d.prs_dienst_key AND t.prs_dienst_key IS NOT NULL ;
|
|
|
|
IF v_taakdienst IS NULL THEN v_taakdienst := '<leeg>' ; END IF;
|
|
IF v_taakdienst_key IS NULL THEN v_taakdienst_key := -1 ; END IF;
|
|
|
|
END;
|
|
|
|
-- Dan gaan we kijken of de dienst meegegeven in csv al bestaat
|
|
v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding;
|
|
v_dienst_key := NULL;
|
|
IF rec.taakdienst IS NOT NULL
|
|
THEN
|
|
BEGIN
|
|
SELECT prs_dienst_key
|
|
INTO v_dienst_key
|
|
FROM prs_dienst
|
|
WHERE UPPER(prs_dienst_omschrijving) = UPPER(SUBSTR(rec.taakdienst, 1,60));
|
|
EXCEPTION WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
|
VALUES (SUBSTR(rec.taakdienst,1,60))
|
|
RETURNING prs_dienst_key INTO v_dienst_key;
|
|
END;
|
|
END IF;
|
|
|
|
IF v_taakdienst_key <> v_dienst_key AND rec.taakdienst IS NOT NULL
|
|
THEN
|
|
|
|
UPDATE ins_srtcontrole
|
|
SET prs_dienst_key = v_dienst_key
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
v_count_taak:= 1 ;
|
|
|
|
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd taakdienst: ' || v_taakdienst || '-->' || rec.taakdienst);
|
|
|
|
END IF;
|
|
|
|
IF v_count_taak = 1 THEN
|
|
v_count_w_taak := v_count_w_taak +1 ;
|
|
END IF;
|
|
|
|
-- Gaan nu de object-taken aanpassen
|
|
v_aanduiding_objecttaak := rec.taakcategorie || ' - ' || v_ins_srtdeel_code || rec.taakomschrijving || CHR(13) || CHR(10) ;
|
|
|
|
-- Object-taak - Percentage
|
|
v_errormsg := 'Fout percentage wijzigen ';
|
|
|
|
SELECT COALESCE(ins_srtcontroledl_xcp_perc, 0)
|
|
INTO v_percentage
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
|
|
IF rec.taakobjectpercentage IS NOT NULL AND v_percentage <> rec.taakobjectpercentage
|
|
THEN
|
|
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_perc = ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.')))
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
v_count_taakobject:= 1 ;
|
|
|
|
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Percentage: (' || v_percentage || ') --> ' || rec.taakobjectpercentage );
|
|
|
|
END IF;
|
|
|
|
-- Object-taak - Opmerking
|
|
v_errormsg := 'Fout opmerking objecttaak wijzigen ';
|
|
|
|
SELECT ins_srtcontroledl_xcp_opmerk
|
|
INTO v_objecttaakopmerking
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
|
|
IF v_objecttaakopmerking IS NULL THEN v_objecttaakopmerking := '<leeg>' ;
|
|
END IF;
|
|
|
|
IF rec.taakobjectopmerking IS NOT NULL AND v_objecttaakopmerking <> rec.taakobjectopmerking
|
|
THEN
|
|
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_opmerk = rec.taakobjectopmerking
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
v_count_taakobject:= 1 ;
|
|
|
|
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Taakopmerking: (' || v_objecttaakopmerking || ') --> ' || rec.taakobjectopmerking );
|
|
|
|
END IF;
|
|
|
|
-- Object-taak - Eenheid
|
|
v_errormsg := 'Fout eenheid wijzigen ';
|
|
|
|
SELECT COALESCE(ins_srtcontroledl_xcp_eenheid,0)
|
|
INTO v_eenheid
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
|
|
IF rec.taakobjecteenheid IS NOT NULL AND fac.safe_to_number(rec.taakobjecteenheid) <> v_eenheid AND rec.ismjob = 0
|
|
THEN
|
|
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_eenheid = fac.safe_to_number(rec.taakobjecteenheid)
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
v_count_taakobject:= 1 ;
|
|
|
|
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Eenheid: (' || v_eenheid || ') --> ' || rec.taakobjecteenheid );
|
|
|
|
END IF;
|
|
|
|
-- Object-taak - Periode
|
|
v_errormsg := 'Fout periode wijzigen ';
|
|
|
|
SELECT COALESCE(ins_srtcontroledl_xcp_periode,0)
|
|
INTO v_periode
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
|
|
IF rec.taakobjectperiode IS NOT NULL AND fac.safe_to_number(rec.taakobjectperiode) <> v_periode
|
|
THEN
|
|
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_periode = fac.safe_to_number(rec.taakobjectperiode)
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
v_count_taakobject:= 1 ;
|
|
|
|
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Periode: (' || v_periode || ') --> ' || rec.taakobjectperiode );
|
|
|
|
END IF;
|
|
|
|
-- Object-taak - Taakgroep
|
|
v_errormsg := 'Fout taakgroep wijzigen ';
|
|
|
|
SELECT ins_srtcontroledl_xcp_groep
|
|
INTO v_taakgroep
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
|
|
IF v_taakgroep IS NULL THEN v_taakgroep := '<leeg>' ;
|
|
END IF;
|
|
|
|
IF v_taakgroep <> rec.taakgroep AND rec.taakgroep IS NOT NULL
|
|
THEN
|
|
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_groep = rec.taakgroep
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
v_count_taakobject:= 1 ;
|
|
|
|
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Taakgroep: (' || v_taakgroep || ') --> ' || rec.taakgroep );
|
|
|
|
END IF;
|
|
|
|
-- Object-taak - Eindjaar
|
|
v_errormsg := 'Fout eindjaar wijzigen ';
|
|
|
|
SELECT ins_srtcontroledl_xcp_eind
|
|
INTO v_eindjaar
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
|
|
-- IF v_eindjaar IS NULL THEN v_eindjaar := TO_DATE(01-01-1900, 'DD-MM-YYYY'); END IF;
|
|
|
|
IF (v_eindjaar IS NULL and rec.taakobjecteindjaar IS NOT NULL) OR (v_eindjaar IS NOT NULL AND rec.taakobjecteindjaar IS NOT NULL AND v_eindjaar <> rec.taakobjecteindjaar)
|
|
THEN
|
|
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_eind = rec.taakobjecteindjaar
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
v_count_taakobject:= 1 ;
|
|
|
|
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Eindjaar: (' || v_eindjaar || ') --> ' || rec.taakobjecteindjaar );
|
|
|
|
END IF;
|
|
|
|
-- Object-taak - Kosten
|
|
v_errormsg := 'Fout kosten wijzigen ';
|
|
|
|
SELECT COALESCE(max(ins_srtcontroledl_xcp_materia),0)
|
|
INTO v_materiaalkosten
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
|
|
IF v_materiaalkosten <> fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) AND rec.taakobjectmateriaal IS NOT NULL
|
|
THEN
|
|
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_materia = fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.'))
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
|
v_count_taakobject:= 1 ;
|
|
|
|
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Kosten: (' || v_materiaalkosten || ') --> ' || rec.taakobjectmateriaal );
|
|
|
|
END IF;
|
|
|
|
IF v_count_taakobject = 1 THEN
|
|
v_count_w_taakobject := v_count_w_taakobject + 1 ;
|
|
END IF;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_error_hint := v_errormsg;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| 'ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_error_hint);
|
|
v_ongeldig := 1;
|
|
END;
|
|
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
|
END LOOP;
|
|
|
|
v_ongeldig := 0;
|
|
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
COMMIT;
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'IMPORT TAKEN: aantal verwerkte regels: ' || TO_CHAR (v_count_verwerk)
|
|
|| CHR(13) || CHR(10)
|
|
|| 'Aantal nieuwe taken ingelezen: ' || TO_CHAR (v_count_n_taak)
|
|
|| CHR(13) || CHR(10)
|
|
|| 'Aantal nieuwe objecttaken ingelezen: ' || TO_CHAR (v_count_n_taakobject)
|
|
|| CHR(13) || CHR(10)
|
|
|| 'Aantal bestaande basistaken gewijzigd: ' || TO_CHAR (v_count_w_taak)
|
|
|| CHR(13) || CHR(10)
|
|
|| 'Aantal bestaande objecttaken gewijzigd: ' || TO_CHAR (v_count_w_taakobject),
|
|
'');
|
|
|
|
ELSE
|
|
ROLLBACK;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
/
|
|
|
|
----------------------------------------------------------------------------
|
|
------------------ EINDE MBJOB IMPORT --------------------------------------
|
|
----------------------------------------------------------------------------
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|