STAM#50228 Automatisch starten workflow In Dienst

svn path=/Customer/trunk/; revision=41706
This commit is contained in:
Suzan Wiegerinck
2019-03-20 20:07:40 +00:00
parent 56267715b8
commit 13bb5b5375

View File

@@ -264,6 +264,112 @@ BEGIN
END;
/
CREATE OR REPLACE PROCEDURE STAM_STARTWF_EMPLOYEE (p_import_key IN NUMBER)
AS
v_count NUMBER;
melder prs_perslid.prs_perslid_key%TYPE;
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
newkey mld_melding.mld_melding_key%TYPE;
defaultstdmelding fac_setting.fac_setting_default%TYPE;
errormsg fac_result.fac_result_waarde%TYPE;
CURSOR c_new IS
SELECT i.*,
prs_perslid_naam
|| DECODE (prs_perslid_voorletters,
NULL, '',
', ' || prs_perslid_voorletters)
|| DECODE (prs_perslid_tussenvoegsel,
NULL, '',
' ' || prs_perslid_tussenvoegsel)
|| DECODE (prs_perslid_voornaam,
NULL, '',
' (' || prs_perslid_voornaam || ')') AS new_employee
FROM fac_imp_perslid i
WHERE NOT EXISTS
(SELECT *
FROM prs_perslid p
WHERE p.prs_perslid_nr = i.prs_perslid_nr);
BEGIN
--- De eerste melding van deze workflow is 'New employee' , key = 681
defaultstdmelding := '681';
FOR rc IN c_new
LOOP
BEGIN
--- Stamicarbon kent een dummy gebruiker voor het aanvragen van een nieuwe medewerker
--- Van deze medewerker halen we ook even de kostenplaats op
SELECT p.prs_perslid_key, a.prs_kostenplaats_key
INTO melder, kostenplaats
FROM prs_perslid p, prs_afdeling a
WHERE p.prs_perslid_upper = '_NEW EMPLOYEE'
AND p.prs_afdeling_key = a.prs_afdeling_key;
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_melding_datum,
mld_melding_onderwerp,
mld_melding_status,
mld_stdmelding_key,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_spoed)
VALUES ('MLD',
2, -- email
SYSDATE,
'Nieuwe medewerker aangemeld vanuit AD',
4,
defaultstdmelding,
melder,
melder,
kostenplaats,
3)
RETURNING mld_melding_key
INTO newkey;
-- Kenmerkvelden vullen
--- 1601 Name employee
stam_set_mldkenmerk (1601, newkey, rc.new_employee);
-- 1602 Employee group ID (pers_nr)
stam_set_mldkenmerk (1602, newkey, rc.prs_perslid_nr);
-- 1603 Position (functie)
stam_set_mldkenmerk (1603,
newkey,
rc.prs_srtperslid_omschrijving);
-- 1604 Costcenter
stam_set_mldkenmerk (1604, newkey, rc.prs_afdeling_naam);
-- de startmelding krijgt status 5 en de volgende stap kan opgestart worden
-- mld.setmeldingstatus (newkey, 4 , melder);
mld.mld_nextworkflowstep (newkey, -1); -- 1=Completed
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (
'PROCES NEW EMPLOYEE',
'W',
'Melding new employee kon niet aangemaakt worden: '
|| '['
|| errormsg
|| ']',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
END;
END LOOP;
END STAM_STARTWF_EMPLOYEE;
/
CREATE OR REPLACE PROCEDURE stam_import_perslid (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;