The cursor responsible for updating existing records, where a participant is assigned to a task, does not work:
CURSOR assign_cursor (
acin_id_in IN wf_activity_instances.id%TYPE
, pati_type_in IN wf_participants.participant_type%TYPE
)
IS
SELECT pefo.*
FROM wf_performers pefo, wf_participants pati
WHERE pefo.state = 'ASSIGNED'
AND pefo.acin_id = acin_id_in
AND (accepted IS NULL OR accepted = 'Y')
AND pati.id = pefo.pati_id
AND pati.participant_type = pati_type_in
FOR UPDATE
;
Should be:
CURSOR assign_cursor (
acin_id_in IN wf_activity_instances.id%TYPE
, pati_type_in IN wf_participants.participant_type%TYPE
)
IS
SELECT pefo.*
FROM wf_performers pefo, wf_participants pati
WHERE pefo.state = 'ASSIGNED'
AND pefo.acin_id = acin_id_in
AND (accepted IS NULL OR accepted = 'Y')
AND pati.id = pefo.pati_id
AND pati.participant_type = pati_type_in
FOR UPDATE OF accepted
;