PROR#84843 --Import AFAS_PERSONEN eindigt met Ongeldig getal

svn path=/Customer/trunk/; revision=65805
This commit is contained in:
Norbert Wassink
2024-08-06 07:12:30 +00:00
parent a436221df6
commit 29a7976ff9

View File

@@ -496,7 +496,7 @@ AS
AND pk.prs_kenmerk_upper='AFAS ACCOUNT'
AND kl.prs_kenmerk_key = pk.prs_kenmerk_key
AND kl.prs_link_key=p.prs_perslid_key
AND kl.prs_kenmerklink_waarde=1
AND kl.prs_kenmerklink_waarde='1'
AND p.prs_perslid_nr NOT IN (SELECT prs_perslid_nr
FROM fac_imp_perslid);
@@ -522,32 +522,74 @@ AS
FROM fac_gebruikersgroep f
WHERE f.prs_perslid_key=p.prs_perslid_key);
v_date DATE;
v_defaultgroep NUMBER:=1;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_aanduiding VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_date DATE;
v_defaultgroep NUMBER:=1;
v_count NUMBER;
v_aanwezig NUMBER;
BEGIN
prs.update_perslid (p_import_key, 'NR', 'A', 1);
-- Hebben we wel een gevuld bestand binnen gekregen
SELECT COUNT(*)
INTO v_count
FROM fac_imp_perslid;
SELECT COUNT(*)
INTO v_aanwezig
FROM prs_perslid p, prs_kenmerklink kl, prs_kenmerk pk
WHERE p.prs_perslid_verwijder IS NULL
AND pk.prs_kenmerk_upper='AFAS ACCOUNT'
AND kl.prs_kenmerk_key = pk.prs_kenmerk_key
AND kl.prs_link_key=p.prs_perslid_key
AND kl.prs_kenmerklink_waarde='1';
IF (v_count/v_aanwezig) > 0.85 -- we gaan uit van minimaal 85% aanwezig in import file
THEN
v_errormsg := 'Fout bij update van personen.';
prs.update_perslid (p_import_key, 'NR', 'A', 1);
v_errormsg := 'Fout bij verwijderen van personen.';
FOR rec IN p_del
LOOP
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END LOOP;
v_errormsg := 'Fout bij mandateren van personen.';
FOR rec_man IN p_mandaat
LOOP
pror.mandateer_prs(rec_man.prs_perslid_key);
END LOOP;
v_errormsg := 'Fout bij toevoegen personen aan autorisatiegroep.';
FOR rec2 IN p_autgroep
LOOP
INSERT INTO fac_gebruikersgroep(FAC_GROEP_KEY, prs_perslid_key)
VALUES(v_defaultgroep, rec2.prs_perslid_key);
END LOOP;
COMMIT;
FOR rec IN p_del
LOOP
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END LOOP;
FOR rec_man IN p_mandaat
LOOP
pror.mandateer_prs(rec_man.prs_perslid_key);
END LOOP;
FOR rec2 IN p_autgroep
LOOP
INSERT INTO fac_gebruikersgroep(FAC_GROEP_KEY, prs_perslid_key)
VALUES(v_defaultgroep, rec2.prs_perslid_key);
END LOOP;
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END;
/