From 8f64a5b0761b19efcd3cc01ac29b1544249c3910 Mon Sep 17 00:00:00 2001 From: Robin Stoker Date: Fri, 17 Nov 2017 12:25:04 +0000 Subject: [PATCH] CWTD#38793 -- Aanpassing personen import svn path=/Customer/trunk/; revision=36037 --- CWTD/cwtd.sql | 123 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 78 insertions(+), 45 deletions(-) diff --git a/CWTD/cwtd.sql b/CWTD/cwtd.sql index ea7a720d3..d00f2e516 100644 --- a/CWTD/cwtd.sql +++ b/CWTD/cwtd.sql @@ -5,7 +5,6 @@ DEFINE thisfile = 'CWTD.SQL' DEFINE dbuser = '^CWTD' -DEFINE custid = 'CWTD' SET ECHO ON SET DEFINE ON @@ -46,16 +45,16 @@ AS -- De importvelden v_afdeling_naam VARCHAR2 (1000); - v_afdeling_omschr VARCHAR2 (1000); + v_afdeling_omschrijving VARCHAR2 (1000); v_perslid_naam VARCHAR2 (1000); - v_perslid_tussenvoegsel VARCHAR2 (1000); - v_perslid_partn_tussen VARCHAR2 (1000); - v_perslid_partn_naam VARCHAR2 (1000); - v_perslid_voorletters VARCHAR2 (1000); + -- v_perslid_tussenvoegsel VARCHAR2 (1000); + -- v_perslid_partn_tussen VARCHAR2 (1000); + -- v_perslid_partn_naam VARCHAR2 (1000); + -- v_perslid_voorletters VARCHAR2 (1000); v_perslid_voornaam VARCHAR2 (1000); - v_perslid_fullname VARCHAR2 (1000); + -- v_perslid_fullname VARCHAR2 (1000); v_perslid_telefoonnr VARCHAR2 (1000); - v_perslid_mobiel VARCHAR2 (1000); + -- v_perslid_mobiel VARCHAR2 (1000); v_perslid_oslogin VARCHAR2 (1000); v_perslid_email VARCHAR2 (1000); v_srtperslid_omschrijving VARCHAR2 (1000); @@ -69,8 +68,15 @@ AS v_dummy VARCHAR2 (1000); header_found BOOLEAN; v_controle_res VARCHAR2(30); - - + v_old_persnr VARCHAR2 (30); + + CURSOR c + IS + SELECT fac_usrdata_omschr, prs_perslid_nr + FROM cwtd_imp_persoon cip, fac_usrdata u + WHERE UPPER(cip.prs_perslid_naam) LIKE UPPER(u.fac_usrdata_omschr) || ' ' || '%' + AND fac_usrtab_key = 81 + ORDER BY cip.prs_perslid_nr, LENGTH (fac_usrdata_omschr) DESC; -- SUBFUNCTION FUNCTION get_imp_value (p_value IN VARCHAR2, p_length IN NUMBER) RETURN VARCHAR2 IS @@ -101,7 +107,7 @@ BEGIN header_found := FALSE; v_fielddelimitor := ';'; v_errormsg := ''; - + v_old_persnr := 'QueQeLeQue'; v_controle_res := 'OK'; -- Hier kan een controle ingebouwd worden ... IF (v_controle_res IS NULL) THEN @@ -125,7 +131,7 @@ BEGIN fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_voornaam); -- First Name fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_naam); -- Last Name fac.imp_getfield (v_newline, v_fielddelimitor, v_srtperslid_omschrijving); -- Job Name - fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_omschr); -- Department Name + fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_omschrijving); -- Department Name fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_omschrijving); -- Location Name fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_naam); -- Cost Center Numnber fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_email); -- Email Address @@ -142,7 +148,7 @@ BEGIN v_perslid_voornaam = 'First Name' AND v_perslid_naam = 'Last Name' AND v_srtperslid_omschrijving = 'Job Name' AND - v_afdeling_omschr = 'Department Name' AND + v_afdeling_omschrijving = 'Department Name' AND v_locatie_omschrijving = 'Location Name' AND v_afdeling_naam = 'Cost Center Numnber' AND v_perslid_email = 'Email Address' AND @@ -168,16 +174,18 @@ BEGIN v_perslid_nr := get_imp_value(v_perslid_nr,16); v_perslid_naam := get_imp_value(v_perslid_naam,30); v_perslid_voornaam := get_imp_value(v_perslid_voornaam,30); - v_perslid_tussenvoegsel := get_imp_value(v_perslid_tussenvoegsel,15); - v_perslid_partn_naam := get_imp_value(v_perslid_partn_naam,30); - v_perslid_partn_tussen := get_imp_value(v_perslid_partn_tussen,15); - v_perslid_fullname := get_imp_value(v_perslid_fullname,60); + -- v_perslid_tussenvoegsel := get_imp_value(v_perslid_tussenvoegsel,15); + v_perslid_geslacht := get_imp_value(v_perslid_geslacht, 10); + -- v_perslid_partn_naam := get_imp_value(v_perslid_partn_naam,30); + -- v_perslid_partn_tussen := get_imp_value(v_perslid_partn_tussen,15); + -- v_perslid_fullname := get_imp_value(v_perslid_fullname,60); v_perslid_oslogin := get_imp_value(v_perslid_oslogin,30); v_perslid_email := get_imp_value(v_perslid_email,200); v_afdeling_naam := get_imp_value(v_afdeling_naam,10); - v_afdeling_omschr := get_imp_value(v_afdeling_omschr,60); + v_afdeling_omschrijving := get_imp_value(v_afdeling_omschrijving,60); v_locatie_omschrijving := get_imp_value(v_locatie_omschrijving,30); v_srtperslid_omschrijving := get_imp_value(v_srtperslid_omschrijving,30); + v_perslid_telefoonnr := get_imp_value(v_perslid_telefoonnr, 30); -- Velden met een waarde '' zijn leeg ivm privacy overwegingen INSERT INTO cwtd_imp_persoon @@ -185,14 +193,14 @@ BEGIN ,prs_perslid_naam ,prs_perslid_voornaam ,prs_perslid_geslacht - ,prs_perslid_partn_tussen - ,prs_perslid_partn_naam - ,prs_perslid_tussenvoegsel - ,prs_perslid_voorletters - ,prs_perslid_fullname + --,prs_perslid_partn_tussen + --,prs_perslid_partn_naam + --,prs_perslid_tussenvoegsel + --,prs_perslid_voorletters + --,prs_perslid_fullname ,prs_perslid_telefoonnr - ,prs_perslid_mobiel - ,prs_perslid_oslogin + -- ,prs_perslid_mobiel + -- ,prs_perslid_oslogin ,prs_perslid_email ,prs_srtperslid_omschrijving ,prs_afdeling_naam @@ -205,19 +213,19 @@ BEGIN VALUES(v_perslid_nr ,v_perslid_naam ,v_perslid_voornaam - ,DECODE (v_perslid_geslacht, 'Male', 1, 0) - ,v_perslid_partn_tussen - ,v_perslid_partn_naam - ,v_perslid_tussenvoegsel - ,v_perslid_voorletters - ,v_perslid_fullname + ,DECODE (v_perslid_geslacht, 'Male', 1, 'Female', 0, NULL) + --,v_perslid_partn_tussen + -- ,v_perslid_partn_naam + -- ,v_perslid_tussenvoegsel + -- ,v_perslid_voorletters + --,v_perslid_fullname ,v_perslid_telefoonnr - ,v_perslid_mobiel - ,v_perslid_oslogin + -- ,v_perslid_mobiel + --,v_perslid_oslogin ,v_perslid_email ,v_srtperslid_omschrijving ,v_afdeling_naam - ,v_afdeling_omschr + ,v_afdeling_omschrijving ,'' ,'' ,v_locatie_omschrijving @@ -246,8 +254,27 @@ BEGIN IF header_found = FALSE THEN fac.imp_writelog (p_import_key, 'E', 'Geen geldige header gevonden', ''); - END IF; + ELSE + -- splits de achternaam in tussenvoegsels en achternaam. + FOR rec IN c + LOOP + BEGIN + IF rec.prs_perslid_nr <> v_old_persnr + THEN + DBMS_OUTPUT.put_line ( + rec.prs_perslid_nr || '-' || rec.fac_usrdata_omschr); + v_old_persnr := rec.prs_perslid_nr; + UPDATE cwtd_imp_persoon cip + SET prs_perslid_tussenvoegsel = rec.fac_usrdata_omschr, + prs_perslid_naam = + TRIM(SUBSTR (prs_perslid_naam, + LENGTH (rec.fac_usrdata_omschr) + 1)) + WHERE cip.prs_perslid_nr = rec.prs_perslid_nr; + END IF; + END; + END LOOP; + END IF; END IF; EXCEPTION WHEN OTHERS @@ -308,11 +335,13 @@ AS lp.prs_perslid_partn_tussen, lp.prs_perslid_partn_naam, lp.prs_perslid_fullname, - lp.prs_afdeling_naam, + DECODE (lp.prs_afdeling_naam, NULL, '0000', lp.prs_afdeling_naam) prs_afdeling_naam, + lp.prs_afdeling_omschr, lp.prs_perslid_naam, lp.prs_perslid_tussenvoegsel, lp.prs_perslid_voorletters, lp.prs_perslid_voornaam, + lp.prs_perslid_geslacht, DECODE (lp.prs_perslid_telefoonnr, '0', NULL, lp.prs_perslid_telefoonnr) @@ -692,12 +721,12 @@ BEGIN INSERT INTO prs_perslid (prs_perslid_naam, prs_perslid_tussenvoegsel, prs_perslid_module, - prs_perslid_voorletters, prs_perslid_voornaam, + prs_perslid_voorletters, prs_perslid_voornaam, prs_perslid_geslacht, prs_perslid_telefoonnr, prs_perslid_mobiel, prs_perslid_oslogin, prs_perslid_email, prs_perslid_nr, prs_perslid_titel, prs_srtperslid_key, prs_afdeling_key, prs_perslid_aanmaak, fac_profiel_key ) VALUES (v_perslid_naam, v_perslid_tussenvoegsel, 'PRS', - rec_prs_upd.prs_perslid_voorletters, rec_prs_upd.prs_perslid_voornaam, + rec_prs_upd.prs_perslid_voorletters, rec_prs_upd.prs_perslid_voornaam, rec_prs_upd.prs_perslid_geslacht, rec_prs_upd.prs_perslid_telefoonnr, rec_prs_upd.prs_perslid_mobiel, rec_prs_upd.prs_perslid_oslogin, rec_prs_upd.prs_perslid_email, rec_prs_upd.prs_perslid_nr, rec_prs_upd.prs_perslid_titel, v_srtperslid_key, v_afdeling_key, c_perslid_aanmaak, 21 ); @@ -720,6 +749,7 @@ BEGIN prs_perslid_voorletters = rec_prs_upd.prs_perslid_voorletters, prs_perslid_voornaam = NVL (rec_prs_upd.prs_perslid_voornaam, prs_perslid_voornaam), prs_perslid_telefoonnr = rec_prs_upd.prs_perslid_telefoonnr, + prs_perslid_geslacht = rec_prs_upd.prs_perslid_geslacht, prs_perslid_titel = rec_prs_upd.prs_perslid_titel, prs_srtperslid_key = v_srtperslid_key, prs_afdeling_key = v_afdeling_key, @@ -728,13 +758,14 @@ BEGIN WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key AND ( prs_perslid_naam != v_perslid_naam OR NVL (prs_perslid_tussenvoegsel, '-') != NVL (v_perslid_tussenvoegsel, '-') - OR prs_perslid_voorletters != rec_prs_upd.prs_perslid_voorletters + -- OR prs_perslid_voorletters != rec_prs_upd.prs_perslid_voorletters OR NVL (prs_perslid_voornaam, '-') != NVL (rec_prs_upd.prs_perslid_voornaam, '-') OR NVL (prs_perslid_telefoonnr, '-') != NVL (rec_prs_upd.prs_perslid_telefoonnr, '-') - OR prs_perslid_titel != rec_prs_upd.prs_perslid_titel + -- OR prs_perslid_titel != rec_prs_upd.prs_perslid_titel OR prs_srtperslid_key != v_srtperslid_key OR prs_afdeling_key != v_afdeling_key OR prs_perslid_email != rec_prs_upd.prs_perslid_email + OR NVL (prs_perslid_geslacht, 9) != NVL (rec_prs_upd.prs_perslid_geslacht, 9) OR rec_prs_upd.prs_perslid_verwijder IS NOT NULL ); END IF; @@ -1420,12 +1451,14 @@ EXCEPTION END cwtd_processemail; / +------ payload end ------ -SHOW ERRORS +SET DEFINE OFF +BEGIN adm.systrackscriptId ('$Id$', 0); END; +/ -BEGIN fac.registercustversion('CWTD', 12); END; -/ -BEGIN adm.systrackscriptId('$Id$', 0); END; -/ COMMIT; +SET ECHO OFF SPOOL OFF +SET DEFINE ON +PROMPT Logfile of this upgrade is: &fcltlogfile