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;
|
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)
|
CREATE OR REPLACE PROCEDURE stam_import_perslid (p_import_key IN NUMBER)
|
||||||
AS
|
AS
|
||||||
oracle_err_num NUMBER;
|
oracle_err_num NUMBER;
|
||||||
|
|||||||
Reference in New Issue
Block a user