]project-open[ : @This Wiki
Portrait

Welcome, Unregistered Visitor

 · · · Index · Login/Register

Contents





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.

The availability of buttons DELETE/EDIT of the Absence Workflow Panel is set by a function as defined in the following parameters:

  • AbsenceNewPageWfEditButtonPerm (default: im_absence_new_page_wf_perm_edit_button) and
  • AbsenceNewPageWfDeleteButtonPerm (default: im_absence_new_page_wf_perm_delete_button)
 Absence Workflow Panel

                                                                                          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:

im_absence_new_page_wf_perm_table­

Stored to procedure to set Dynfield 'Comments' with comments made by approver

CREATE 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;


Please take a moment to complete this form to help us improve our service.

Did this page help you to achieve your goal?

 Yes  No  Don't know

Please provide us with comments to improve this page:

How useful is the information?

 1  2  3  4  5
Not
useful
      Extremely
useful
 
Privacy Policy