-- -- workflow__add_trans_attribute_map/4 -- create or replace function workflow__add_trans_attribute_map( character varying, character varying, integer, integer ) returns int4 as $$ declare p_workflow_key alias for $1; p_transition_key alias for $2; p_attribute_id alias for $3; p_sort_order alias for $4; v_num_rows integer; v_sort_order integer; begin select count(*) into v_num_rows from wf_transition_attribute_map where workflow_key = p_workflow_key and transition_key = p_transition_key and attribute_id = p_attribute_id; if v_num_rows > 0 then return; end if; if p_sort_order is null then select coalesce(max(sort_order)+1, 1) into v_sort_order from wf_transition_attribute_map where workflow_key = p_workflow_key and transition_key = p_transition_key; else v_sort_order := p_sort_order; end if; insert into wf_transition_attribute_map ( workflow_key, transition_key, attribute_id, sort_order ) values ( p_workflow_key, p_transition_key, p_attribute_id, v_sort_order ); return 0; end;$$ language plpgsql; -- -- workflow__add_trans_attribute_map/4 -- create or replace function workflow__add_trans_attribute_map( character varying, character varying, character varying, integer ) returns int4 as $$ declare p_workflow_key alias for $1; p_transition_key alias for $2; p_attribute_name alias for $3; p_sort_order alias for $4; v_attribute_id integer; begin select attribute_id into v_attribute_id from acs_attributes where object_type = p_workflow_key and attribute_name = p_attribute_name; perform workflow__add_trans_attribute_map ( p_workflow_key, p_transition_key, v_attribute_id, p_sort_order ); return 0; end;$$ language plpgsql;