-- -- workflow_case__sweep_timed_transitions/0 -- create or replace function workflow_case__sweep_timed_transitions( ) returns int4 as $$ declare v_journal_id integer; trans_rec record; begin for trans_rec in select t.task_id, t.case_id, tr.transition_name from wf_tasks t, wf_transitions tr where trigger_time <= now() and state = 'enabled' and tr.workflow_key = t.workflow_key and tr.transition_key = t.transition_key LOOP /* Insert an entry to the journal so people will know it fired */ v_journal_id := journal_entry__new ( null, trans_rec.case_id, 'task ' || trans_rec.task_id || ' fire time', trans_rec.transition_name || ' automatically finished', now(), null, null, 'Timed transition fired.' ); /* Fire the transition */ PERFORM workflow_case__fire_transition_internal ( trans_rec.task_id, v_journal_id ); /* Update the workflow internal state */ PERFORM workflow_case__sweep_automatic_transitions( trans_rec.case_id, v_journal_id ); end loop; return 0; end;$$ language plpgsql;