{docbook}
    <highlights>
	<itemizedlist>
		<listitem>
			<para><link linkend="Platform_User_Guide.Organize_Content.Manage_Workflows.Holiday_Process">Holiday process</link></para>
			<para>Introduction to a sample Holiday process, and steps to request a task related to your holiday and to manage this process.</para>
		</listitem>
		<listitem>
			<para><link linkend="Platform_User_Guide.Organize_Content.Manage_Workflows.Pay_ray_process">Pay raise process</link></para>
			<para>Introduction to a sample Pay raise process, steps to create and manage this process.</para>
		</listitem>
		<listitem>
			<para><link linkend="Platform_User_Guide.Organize_Content.Manage_Workflows.Upload_Process">Upload a process</link></para>
			<para>Steps to upload a new process that is for administrators.</para>
		</listitem>
		<listitem>
			<para><link linkend="Platform_User_Guide.Organize_Content.Manage_Workflows.View_Process_Detail">View process detail</link></para>
			<para>Instructions on how to keep track of process details.</para>
		</listitem>
    </itemizedlist>
</highlights>
{docbook}

{docbook}
<note>
<para>
Two portlets, including <emphasis role="bold">Workflow Controller</emphasis> and <emphasis role="bold">Workflow Administration</emphasis>, are deprecated in eXo Platform. They remain fully supported for eXo customers, however they will not receive any enhancement and will be removed from the product scope in the future.
</para>
</note>
{docbook}

*Workflow* is the movement of documents and/or tasks through a work process. More specifically, workflow is the operational aspect of a work procedure: how tasks are structured, who performs them, what their relative order is, how they are synchronized, how information flows to support the tasks and how tasks are being tracked. As the dimension of time is considered in Workflow, Workflow considers "throughput" as a distinct measure. Workflow problems can be modeled and analyzed using graph-based formalisms like Petri nets.

eXo Platform supports two default processes that are used to request tasks from users:

* *Holiday process*: This process is used to request a task related to your holiday. If you want to have a holiday in a time interval, you should use this process.

* *Pay raise process*: This process is used when you want to propose raising your pay.

{docbook}
<para>To perform these processes, you need to add the <emphasis role="bold">Workflow Controller</emphasis> portlet to a specific page by dragging and dropping it from
 <menuchoice>
 <guimenu>Page Editor</guimenu>
 <guisubmenu>Applications</guisubmenu>
 <guisubmenu> Workflow</guisubmenu>
 <guimenuitem>Workflow Controller</guimenuitem>
 </menuchoice>
to the main pane. This can be done when <link linkend="sect-User_Guide-Page_Creation_Wizard">creating a new page</link> or <link linkend="sect-User_Guide-Manage_Pages-Edit_a_Page">editing an existing page</link> or <link linkend="proc-User_Guide-Manage_Portals-Edit_Layout">editing the layout of a portal</link>.
</para>
{docbook}
!images/Workflow/workflow_controller_dagdrop.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para>
<prompt>
    <emphasis role="bold">See also</emphasis>
</prompt>
</para>
{docbook}

