|
7 registered users in last 24 hours Absence Workflow Configuration
]po[ Workflow provides highly flexible configuration options for permission settings that are based on current workflow status and user permissions.
Abb.: Absence Workflow Panel Default configuration for the EDIT button is as follows (im_absence_new_page_wf_perm_edit_button):
Whereas permission table "im_absence_new_page_wf_perm_table" contains (by default) the following data structure to define the permissions:
Stored to procedure to set Dynfield 'Comments' with comments made by approverCREATE OR REPLACE FUNCTION im_absence__add_comment(integer, character varying, character varying)
RETURNS integer AS
$BODY$
declare
p_case_id alias for $1;
p_transition_key alias for $2;
p_custom_arg alias for $3;
v_task_id integer; v_case_id integer;
v_creation_ip varchar; v_user_id integer;
v_creation_user integer;
v_object_id integer; v_object_type varchar;
v_journal_id integer;
v_transition_key varchar; v_workflow_key varchar;
v_group_id integer; v_group_name varchar;
v_task_owner integer;
v_absence_id integer;
v_description text;
v_msg text;
v_object_name text;
v_locale text;
v_action_pretty text;
begin
RAISE NOTICE 'im_absence__add_comment: enter - p_case_id=%, p_transition_key=%, p_custom_arg=%', p_case_id, p_transition_key, p_custom_arg;
-- Select out some frequently used variables of the environment
select c.object_id, c.workflow_key, co.creation_user, task_id, c.case_id, co.object_type, co.creation_ip
into v_object_id, v_workflow_key, v_creation_user, v_task_id, v_case_id, v_object_type, v_creation_ip
from wf_tasks t, wf_cases c, acs_objects co
where c.case_id = p_case_id
and c.case_id = co.object_id
and t.case_id = c.case_id
and t.workflow_key = c.workflow_key
and t.transition_key = p_transition_key;
-- set absence_id
v_absence_id := v_object_id;
RAISE NOTICE 'im_absence__add_comment: v_absence_id:% ', v_absence_id;
select owner_id, description
into v_user_id, v_description
from im_user_absences
where absence_id = v_absence_id;
-- get owner locale
select language_preference into v_locale
from user_preferences
where user_id = v_user_id;
IF v_locale IS NULL THEN
v_locale := 'en_US';
RAISE NOTICE 'im_absence__add_comment: Missing language_preference for user_id:%', v_user_id;
END IF;
-- get comment
v_action_pretty := p_custom_arg || ' finish';
select msg into v_msg from journal_entries where object_id = v_case_id and action_pretty = v_action_pretty;
-- RAISE NOTICE 'im_absence__add_comment: msg:% from action_pretty:% and absence_id:%', v_msg, v_action_pretty, v_absence_id;
-- v_description := v_description || '\n\n' || acs_lang_lookup_message(v_locale, 'intranet-core', 'Comment') || ':\n\n' || v_msg;
-- RAISE NOTICE 'im_absence__add_comment: New description:%', v_description;
update im_user_absences set comments = v_msg where absence_id = v_absence_id;
return 0;
end;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
|
