HEIN#64438 -- Implementatie Cosource - Heineken (Exact en personen import)
svn path=/Customer/trunk/; revision=49072
This commit is contained in:
144
HEIN/hein.sql
144
HEIN/hein.sql
@@ -269,6 +269,148 @@ AS
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
--
|
||||
-- Personeelskoppeling met Heineken
|
||||
--
|
||||
CREATE OR REPLACE PROCEDURE hein_import_perslid (p_import_key IN NUMBER)
|
||||
AS
|
||||
v_seq_of_columns VARCHAR (255);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (200);
|
||||
v_errorhint VARCHAR2 (200);
|
||||
BEGIN
|
||||
|
||||
v_seq_of_columns := '18;0;0;0;0;0;11;23;22;20;'
|
||||
-- v_alg_locatie_code 1
|
||||
-- v_alg_gebouw_code 2
|
||||
-- v_alg_verdieping_volgnr 3
|
||||
-- v_alg_ruimte_nr 4
|
||||
-- v_prs_werkplek_volgnr 5
|
||||
-- v_prs_werkplek_omschrijving 6
|
||||
-- v_prs_afdeling_naam 7
|
||||
-- v_prs_perslid_naam 8
|
||||
-- v_prs_perslid_tussenvoegsel 9
|
||||
-- v_prs_perslid_voornaam 10
|
||||
|| '21;0;0;0;0;0;0;4;0;1;'
|
||||
-- v_prs_perslid_voorletters 11
|
||||
-- v_prs_perslid_partner_naam 12
|
||||
-- v_prs_perslid_partner_tussenv 13
|
||||
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
|
||||
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
|
||||
-- 2 personen die de geboortenaam van de partner willen gebruiken
|
||||
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
|
||||
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
|
||||
-- v_prs_perslid_telefoonnr 16
|
||||
-- v_prs_perslid_mobiel 17
|
||||
-- v_prs_perslid_email 18
|
||||
-- v_prs_perslid_dienstverband 19
|
||||
-- v_prs_perslid_nr 20
|
||||
|| '8;3;0;0;0;0;12;5;6;17;'
|
||||
-- v_prs_srtperslid_omschrijving 21
|
||||
-- v_prs_perslid_oslogin 22
|
||||
-- v_prs_perslid_wachtwoord 23
|
||||
-- v_prs_perslid_titel 24
|
||||
-- v_prs_perslid_apikey 25
|
||||
-- v_dummy 26
|
||||
-- v_prs_kenmerk1 27
|
||||
-- v_prs_kenmerk2 28
|
||||
-- v_prs_kenmerk3 29
|
||||
-- v_prs_kenmerk4 30
|
||||
|| '25;0;0;0;0;0;0;0;0;0;'
|
||||
|| '0;0;0;0;0;0';
|
||||
prs.import_perslid(p_import_key, v_seq_of_columns, 'Pers.no.;Personnel Number;ID/number;E-mail address;Cost ctr;Cost Center;Position;Position;PerAdm;Administrator for HR Master Da;Org.unit;Organizational Unit;Pers.no.;Personnel Number of Superior (;ID/number Manager;SPLCODE;Standplaatscodes;CoCd;Company Code;Known as;Initials;Name prefix;Last name;Birth date;Language of communication%');
|
||||
|
||||
-- Uitleg van de kenmerkvelden:
|
||||
-- kenmerk1: Afdeling omschrijving
|
||||
-- kenmerk2: Kostenplaatscode
|
||||
-- kenmerk3: Kostenplaatsomschrijving
|
||||
-- kenmerk4: Standplaats
|
||||
-- kenmerk5: Default taal
|
||||
|
||||
DELETE fac_imp_organisatie;
|
||||
|
||||
INSERT INTO fac_imp_organisatie (prs_bedrijf_naam, prs_afdeling_naam, prs_afdeling_omschrijving)
|
||||
SELECT DISTINCT 'Heineken', prs_afdeling_naam, prs_kenmerk1
|
||||
FROM fac_imp_perslid
|
||||
WHERE fac_import_key = p_import_key;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE hein_update_perslid (p_import_key IN NUMBER)
|
||||
IS
|
||||
|
||||
-- personen pas verwijderen als ze langer dan 80 dagen bestaan. Hiermee voorkomen we dat nieuw handmatig ingevoerde
|
||||
-- personen direct verwijderd worden, omdat HR data altijd wat ouder is.
|
||||
CURSOR c_del IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full, p.prs_perslid_oslogin
|
||||
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||||
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
||||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_perslid_nr IS NOT NULL
|
||||
AND i.prs_perslid_nr IS NULL
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_aanmaak < SYSDATE -80;
|
||||
|
||||
v_bedrijf_key NUMBER (10);
|
||||
v_afdeling_key1 NUMBER (10);
|
||||
v_afdeling_key2 NUMBER (10);
|
||||
v_kostenplaats_key NUMBER (10);
|
||||
v_kpn_nr_prev VARCHAR2 (20);
|
||||
|
||||
v_aanduiding VARCHAR2 (100);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_count NUMBER;
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
v_aanduiding := '';
|
||||
|
||||
fac_update_organisatie (p_import_key);
|
||||
|
||||
SELECT COUNT(*)
|
||||
INTO v_count
|
||||
FROM fac_imp_perslid;
|
||||
|
||||
IF v_count > 500
|
||||
THEN
|
||||
-- Voordat we gaan importeren gaan we op zoek of we nog mensen moeten verwijderen die niet in de import voorkomen.
|
||||
-- Nu komt het ook regelmatig voor dat mensen een ander personeelsnummer krijgen terwijl ze de login behouden. Deze
|
||||
-- mensen proberen we om te hangen en het personeelsnummer aan te passen.
|
||||
|
||||
FOR rec IN c_del LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Verwijderen persoon: ' || rec.prs_perslid_key || '-' || rec.prs_perslid_nr || '-' || rec.prs_perslid_oslogin;
|
||||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||||
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;
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||||
|
||||
COMMIT;
|
||||
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);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Koppeling met Exact
|
||||
--
|
||||
@@ -411,7 +553,7 @@ AS
|
||||
k.prs_kostensoort_refcode,
|
||||
k.prs_kostensoort_opmerking,
|
||||
k.prs_kostensoort_key,
|
||||
'Heineken' prs_kostenplaats_nr, -- Let op: nog niet duidelijk of dit de fixed waarde moet zijn
|
||||
'440.00' prs_kostenplaats_nr, -- Let op: Vaste waarde, niet overgenomen uit de kostenplaatsen van Heineken
|
||||
o.mld_opdr_key,
|
||||
c.cnt_contract_key,
|
||||
bo.bes_bestelopdr_key,
|
||||
|
||||
Reference in New Issue
Block a user