STAM#50228 Automatisch starten workflow In Dienst
svn path=/Customer/trunk/; revision=41706
This commit is contained in:
106
STAM/STAM.sql
106
STAM/STAM.sql
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user