HMOD#88835 -- AFAS-koppeling versie 2 - Deze is voor uitrol productie inclusief proces van hr-mutaties
svn path=/Customer/trunk/; revision=69861
This commit is contained in:
140
HMOD/hmod.sql
140
HMOD/hmod.sql
@@ -226,12 +226,12 @@ BEGIN
|
||||
-- Op zoek naar de Facilitor-rol voor deze medewerkers op basis van functie_code en functie_omschrijving
|
||||
-- Onderhouden in eigentabellen functie_rol1 en functie_rol2 (key 901 en key 903)
|
||||
|
||||
SELECT MAX((SELECT rol.fac_usrdata_code FROM fac_usrdata rol WHERE rol.fac_usrdata_key = ud.fac_usrdata_parentkey AND rol.fac_usrtab_key = 921))
|
||||
SELECT MAX((SELECT rol.fac_usrdata_code FROM fac_usrdata rol WHERE rol.fac_usrdata_key = ud.fac_usrdata_parentkey AND rol.fac_usrtab_key = 901))
|
||||
facilitor_rol
|
||||
INTO v_prs_perslid_rol_key
|
||||
FROM fac_usrtab ut, fac_usrdata ud
|
||||
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
|
||||
AND ut.fac_usrtab_key = 901
|
||||
AND ut.fac_usrtab_key = 903
|
||||
AND ud.fac_usrdata_verwijder IS NULL
|
||||
AND UPPER(ud.fac_usrdata_code) = UPPER(rec.prs_kenmerk6) -- functiecode
|
||||
AND UPPER(ud.fac_usrdata_omschr) = UPPER(rec.prs_kenmerk7) -- functieomschrijving
|
||||
@@ -281,9 +281,14 @@ IS
|
||||
|
||||
-- Facilitor-rollen bepalen en op basis van deze rollen autorisaties uitreiken
|
||||
--- Op basis functie/code zijn er 3 rollen te onderscheiden voor hmod in Facilitor: Teamleider locatie, Regiomanager, Manager algemeen
|
||||
---
|
||||
|
||||
-- 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'
|
||||
--- 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
|
||||
----- Werkwijz: Via een aparte notificatiejob worden de personen geinformeerd om de juiste HR-mutatie/workflow op te staten
|
||||
--- Voor de mutatie 'verwijderde medewerkers': <NOG INPASSEN / BESPREKEN MET FRANK/CLAUDIA>
|
||||
----- Werkwijze: 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;
|
||||
@@ -299,6 +304,8 @@ IS
|
||||
c_rol_key_teamleider NUMBER (10) := 1280;
|
||||
c_rol_key_regiomanager NUMBER (10) := 1740;
|
||||
c_rol_key_manager NUMBER (10) := 1320;
|
||||
v_prs_mutatie_hr VARCHAR2 (1000);
|
||||
v_import_datum VARCHAR2 (30) := TO_CHAR(SYSDATE) ;
|
||||
|
||||
CURSOR c_afd
|
||||
IS
|
||||
@@ -321,6 +328,24 @@ IS
|
||||
AND UPPER (p.prs_perslid_email) LIKE '%HUMOD.NL'
|
||||
ORDER BY 1 ;
|
||||
|
||||
-- HR-koffersysteem mutatie op functie en/of afdeling (= formatieplaats-wijziging)
|
||||
CURSOR c_mut
|
||||
IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_naam, p.prs_perslid_email, p.prs_perslid_nr, sp.prs_srtperslid_omschrijving, a.prs_afdeling_omschrijving,
|
||||
flx.getflex('PRS', 1606, p.prs_perslid_key, 'P')
|
||||
formatieplaats_huidig,
|
||||
i.prs_kenmerk8
|
||||
formatieplaats_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
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND b.prs_bedrijf_key = c_prs_bedrijf_key_hmod
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND p.prs_perslid_nr IS NOT NULL
|
||||
AND UPPER (p.prs_perslid_email) LIKE '%HUMOD.NL'
|
||||
ORDER BY 1 ;
|
||||
|
||||
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,
|
||||
@@ -394,26 +419,6 @@ IS
|
||||
WHERE p.prs_perslid_key = i.prs_perslid_key
|
||||
ORDER BY 1 ;
|
||||
|
||||
-- HR-koffersysteem mutatie op functie en/of afdeling (=formatieplaats-wijziging) - NOG HELEMAAL GOED UITWERKEN!!!
|
||||
CURSOR c_mut
|
||||
IS
|
||||
SELECT p.prs_perslid_key -- NOG UITWERKEN
|
||||
FROM fac_imp_perslid i,
|
||||
(SELECT p.prs_perslid_key,
|
||||
p.prs_perslid_email,
|
||||
p.prs_perslid_nr,
|
||||
p.prs_perslid_oslogin,
|
||||
p.prs_perslid_key_verantw,
|
||||
(SELECT kw.prs_kenmerklink_waarde
|
||||
FROM prs_kenmerklink kw
|
||||
WHERE kw.prs_kenmerk_key = 1082
|
||||
AND kw.prs_kenmerklink_niveau = 'P'
|
||||
AND kw.prs_link_key = p.prs_perslid_key)
|
||||
prs_perslid_verantw_nr_afas
|
||||
FROM prs_perslid p) p
|
||||
WHERE p.prs_perslid_key = i.prs_perslid_key
|
||||
ORDER BY 1 ;
|
||||
|
||||
|
||||
BEGIN
|
||||
v_errormsg := 'Update afasonline';
|
||||
@@ -470,6 +475,45 @@ BEGIN
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR rec IN c_mut
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Trigger HR-mutatie zetten - formatieplaats gewijzigd';
|
||||
|
||||
v_prs_mutatie_hr := '' ;
|
||||
|
||||
-- Bestaande medewerker met wijzigende formatieplaats
|
||||
IF rec.formatieplaats_huidig IS NOT NULL AND rec.formatieplaats_huidig <> rec.formatieplaats_import
|
||||
THEN
|
||||
|
||||
v_prs_mutatie_hr := 'Formatieplaats gewijzigd van ' || rec.formatieplaats_huidig || ' naar ' || 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_FORMATIEPLAATS_GEWIJZIGD'); END;
|
||||
|
||||
END IF;
|
||||
|
||||
-- Nieuwe medewerker met wijzigende formatieplaats
|
||||
IF rec.formatieplaats_huidig IS NULL
|
||||
THEN
|
||||
|
||||
v_prs_mutatie_hr := 'Nieuwe medewerker 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;
|
||||
|
||||
END IF;
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
|
||||
-- Op de personenkaart de actuele humod-mederwerkers de afas-velden uit de koppeling vullen - ter informatie
|
||||
FOR rec IN c_flex
|
||||
@@ -2485,6 +2529,56 @@ AS
|
||||
WHERE c.ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_discipline_module = 'CNT' ;
|
||||
|
||||
-- Als vanuit AFAS-koppeling een nieuwe medewerker binnenkomt of een bestaande medewerker een formatieplaats-wijziging heeft, dan moet er in Facilitor een HR-mutatieproces opgestart worden
|
||||
CREATE OR REPLACE VIEW hmod_v_noti_afas_hrtrigger
|
||||
(
|
||||
code,
|
||||
sender,
|
||||
receiver,
|
||||
text,
|
||||
key,
|
||||
xkey,
|
||||
xemail,
|
||||
xmobile
|
||||
)
|
||||
AS
|
||||
SELECT 'PRSUPD',
|
||||
NULL,
|
||||
g.prs_perslid_key,
|
||||
'HR_MUTATIE: ' || v.prs_perslid_email || ' - ' || v.afas_hr_mutatie
|
||||
text,
|
||||
v.prs_perslid_key,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
FROM (SELECT p.prs_perslid_key, p.prs_perslid_naam, p.prs_perslid_email, p.prs_perslid_nr,
|
||||
flx.getflex('PRS', 1760, p.prs_perslid_key, 'P') afas_hr_mutatie
|
||||
FROM prs_perslid p ) v,
|
||||
(SELECT ft.fac_tracking_refkey, ft.fac_tracking_oms, MAX(ft.fac_tracking_datum) datum_mutatie
|
||||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||||
AND sn.fac_srtnotificatie_code = 'PRSUPD'
|
||||
AND (
|
||||
ft.fac_tracking_oms = 'MDW_FORMATIEPLAATS_GEWIJZIGD'
|
||||
OR
|
||||
ft.fac_tracking_oms = 'MDW_NIEUW'
|
||||
)
|
||||
GROUP BY ft.fac_tracking_refkey, ft.fac_tracking_oms
|
||||
) ft,
|
||||
(SELECT gg.prs_perslid_key
|
||||
FROM fac_groep g, fac_gebruikersgroep gg
|
||||
WHERE g.fac_groep_key = gg.fac_groep_key
|
||||
AND g.fac_groep_key = 541 -- AUTORISATIEGROEP HR_MUTATIE
|
||||
AND gg.fac_gebruikersgroep_vervaldatum IS NULL
|
||||
) g,
|
||||
(SELECT COALESCE(fac_notificatie_job_lastrun, trunc(sysdate-1)) datum_last_run
|
||||
FROM fac_notificatie_job
|
||||
WHERE LOWER(fac_notificatie_job_view) ='hmod_v_noti_afas_hrtrigger') n
|
||||
WHERE v.prs_perslid_key = ft.fac_tracking_refkey
|
||||
AND ft.datum_mutatie >= n.datum_last_run
|
||||
;
|
||||
|
||||
|
||||
---------------------
|
||||
-- RAPPORTVIEWS -----
|
||||
---------------------
|
||||
|
||||
Reference in New Issue
Block a user