* [Structure content|#Platform_User_Guide.Organize_Content.Structure_Content]
* [Manage content|#Platform_User_Guide.Organize_Content.Manage_Content]
* [Manage newsletter|#Platform_User_Guide.Organize_Content.Newsletter]

h1. Holiday process{anchor:id=Platform_User_Guide.Organize_Content.Manage_Workflows.Holiday_ProcessRoleNotInToc}
This process is used to request a task related to your holiday. If you want to have a holiday in a time interval, you should use this process.

{docbook}
<para xml:id="Platform_User_Guide.Organize_Content.Manage_Workflows.Create_Holiday_Process">
<citetitle>
<emphasis role="bold">
Create a holiday process
</emphasis>
</citetitle>
</para>
{docbook}

{docbook}
<para>
 <emphasis role="bold">1.</emphasis> Select the <guilabel>BP Definition Controller</guilabel> tab to bring up the process list.
</para>
{docbook}

!images/Workflow/BPdefinitionController.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!
{docbook}
<para>
            <emphasis role="bold">2.</emphasis> Open the <guilabel>Task Management</guilabel> form by clicking <inlinemediaobject>
              <imageobject role="fo">
                <imagedata fileref="images/Workflow/set_up1.png" format="PNG" scalefit="1" width="4mm"/>
              </imageobject>
              <imageobject role="html">
                <imagedata fileref="images/Workflow/set_up1.png" format="PNG" scalefit="0" width="4mm"/>
              </imageobject>
            </inlinemediaobject> in accordance with a holiday process that you want to request a task as below.
</para>
{docbook}
!images/Workflow/task_manager1.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

In which:
{docbook}
<itemizedlist>
            <listitem>
              <para>
                <guilabel>Start (dd/mm/yyyy)</guilabel> is the start date of your holiday.</para>
            </listitem>
            <listitem>
              <para>
                <guilabel>End (dd/mm/yyyy)</guilabel> is the end date of your holiday.</para>
            </listitem>
</itemizedlist>
{docbook}

{docbook}
<para>In this form, you need to set a time interval in the <guilabel>Start</guilabel> and <guilabel>End</guilabel> field by moving your cursor to each field, then click each field to open the <guilabel>Calendar</guilabel> pop-up.</para>
{docbook}

!images/Workflow/task_manager_request|align="center" width="100mm" fo:scalefit="1" html:scalefit="0"!

In which:
{docbook}
<itemizedlist>
            <listitem>
              <para>
                <guilabel>Start (dd/mm/yyyy)</guilabel> is the start date of your holiday.</para>
            </listitem>
            <listitem>
              <para>
                <guilabel>End (dd/mm/yyyy)</guilabel> is the end date of your holiday.</para>
            </listitem>
</itemizedlist>
{docbook}

{docbook}
<para>
In this form, you need to set a time interval in the <guilabel>Start</guilabel> and <guilabel>End</guilabel> field by moving your cursor to each field, then click each field to open the <guilabel>Calendar</guilabel> pop-up.
</para>
{docbook}
!images/Workflow/task_manager_request|align="center" width="100mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para>
<emphasis role="bold">3.</emphasis> Submit your task by clicking the <guibutton>Submit</guibutton> button. After being submitted, this task will be sent to members of <emphasis role="italic">*:/organization/management/executive-board</emphasis> group for waiting to be approved/disapproved or refused.
</para>
{docbook}
After being submitted, this task will be sent to members of _\*:/organization/management/executive-board_ group for waiting to be approved/disapproved or refused.

{docbook}
<para xml:id="Platform_User_Guide.Organize_Content.Manage_Workflows.Manage_Process">
<citetitle>
<emphasis role="bold">
Manage a holiday process
</emphasis>
</citetitle>
</para>
{docbook}

If you are a member of _\*:/organization/management/executive-board_ group, you have a responsibility to evaluate received tasks. To take this action, do as follows:

{docbook}
<para>
<emphasis role="bold">1.</emphasis> Open the <emphasis role="bold">Workflow Controller</emphasis> portlet. If there are tasks pending to be evaluated, you will see the task list in <guilabel>Task Controller</guilabel> tab.
</para>
{docbook}
!images/Workflow/task_controller.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para>
<emphasis role="bold">2.</emphasis> Click the <guilabel>Manage</guilabel> function in the <guilabel>Action</guilabel> column that corresponds to a task that you want to evaluate. The <guilabel>Task Management</guilabel> form will appear.
</para>
{docbook}

!images/Workflow/task_management.png|align="center" width="100mm" fo:scalefit="1" html:scalefit="0"!

You can see the following dialog for more details about this process.

!images/Workflow/process_dialog.png|align="center" width="100mm" fo:scalefit="1" html:scalefit="0"!

*3.* Do one of the following actions.

* If you agree with the period proposed by the user in the received task:
{docbook}
<para>
<emphasis role="bold">i.</emphasis> Click the <guibutton>Approve</guibutton> button on the <guilabel>Task Management</guilabel> form. Automatically, this task will be sent to members of <emphasis>*:/organization/management/human-resources</emphasis> to read it.
</para>
{docbook}
Thus, if you are a member of _\*:/organization/management/human-resources_ group, you have responsibility to read the approved tasks as below.

!images/Workflow/hr_holiday.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para>
<emphasis role="bold">ii.</emphasis> Select the <guilabel>Manage</guilabel> function in the <guilabel>Action</guilabel> column to open the <guilabel>Task Management</guilabel> form.
</para>
{docbook}

!images/Workflow/task_management1.png|align="center" width="100mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para><emphasis role="bold">iii.</emphasis> Click the <guibutton>Read</guibutton> button to accept reading the task.</para>
{docbook}

{docbook}
<itemizedlist>
            <listitem>
              <para>If you do not agree with the period proposed, click the <guibutton>Disapprove</guibutton> button on the <guilabel>Task Management</guilabel> form. This task will be sent to the creator of this task to modify it again.</para>
              <itemizedlist>
                <listitem>
                  <para>If the creator agrees to modify the period of time and click the <guibutton>Modify</guibutton> button, this task will be sent to members of <emphasis role="italic">*:/organization/management/human-resources</emphasis> again to manage it.</para>
                </listitem>
                <listitem>
                  <para>If the creator does not agree to modify the period of time and click the <guibutton>Disagree</guibutton> button, the task is not existed.</para>
                </listitem>
              </itemizedlist>
            </listitem>
            <listitem>
              <para>If you do not agree with this task, click the <guibutton>Refuse</guibutton> button on the <guilabel>Task Management</guilabel> form. This task will be removed.</para>
            </listitem>
</itemizedlist>
{docbook}


h1. Pay raise process{anchor:id=Platform_User_Guide.Organize_Content.Manage_Workflows.Pay_ray_processRoleNotInToc}
This process is used when you want to propose raising your pay.

{docbook}
<para xml:id="Platform_User_Guide.Organize_Content.Manage_Workflows.Request_pay_raise">
<citetitle>
<emphasis role="bold">
Create a pay raise process
</emphasis>
</citetitle>
</para>
{docbook}

{docbook}
<para><emphasis role="bold">1.</emphasis> Select the <guilabel>BP Definition Controller</guilabel> tab to bring up the processes list. </para>
{docbook}

{docbook}
<para><emphasis role="bold">2.</emphasis> Open the <guilabel>Task Management</guilabel> form by clicking
 <inlinemediaobject>
            <imageobject>
              <imagedata fileref="images/Workflow/set_up1.png" format="PNG" scalefit="1" width="4mm"/>
            </imageobject>
          </inlinemediaobject>
         that corresponds to a pay raise process which you want to request a task.
</para>
{docbook}

!images/Workflow/Request_payraise.png|align="center" width="100mm" fo:scalefit="1" html:scalefit="0"!

*Details:*

|| Field || Description ||
| *Amount* | The amount of money that you want to request.|
| *Priority* | The priority level of this task. It may be: not important, important or critical. |
| *Rewarded* | The amount of money that you requested including reward or not. |
| *Reason* | The reason why you want to request this amount. |

*3.* Enter values for fields in the form.

{docbook}
<para>
<emphasis role="bold">4.</emphasis> Click the <guibutton>Submit</guibutton> button to submit your task.
</para>
{docbook}
This task will be sent to members of the _\*:/organization/management/executive-board_ group that manage it.

{docbook}
<para xml:id="Platform_User_Guide.Organize_Content.Manage_Workflows.Manage_pay_raise">
<citetitle>
<emphasis role="bold">
Manage a pay raise process
</emphasis>
</citetitle>
</para>
{docbook}

If you are a member of _\*:/organization/management/executive-board_ group, you have a responsibility to evaluate received tasks. To do this action, do as follows:

{docbook}
<para>
<emphasis role="bold">1.</emphasis> Go to the <emphasis role="bold">Workflow Controller</emphasis> page. If there are tasks which are pending for evaluation, you will see the tasks list in the <guilabel>Task Controller</guilabel> tab.
</para>
{docbook}
!images/Workflow/taskcontroller_evaluate_payraise.png|width="150mm" fo:scalefit="1" html:scalefit="0" align="center"!

{docbook}
<para>
<emphasis role="bold">2.</emphasis> Click the <guilabel>Manage</guilabel> function in the <guilabel>Action</guilabel> column that corresponds to a task which you want to evaluate. The <guilabel>Task Management</guilabel> form will appear.
</para>
{docbook}

!images/Workflow/evaluate_payraise.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

*3.* Select one of the followings.

* If you agree with the number that the creator proposes:
{docbook}
<para>
<emphasis role="bold">i.</emphasis> Input the number that the creator wants in the <guilabel>Grant</guilabel> field.
</para>
{docbook}

{docbook}
<para>
<emphasis role="bold">ii.</emphasis> Click the <guibutton>Grant</guibutton> button. Automatically, this task will be sent to members of <emphasis>*:/organization/management/human-resources</emphasis> to read it.
</para>
{docbook}

{docbook}
<para>
Thus, if you are a member of the <emphasis>*:/organization/management/human-resources</emphasis> group, you have responsibility to read the approved tasks in the <guilabel>Task Controller</guilabel> tab by <emphasis>*:/organization/management/executive-board</emphasis> as below.
</para>
{docbook}
!images/Workflow/hr_payraise.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para>
<emphasis role="bold">iii.</emphasis> Select the <guilabel>Manage</guilabel> function in the <guilabel>Action</guilabel> column to open the <guilabel>Task Management</guilabel> form.
</para>
{docbook}

!images/Workflow/update_salary.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para>
<emphasis role="bold">iv.</emphasis> Click <guibutton>Finish it</guibutton> to accept reading the task.
</para>
{docbook}

{docbook}
<para> If you do not agree with this request, click the <guibutton>Deny</guibutton> button. This request will be removed.</para>
{docbook}

h1. Upload a process{anchor:id=Platform_User_Guide.Organize_Content.Manage_Workflows.Upload_ProcessRoleNotInToc}
Besides two default process supported by system, administrators also can upload a new process as follows:

{docbook}
<para>
<emphasis role="bold">1.</emphasis> Add the <emphasis role="bold">Workflow Administration</emphasis> portlet to a specific page by dragging and dropping it from
<menuchoice> <guimenu>Page Editor</guimenu> <guisubmenu>Applications</guisubmenu> <guisubmenu>Workflow</guisubmenu> <guimenuitem>Workflow Administration</guimenuitem></menuchoice> to the main pane. This can be done when <link linkend="sect-User_Guide-Page_Creation_Wizard">creating a new page</link> or <link linkend="sect-User_Guide-Manage_Pages-Edit_a_Page">editing an existing page</link> or <link linkend="proc-User_Guide-Manage_Portals-Edit_Layout">editing the layout of a portal</link>.
</para>
{docbook}
!images/Workflow/workflow_administration_dagdrop.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

*2.* Open the *Workflow Administration* portlet.

!images/Workflow/workflow_administration.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para>
<emphasis role="bold">3.</emphasis> Click <guilabel>Upload Process</guilabel> to open the <guilabel>Upload Process</guilabel> form.
</para>
{docbook}
!images/Upload_Process_form.png|align="center" width="100mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para>
<emphasis role="bold">4.</emphasis> Enter a name for the uploaded process in the <guilabel>Name</guilabel> field.
</para>
{docbook}

{docbook}
<para>
<emphasis role="bold">5.</emphasis> Click the <guibutton>Browse</guibutton> button to select the location which contains the configuration of a new process, then double-click to upload it.
</para>
{docbook}

{docbook}
<para>
<emphasis role="bold">6.</emphasis> Click <guibutton>Save</guibutton> to save the uploaded process.
</para>
{docbook}

h1. View process detail{anchor:id=Platform_User_Guide.Organize_Content.Manage_Workflows.View_Process_DetailRoleNotInToc}
This function is used to help administrators keep track of process details as follows:

*1.* Open the *Workflow Administration* portlet.

!images/Workflow/view_process_detail.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

*2.* Click !images/Workflow/view-icon1.png|width="4mm" fo:scalefit="1" html:scalefit="0"! to view requested process list from users as below.

!images/Workflow/Process_Detail.png|align="center" width="120mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<note>
<para>
The completed processes are listed in the <guilabel>Completed</guilabel> tab.
</para>
<para>
To remove all completed processes from the list in the <guilabel>Completed</guilabel> tab, click the <guibutton>Flush All</guibutton> button, then click <guibutton>OK</guibutton> in the confirmation message.
</para>
</note>
{docbook}

{docbook}
<para>
<emphasis role="bold">3.</emphasis> Click <inlinemediaobject>
            <imageobject role="fo">
              <imagedata fileref="images/Workflow/view-icon1.png" format="PNG" scalefit="1" width="4mm"/>
            </imageobject>
            <imageobject role="html">
              <imagedata fileref="images/Workflow/view-icon1.png" format="PNG" scalefit="0" width="4mm"/>
            </imageobject>
          </inlinemediaobject> corresponding to your desired process to view its details (including all actions from different users on this task). The <guilabel>List Tasks of Instance</guilabel> form will appear.
</para>
{docbook}
!images/Workflow/list_task_instance.png|align="center" width="120mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para>To delete a process from the requested process list in the <guilabel>Process Detail</guilabel> form, click <inlinemediaobject>
            <imageobject role="fo">
              <imagedata fileref="images/Delete_icon.png" format="PNG" scalefit="1" width="4mm"/>
            </imageobject>
            <imageobject role="html">
              <imagedata fileref="images/Delete_icon.png" format="PNG" scalefit="0" width="4mm"/>
            </imageobject>
          </inlinemediaobject>
          corresponding to that process.
</para>
{docbook}