-- -- workflow_case__start_case/4 -- create or replace function workflow_case__start_case( integer, integer, character varying, character varying ) returns int4 as $$ declare start_case__case_id alias for $1; start_case__creation_user alias for $2; -- default null start_case__creation_ip alias for $3; -- default null start_case__msg alias for $4; -- default null v_journal_id integer; begin /* Add an entry to the journal */ v_journal_id := journal_entry__new( null, start_case__case_id, 'case start', 'Case started', now(), start_case__creation_user, start_case__creation_ip, start_case__msg ); update wf_cases set state = 'active' where case_id = start_case__case_id; PERFORM workflow_case__add_token ( start_case__case_id, 'start', v_journal_id ); -- Turn the wheels PERFORM workflow_case__sweep_automatic_transitions ( start_case__case_id, v_journal_id ); return 0; end;$$ language plpgsql;