PLAT#52406: MJOB: Import van operationele resultaten
svn path=/Customer/trunk/; revision=37983
This commit is contained in:
344
PLAT/plat.sql
344
PLAT/plat.sql
@@ -2399,6 +2399,350 @@ END plat_update_srtdeel_mlddisc;
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
-- PLAT#52406: MJOB: Import van operationele resultaten (door MJOB-er zelf te doen?)
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE plat_import_mjob_results (p_import_key IN NUMBER)
|
||||
AS
|
||||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||||
v_newline VARCHAR2 (1000); -- Input line
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
header_is_valid NUMBER := 0;
|
||||
v_ongeldig NUMBER (1);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count_import NUMBER (10);
|
||||
v_count NUMBER;
|
||||
|
||||
-- De importvelden:
|
||||
v_ins_deelsrtcontrole_key VARCHAR2(1000);
|
||||
v_uitgevoerd VARCHAR2(1000);
|
||||
v_planjaar VARCHAR2(1000);
|
||||
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
BEGIN
|
||||
|
||||
v_errorhint := 'plat_import_mjob_results';
|
||||
|
||||
v_count_tot := 0;
|
||||
v_count_import := 0;
|
||||
|
||||
|
||||
FOR rec1 IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
v_newline := rec1.fac_imp_file_line;
|
||||
v_aanduiding := '';
|
||||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||||
v_ongeldig := 0;
|
||||
-- Lees alle veldwaarden
|
||||
|
||||
-- 01 - v_ins_deelsrtcontrole_key
|
||||
v_aanduiding := 'Probleem bij v_ins_deelsrtcontrole_key: ';
|
||||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_ins_deelsrtcontrole_key);
|
||||
v_ins_deelsrtcontrole_key := TRIM(v_ins_deelsrtcontrole_key);
|
||||
|
||||
-- 02 - v_uitgevoerd
|
||||
v_aanduiding := 'Probleem bij v_uitgevoerd: ';
|
||||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_uitgevoerd);
|
||||
v_uitgevoerd := TRIM(v_uitgevoerd);
|
||||
|
||||
-- 03 - v_planjaar
|
||||
v_aanduiding := 'Probleem bij v_planjaar: ';
|
||||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_planjaar);
|
||||
v_planjaar := TRIM(v_planjaar);
|
||||
|
||||
|
||||
v_aanduiding :=
|
||||
'['
|
||||
|| v_ins_deelsrtcontrole_key
|
||||
|| '-'
|
||||
|| v_uitgevoerd
|
||||
|| '-'
|
||||
|| v_planjaar
|
||||
|| '] ';
|
||||
|
||||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||||
-- de juiste kolomkop. Ik controleer daarbij de volgende kolommen:
|
||||
-- 1. Id
|
||||
-- 2. Uitgevoerd
|
||||
-- 3. Planjaar
|
||||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
IF UPPER (v_ins_deelsrtcontrole_key) = 'ID' AND
|
||||
UPPER (v_uitgevoerd) = 'UITGEVOERD' AND
|
||||
UPPER (v_planjaar) = 'PLANJAAR'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
ELSE
|
||||
v_count_tot := v_count_tot + 1;
|
||||
|
||||
v_errorhint := 'Ongeldige ID (moet getal van maximaal 10 cijfers zijn)';
|
||||
-- ID moet vul gevuld zijn, en ook een number (getal) zijn, van maximaal 10 cijfers
|
||||
IF (v_ins_deelsrtcontrole_key IS NULL) OR (fac.safe_to_number(v_ins_deelsrtcontrole_key) IS NULL) OR (LENGTH (v_ins_deelsrtcontrole_key) > 10)
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding, v_errorhint || ' - Regel wordt overgeslagen');
|
||||
v_ongeldig := 1;
|
||||
END IF;
|
||||
--
|
||||
v_errorhint := 'Ongeldige kolom Uitgevoerd (moet J (=Ja) of N (=Nee) zijn)';
|
||||
-- Uitgevoerd moet J of N zijn (Leeg betekent onbekend, regel wordt dan overgeslagen)
|
||||
IF (v_uitgevoerd IS NULL) OR (v_uitgevoerd <> 'J') AND (v_uitgevoerd <> 'N')
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding, v_errorhint || ' - Regel wordt overgeslagen');
|
||||
v_ongeldig := 1;
|
||||
END IF;
|
||||
--
|
||||
v_errorhint := 'Ongeldige kolom Planjaar (moet leeg of geldige jaartal van 4 cijfers in de toekomst zijn, b.v. 2030)';
|
||||
-- Planjaar of leeg of jaartal (jjjj) in de toekomst zijn
|
||||
IF (v_planjaar IS NOT NULL) AND ((LENGTH (v_planjaar) <> 4) OR (fac.safe_to_date('1-1-' || v_planjaar, 'dd-mm-yyyy') IS NULL) OR (fac.safe_to_date('1-1-' || v_planjaar, 'dd-mm-yyyy') < SYSDATE))
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding, v_errorhint || ' - Regel wordt overgeslagen');
|
||||
v_ongeldig := 1;
|
||||
END IF;
|
||||
--
|
||||
|
||||
IF (v_ongeldig = 0)
|
||||
THEN
|
||||
BEGIN
|
||||
v_errorhint :=
|
||||
'Fout bij toevoegen regel aan importtabel plat_imp_mjob_results';
|
||||
IF v_planjaar IS NULL
|
||||
THEN
|
||||
INSERT INTO plat_imp_mjob_results
|
||||
(
|
||||
fac_import_key,
|
||||
ins_deelsrtcontrole_key,
|
||||
uitgevoerd
|
||||
)
|
||||
SELECT p_import_key, v_ins_deelsrtcontrole_key, DECODE(v_uitgevoerd,'J',1,'N',0,0)FROM DUAL;
|
||||
ELSE
|
||||
INSERT INTO plat_imp_mjob_results
|
||||
(
|
||||
fac_import_key,
|
||||
ins_deelsrtcontrole_key,
|
||||
uitgevoerd,
|
||||
planjaar
|
||||
)
|
||||
SELECT p_import_key, v_ins_deelsrtcontrole_key, DECODE(v_uitgevoerd,'J',1,'N',0,0), fac.safe_to_date('1-1-' || v_planjaar, 'dd-mm-yyyy') FROM DUAL;
|
||||
END IF;
|
||||
|
||||
v_count_import := v_count_import + 1;
|
||||
COMMIT;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
v_errorhint
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog
|
||||
(p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Ingelezen regel kan niet worden weggeschreven!'
|
||||
);
|
||||
COMMIT;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
|
||||
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
'Ongeldig importbestand',
|
||||
'Geen header of header niet volgens specificatie! Header kolommen: 1. Id, 2. Uitgevoerd, 3. Planjaar'
|
||||
);
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key,
|
||||
'S',
|
||||
'IMPORT MJOB_RESULTS: aantal ingelezen regels: '
|
||||
|| TO_CHAR (v_count_tot)
|
||||
|| ' / aantal geldige regels: '
|
||||
|| TO_CHAR (v_count_import)
|
||||
,
|
||||
''
|
||||
);
|
||||
END IF;
|
||||
|
||||
|
||||
COMMIT;
|
||||
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||||
END plat_import_mjob_results;
|
||||
/
|
||||
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE plat_update_mjob_results (
|
||||
p_import_key IN NUMBER
|
||||
)
|
||||
IS
|
||||
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT *
|
||||
FROM plat_imp_mjob_results
|
||||
WHERE fac_import_key = p_import_key;
|
||||
|
||||
|
||||
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count_import NUMBER (10);
|
||||
|
||||
v_ins_deelsrtcontrole_key NUMBER(10);
|
||||
v_uitgevoerd NUMBER(10);
|
||||
v_planjaar DATE;
|
||||
|
||||
BEGIN
|
||||
|
||||
v_count_tot := 0;
|
||||
v_count_import := 0;
|
||||
|
||||
FOR rec IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
v_count_tot := v_count_tot + 1;
|
||||
v_aanduiding :=
|
||||
'['
|
||||
|| rec.ins_deelsrtcontrole_key
|
||||
|| '-'
|
||||
|| rec.uitgevoerd
|
||||
|| '-'
|
||||
|| rec.planjaar
|
||||
|| '] ';
|
||||
|
||||
v_errorhint := 'ID ins_deelsrtcontrole_key niet gevonden in ins_deelsrtcontrole (is ongeldig), regel wordt overgeslagen';
|
||||
|
||||
SELECT ins_deelsrtcontrole_key
|
||||
INTO v_ins_deelsrtcontrole_key
|
||||
FROM ins_deelsrtcontrole
|
||||
WHERE ins_deelsrtcontrole_key = rec.ins_deelsrtcontrole_key
|
||||
AND ins_scenario_key = 1;
|
||||
v_errorhint := 'ID ins_deelsrtcontrole_key is niet geaccordeerd cq. opgenomen in de begroting, regel wordt overgeslagen';
|
||||
SELECT ins_deelsrtcontrole_key
|
||||
INTO v_ins_deelsrtcontrole_key
|
||||
FROM ins_deelsrtcontrole
|
||||
WHERE ins_deelsrtcontrole_key = rec.ins_deelsrtcontrole_key
|
||||
AND ins_scenario_key = 1
|
||||
AND ins_deelsrtcontrole_status = 2;
|
||||
|
||||
IF rec.uitgevoerd = 1
|
||||
THEN
|
||||
-- ins_controlemode_key 1 = Gereed
|
||||
v_errorhint := 'Update ins_deelsrtcontrole niet gelukt, regel wordt overgeslagen';
|
||||
UPDATE ins_deelsrtcontrole
|
||||
SET ins_deelsrtcontrole_status = 6,
|
||||
ins_deelsrtcontrole_datum = fac.safe_to_date('1-1-' || to_char(SYSDATE,'yyyy'),'dd-mm-yyyy'),
|
||||
ins_controlemode_key = 1
|
||||
WHERE ins_deelsrtcontrole_key = rec.ins_deelsrtcontrole_key;
|
||||
-- Netjes uitgevoerd volgens begroting, volgende cyclus wordt vanzelf berekend obv ins_deelsrtcontrole_datum...
|
||||
ELSE
|
||||
-- ins_controlemode_key 2 = Niet uitgevoerd
|
||||
v_errorhint := 'Update ins_deelsrtcontrole niet gelukt, regel wordt overgeslagen';
|
||||
UPDATE ins_deelsrtcontrole
|
||||
SET ins_deelsrtcontrole_status = 6,
|
||||
ins_deelsrtcontrole_datum = fac.safe_to_date('1-1-' || to_char(SYSDATE,'yyyy'),'dd-mm-yyyy'),
|
||||
ins_controlemode_key = 2
|
||||
WHERE ins_deelsrtcontrole_key = rec.ins_deelsrtcontrole_key;
|
||||
-- Niet uitgevoerd volgens begroting, volgende cyclus is komend jaar of indien planjaar is gevuld dan het planjaar (overrule)...
|
||||
-- Dus een nieuw plan-record ins_deelsrtcontrole, met exact dezelfde gegevens
|
||||
|
||||
v_errorhint := 'Insert ins_deelsrtcontrole_key niet gelukt, regel wordt overgeslagen';
|
||||
INSERT INTO ins_deelsrtcontrole (ins_deel_key, ins_srtcontrole_key, ins_deelsrtcontrole_plandatum, ins_deelsrtcontrole_datum_org, ins_deelsrtcontrole_status, prs_perslid_key, ins_scenario_key)
|
||||
SELECT ins_deel_key, ins_srtcontrole_key, DECODE(rec.planjaar, NULL, fac.safe_to_date('1-1-' || (to_char(SYSDATE,'yyyy') + 1),'dd-mm-yyyy'), rec.planjaar), DECODE(rec.planjaar, NULL, fac.safe_to_date('1-1-' || (to_char(SYSDATE,'yyyy') + 1),'dd-mm-yyyy'), rec.planjaar), 0, prs_perslid_key, 1
|
||||
FROM ins_deelsrtcontrole
|
||||
WHERE ins_deelsrtcontrole_key = rec.ins_deelsrtcontrole_key;
|
||||
END IF;
|
||||
v_count_import := v_count_import + 1;
|
||||
COMMIT;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
'OTHERS (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
v_errorhint
|
||||
);
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
fac.imp_writelog (p_import_key,
|
||||
'S',
|
||||
'UPDATE MJOB_RESULTS: aantal ingelezen regels: '
|
||||
|| TO_CHAR (v_count_tot)
|
||||
|| ' / aantal geldige regels: '
|
||||
|| TO_CHAR (v_count_import)
|
||||
,
|
||||
''
|
||||
);
|
||||
|
||||
|
||||
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.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
v_errorhint
|
||||
);
|
||||
COMMIT;
|
||||
END plat_update_mjob_results;
|
||||
/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------ payload end ------
|
||||
|
||||
|
||||
@@ -266,6 +266,20 @@ WHERE ins_discipline_module = 'CTR'
|
||||
AND ins_discipline_omschrijving <> 'Meerjaren Onderhoud'
|
||||
AND ins_discipline_verwijder IS NULL;
|
||||
|
||||
-- Sequence ins_s_ins_controlemode_key begint al met 10 (Facilitor INI script, dus 1 en 2 zijn mooi vrij).
|
||||
INSERT INTO ins_controlemode (ins_controlemode_key, ins_controlemode_oms, ins_controlemode_success, ins_srtcontrole_type)
|
||||
SELECT 1, 'Gereed', 1, ins_discipline_key FROM ins_tab_discipline
|
||||
WHERE ins_discipline_module = 'CTR'
|
||||
AND ins_discipline_omschrijving = 'Meerjaren Onderhoud'
|
||||
AND ins_discipline_verwijder IS NULL;
|
||||
|
||||
INSERT INTO ins_controlemode (ins_controlemode_key, ins_controlemode_oms, ins_controlemode_success, ins_srtcontrole_type)
|
||||
SELECT 2, 'Niet uitgevoerd', NULL, ins_discipline_key FROM ins_tab_discipline
|
||||
WHERE ins_discipline_module = 'CTR'
|
||||
AND ins_discipline_omschrijving = 'Meerjaren Onderhoud'
|
||||
AND ins_discipline_verwijder IS NULL;
|
||||
|
||||
|
||||
|
||||
--Autorisatiegroep _default (fac_groep_key = 1) krijgt wat standaard rechten, w.o. PROFIL
|
||||
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key,
|
||||
@@ -370,6 +384,20 @@ SELECT 'SRTDEEL_MLDDISC', 'Aanvullen van combinaties objectsoorten x standaard m
|
||||
FROM fac_functie
|
||||
WHERE fac_functie_code = 'WEB_PRSSYS';
|
||||
|
||||
-- PLAT#52406: MJOB: Import van operationele resultaten (door MJOB-er zelf te doen?)
|
||||
CREATE TABLE plat_imp_mjob_results
|
||||
(
|
||||
fac_import_key NUMBER(10),
|
||||
ins_deelsrtcontrole_key NUMBER(10),
|
||||
uitgevoerd NUMBER(10),
|
||||
planjaar DATE
|
||||
);
|
||||
|
||||
INSERT INTO fac_import_app (fac_import_app_code, fac_import_app_oms, fac_functie_key, fac_import_app_charset, fac_import_app_prefix)
|
||||
SELECT 'MJOB_RESULTS', 'Verwerken van de operationele resultaten in Plato', fac_functie_key, 'UTF-8', 'PLAT'
|
||||
FROM fac_functie
|
||||
WHERE fac_functie_code = 'WEB_CTRUSE';
|
||||
|
||||
|
||||
COMMIT;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user