FSN#30208 voor usersync hebben we masterbedrijfkey en apikeys nodig

DCOL#29886 automatische interne contractkey

svn path=/Database/trunk/; revision=22508
This commit is contained in:
Peter Feij
2014-09-09 11:48:14 +00:00
parent f5c75ca9b6
commit b73c34e092
2 changed files with 25 additions and 2 deletions

View File

@@ -103,7 +103,27 @@ CREATE_TRIGGER(prs_t_prs_perslid_B_I)
BEFORE INSERT ON prs_perslid
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_perslid_key, prs_s_prs_alluitvoerende_keys);
UPDATE_PRIMARY_KEY(prs_perslid_key, prs_s_prs_alluitvoerende_keys);
-- If this perslid belongs to the primary company of an xd-environment
-- it gets a default apikey to get synced across the domains
IF :new.prs_perslid_apikey IS NULL AND fac.getsetting ('xd_primary_bedrijfkey') > 0
THEN
DECLARE
dummy prs_afdeling.prs_bedrijf_key%TYPE;
BEGIN
SELECT prs_bedrijf_key
INTO dummy
FROM prs_afdeling
WHERE prs_afdeling_key = :new.prs_afdeling_key
AND prs_afdeling.prs_bedrijf_key = fac.getsetting ('xd_primary_bedrijfkey');
-- 52 lower en uppercase letters*32 is 182 bits equivalent
SELECT DBMS_RANDOM.string ('a', 32) INTO :new.prs_perslid_apikey FROM DUAL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL; -- persoon hoort niet bij de serviceorganisatie
END;
END IF;
END;
/