From 56ce597527bdf85fb082990352cf87658ea583d8 Mon Sep 17 00:00:00 2001 From: Jos Migo Date: Sun, 14 Sep 2025 15:23:53 +0000 Subject: [PATCH] HMOD#88835 -- AFAS-koppeling - inpassen uit dienst svn path=/Customer/trunk/; revision=70309 --- HMOD/hmod.sql | 53 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/HMOD/hmod.sql b/HMOD/hmod.sql index 7cc70d9ad..270496ca4 100644 --- a/HMOD/hmod.sql +++ b/HMOD/hmod.sql @@ -81,8 +81,8 @@ BEGIN WHERE fac_import_key = p_import_key; v_errorhint := 'Generieke update'; - -- Import AFAS_ONLINE -- csv formaat via stylesheet afas2fclt.xsl bepaald -- NOG INPASSEN --21 Datum in dienst - v_seq_of_header := 'Personeelsnummer;Roepnaam;Voorletters;Voorvoegsel;Achternaam;Geslacht;Zakelijk mailadres;Dienstverb.;Begindatum functieregel;Einddatum functieregel;Afdelingscode;Afdeling omschrijving;Functiecode;Functieomschrijving;Formatieplaatscode;Formatieplaats omschrijving;Uren/wk;Leidinggevende persnr.;Naam Leidinggevende;Kofferletter;Datum in dienst'; + -- Import AFAS_ONLINE -- csv formaat via stylesheet afas2fclt.xsl bepaald + v_seq_of_header := 'Personeelsnummer;Roepnaam;Voorletters;Voorvoegsel;Achternaam;Geslacht;Zakelijk mailadres;Dienstverb.;Begindatum functieregel;Einddatum functieregel;Afdelingscode;Afdeling omschrijving;Functiecode;Functieomschrijving;Formatieplaatscode;Formatieplaats omschrijving;Uren/wk;Leidinggevende persnr.;Naam Leidinggevende;Kofferletter;Datum in dienst;Datum uit dienst'; -- 1. Personeelsnummer -- 2. Roepnaam -- 3. Voorletters @@ -104,6 +104,7 @@ BEGIN -- 19. Naam Leidinggevende -- 20. Kofferletter -- 21. Datum in dienst + -- 22. Datum uit dienst -- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure v_seq_of_columns := '0;0;0;0;0;0;11;5;4;2;' @@ -145,7 +146,7 @@ BEGIN || '12;13;14;15;16;17;18;19;20;21;' -- v_prs_kenmerk5 31 -- .t/m kenmerk14 40 - || '0;0;0;0;0;0'; + || '22;0;0;0;0;0'; -- v_prs_kenmerk15 41 -- ..t/m kenmerk20 46 @@ -283,11 +284,13 @@ IS --- -- HR-mutaties in Facilitor - --- Bij mutaties in AFAS moeten in Facilitor voor desbetreffende persoon ook zaken geregeld worden. Hiervoor zetten we kenmerk/trigger 'mutatie-koffersysteem' - --- Betreft 2 wijzigingen: Nieuwe medewerker EN Gewijzigde formatieplaats op bestaande medewerker - ----- Werkwijze: Via een aparte notificatiejob worden de personen geinformeerd om de juiste HR-mutatie/workflow op te staten - --- Voor de mutatie 'verwijderde medewerkers': - ----- Werkwijze: Daar voor elk medewerker een KOFFER-OBJECT koppelen zodat de medewerker bij verwijderactie uit AFAS-koppeling altijd op INACTIEF komt + --- Bij mutaties in AFAS moeten in Facilitor voor desbetreffende persoon ook zaken geregeld worden. Hiervoor zetten we kenmerk/trigger 'mutatie-hr' + --- Betreft 4 wijzigingen: Nieuwe medewerker EN Gewijzigde formatieplaats op bestaande medewerker EN medewerker uit dienst EN mutatie nevenfuncties + ----- Ps. laatste NOG INPASSEN - AANLEVEREN UIT AFAS + --- Werkwijze: Via een cockpit-rapportage zijn deze in beeld en zal BedrijfsBureau de juiste HR-workflow/melding opstarten om de acties voor IT, Applicatiebeheer en Facilitair uitgevoerd te krijgen. + ----- Ps. Cockpit-rapport dus tevens bewakingsrapport dat zaken tijdig geregeld worden. + --- Voor de mutatie 'verwijderde en/of inactieve medewerkers': + ----- Werkwijze voortel: Daar voor elk medewerker een KOFFER-OBJECT koppelen zodat de medewerker bij verwijderactie uit AFAS-koppeling altijd op INACTIEF komt v_count NUMBER; oracle_err_num NUMBER; @@ -305,6 +308,7 @@ IS c_rol_key_manager NUMBER (10) := 1320; v_prs_mutatie_hr VARCHAR2 (1000); v_import_datum VARCHAR2 (30) := TO_CHAR(SYSDATE) ; + v_datum_vandaag DATE := TRUNC(SYSDATE) ; CURSOR c_afd IS @@ -334,7 +338,11 @@ IS flx.getflex('PRS', 1606, p.prs_perslid_key, 'P') formatieplaats_huidig, i.prs_kenmerk8 - formatieplaats_import + formatieplaats_import, + TO_DATE(flx.getflex('PRS', 1800, p.prs_perslid_key, 'P'), 'yyyy-mm-dd') + datum_uit_dienst, + TO_DATE(i.prs_kenmerk15, 'yyyy-mm-dd') + datum_uit_dienst_import FROM prs_perslid p, fac_imp_perslid i, prs_srtperslid sp, prs_v_afdeling a, prs_bedrijf b WHERE p.prs_perslid_key = i.prs_perslid_key AND p.prs_perslid_verwijder IS NULL @@ -348,7 +356,7 @@ IS CURSOR c_flex -- Voor updaten van de algemene flex-kenmerkvelden op actuele medewerkers in blok AFAS_ONLINE op personenkaart IS SELECT p.prs_perslid_key, i.prs_perslid_nr, i.prs_perslid_naam, i.prs_perslid_email, - i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3, i.prs_kenmerk4, i.prs_kenmerk5, i.prs_kenmerk6, i.prs_kenmerk7, i.prs_kenmerk8, i.prs_kenmerk9, i.prs_kenmerk10, i.prs_kenmerk11, i.prs_kenmerk12, i.prs_kenmerk13, i.prs_kenmerk14 + i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3, i.prs_kenmerk4, i.prs_kenmerk5, i.prs_kenmerk6, i.prs_kenmerk7, i.prs_kenmerk8, i.prs_kenmerk9, i.prs_kenmerk10, i.prs_kenmerk11, i.prs_kenmerk12, i.prs_kenmerk13, i.prs_kenmerk14, i.prs_kenmerk15 FROM prs_v_aanwezigperslid p, fac_imp_perslid i WHERE p.prs_perslid_key = i.prs_perslid_key ORDER BY 1; @@ -478,7 +486,7 @@ BEGIN FOR rec IN c_mut LOOP BEGIN - v_errorhint := 'Trigger HR-mutatie zetten - formatieplaats gewijzigd'; + v_errorhint := 'Triggers HR-mutatie zetten'; v_prs_mutatie_hr := '' ; @@ -496,19 +504,33 @@ BEGIN END IF; - -- Nieuwe medewerker met wijzigende formatieplaats + -- Nieuwe medewerker in dienst IF rec.formatieplaats_huidig IS NULL THEN - v_prs_mutatie_hr := 'Nieuwe medewerker met formatieplaats ' || rec.formatieplaats_import || ' (datum afasimport ' || v_import_datum || ')' ; + v_prs_mutatie_hr := 'Nieuwe medewerker in dienst met formatieplaats ' || rec.formatieplaats_import || ' (datum afasimport ' || v_import_datum || ')' ; -- kenmerk aanpassen PRS.upsertkenmerk (1760, rec.prs_perslid_key, v_prs_mutatie_hr); -- fac_tracking op personenkaart - BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'MDW_NIEUW'); END; + BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'MDW_IN_DIENST'); END; END IF; + + -- Medewerker uit dienst + IF rec.datum_uit_dienst_import IS NOT NULL AND rec.datum_uit_dienst_import <> COALESCE(rec.datum_uit_dienst, v_datum_vandaag) AND rec.datum_uit_dienst_import > v_datum_vandaag + THEN + + v_prs_mutatie_hr := 'Medewerker uit dienst met formatieplaats ' || rec.formatieplaats_import || ' (datum afasimport ' || v_import_datum || ')' ; + + -- kenmerk aanpassen + PRS.upsertkenmerk (1760, rec.prs_perslid_key, v_prs_mutatie_hr); + + -- fac_tracking op personenkaart + BEGIN fac.trackaction('PRSUPD', rec.prs_perslid_key, 3, NULL, 'MDW_UIT_DIENST'); END; + + END IF; END; END LOOP; @@ -572,6 +594,9 @@ BEGIN v_errorhint:='Fout bijwerken kenmerkveld14 - Datum in Dienst'; PRS.upsertkenmerk (1780, rec.prs_perslid_key, rec.prs_kenmerk14); + v_errorhint:='Fout bijwerken kenmerkveld14 - Datum uit Dienst'; + PRS.upsertkenmerk (1800, rec.prs_perslid_key, rec.prs_kenmerk15); + END; END LOOP;