Foros de discusión

use of <fork> tag in Kaleo workflow

thumbnail
Sagar A Vyas, modificado hace 13 años.

use of <fork> tag in Kaleo workflow

Liferay Master Mensajes: 679 Fecha de incorporación: 17/04/09 Mensajes recientes
Hi Everyone,

I need to know how to use fork-join tag in xml definition with proper syntax.

or

If any live sample xml-definition (same as single-approver-definition.xml) which contains <fork> and <join> tags will really appreciable.


Thanks,
Sagar Vyas
CIGNEX
thumbnail
Sagar A Vyas, modificado hace 13 años.

RE: use of <fork> tag in Kaleo workflow

Liferay Master Mensajes: 679 Fecha de incorporación: 17/04/09 Mensajes recientes
Hi Friends,

I have just gone through the .xsd description for Kaleo Workflow and I have found following way to use of <fork> tag in costume definition.



<workflow-definition>
        <name></name>
        <description>  </description>
        <version> </version>
     		<state>
			<name>created</name>
			<initial>true</initial>
			<transitions>	
				<transition>
					<name>phase1</name>
                    [b]<target>TestingFork</target>[/b]
					<default>true</default>
				</transition>
			</transitions>
		</state>
	<fork>
        [b]<name>TestingFork</name>[/b]
		<transitions>
			<transition>
				<name>review</name>
				<target>approval_one</target>
				<default>true</default>
			</transition>
			<transition>
				<name>reviewtwo</name>
				<target>approval_two</target>
				<default>true</default>
			</transition>
		</transitions>
	</fork>	
</workflow-definition>
[/size]



Hope this will help people like me emoticon


Thanks,
Sagar Vyas
CIGNEX
thumbnail
Sheikh Sajid, modificado hace 13 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 17 Fecha de incorporación: 4/10/10 Mensajes recientes
how is one of the two transitions selected in a fork?
how to join from forks?
thumbnail
Sagar A Vyas, modificado hace 13 años.

RE: use of <fork> tag in Kaleo workflow

Liferay Master Mensajes: 679 Fecha de incorporación: 17/04/09 Mensajes recientes
Hi Sajid,

Here is answers of you Questions.


Question 1) How is one of the two transitions selected in a fork?


Ans : We uses fork for parallel transitions. both transition is execute parallel.so no worry about which one will be executed first or which one will be executed last emoticon

Question 2) How to join from forks?


Ans :


<workflow-definition>
	<fork>
        [b]<name>TestingFork</name>[/b]
		<transitions>
			<transition>
				<name>review</name>
				<target>approval_one</target>
				<default>true</default>
			</transition>
			<transition>
				<name>reviewtwo</name>
				<target>approval_two</target>
				<default>true</default>
			</transition>
		</transitions>
	</fork>	
	<task>
		<name>approval_one</name>
		<actions></actions>
		<assignments></assignments>
		<transitions>
			<transition>
				<name>result</name>
				<target>[color=#F52153]join_task[/color]</target>
				<default>true</default>
			</transition>
		</transitions>
	</task>
	<task>
		<name>approval_two</name>
		<actions></actions>
		<assignments>	</assignments>
		<transitions>
			<transition>
				<name>result</name>
				<target>[color=#F52153]join_task[/color]</target>
				<default>true</default>
			</transition>
		</transitions>
	</task>
        <join>
               <name>[color=#F52153]join_task[/color]<name>
               <actions></actions>
	       <transitions>
			<transition>
				<name>result</name>
				<target>[color=#C42AE9]final_approval_task[/color]</target>
				<default>true</default>
			</transition>
		</transitions> 
         </name></name></join>
         <task>
		<name>[color=#C42AE9]final_approval_task[/color]</name>
		<actions></actions>
		<assignments></assignments>
		<transitions>
			<transition>
				<name>approve</name>
				<target>approved</target>
				<default>true</default>
			</transition>
			<transition>
				<name>reject</name>
				<target>update</target>
				<default>false</default>
			</transition>
		</transitions>
	</task>
</workflow-definition>
[/size]



So,as mention in above xml file fork will execute two transitions (approval_one & approval_two) parallel and from there they both call join_task so unless and until both task responds will not come it will wait and once both response will arrive it will execute next task (final_approval_task).

Hope you will get your answers.

Best luck.


Thanks,
Sagar Vyas
CIGNEX
Bradai Salma, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

Junior Member Mensajes: 53 Fecha de incorporación: 5/02/11 Mensajes recientes
Hi Sagar,
thanks for your clarifications,but i want to know what version of Liferay have you used?
in fact i'm using Liferay-6.0.5 and i have a problem(an error occure when i browse my xml file) when i use <fork> and <join> although i have followed what you have put in this forms.
this is my xml file:
<?xml version="1.0" encoding="UTF-8"?>

<workflow-definition
xmlns="urn:liferay.com:liferay-workflow_6.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:liferay.com:liferay-workflow_6.0.0 http://www.liferay.com/dtd/liferay-workflow-definition_6_0_0.xsd"
>
<name>test</name>
<description>de forum</description>
<version>1</version>
<state>
<name>CREATED</name>
<initial>true</initial>
<transitions>
<transition>
<name>phase</name>
<target>TestingFork</target>
<default>true</default>
</transition>
</transitions>
</state>
<task>
<name>update</name>
<assignments>
<user />
</assignments>
<transitions>
<transition>
<name>resubmit</name>
<target>TestingFork</target>
<default>true</default>
</transition>
</transitions>
</task>
<fork>
<name>TestingFork</name>
<transitions>
<transition>
<name>review</name>
<target>approval_one</target>
<default>true</default>
</transition>
<transition>
<name>reviewtwo</name>
<target>approval_two</target>
<default>true</default>
</transition>
</transitions>
</fork>
<task>
<name>approval_one</name>
<actions></actions>
<assignments>
<roles>
<role>
<role-type>organization</role-type>
<name>Organization Administrator</name>
</role>
<role>
<role-type>organization</role-type>
<name>Organization Owner</name>
</role>
<role>
<role-type>organization</role-type>
<name>Approval one</name>
</role>
</roles>
</assignments>
<transitions>
<transition>
<name>result</name>
<target>join_task</target>
<default>true</default>
</transition>
</transitions>
</task>
<task>
<name>approval_two</name>
<actions></actions>
<assignments>
<roles>
<role>
<role-type>organization</role-type>
<name>Organization Administrator</name>
</role>
<role>
<role-type>organization</role-type>
<name>Organization Owner</name>
</role>
<role>
<role-type>organization</role-type>
<name>approval_two</name>
</role>
</roles>
</assignments>
<transitions>
<transition>
<name>result</name>
<target>join_task</target>
<default>true</default>
</transition>
</transitions>
</task>
<join>
<name>join_task<name>
<actions></actions>
<transitions>
<transition>
<name>result</name>
<target>final_approval_task</target>
<default>true</default>
</transition>
</transitions>
</join>
<task>
<name>final_approval_task</name>
<actions></actions>
<assignments>
<roles>
<role>
<role-type>organization</role-type>
<name>Organization Administrator</name>
</role>
<role>
<role-type>organization</role-type>
<name>Organization Owner</name>
</role>
<role>
<role-type>organization</role-type>
<name>final approval</name>
</role>
</roles>
</assignments>
<transitions>
<transition>
<name>approve</name>
<target>APPROVED</target>
<default>true</default>
</transition>
<transition>
<name>reject</name>
<target>update</target>
<default>false</default>
</transition>
</transitions>
</task>
<state>
<name>APPROVED</name>
<actions>
<action>
<name>Approve Asset</name>
<execution-type>onEntry</execution-type>
<script>
<![CDATA[
Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("approved"), workflowContext);
]]>
</script>
<script-language>javascript</script-language>
</action>
</actions>
</state>
</workflow-definition>
thumbnail
Sagar A Vyas, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

Liferay Master Mensajes: 679 Fecha de incorporación: 17/04/09 Mensajes recientes
Hi Salma,

I have used same version as you mentioned,

Would you please attached xml file with forum so i can understand more from that.

Thanks,
Sagar Vyas
CIGNEX
thumbnail
Jakob Fahrner, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 10 Fecha de incorporación: 19/07/11 Mensajes recientes
Hi all,

I have tried to add an example workflow implementation with fork and join my LifeRay version (CE 6.0.6)
Unfortunately everytime I upload the xml file and say save there occurs an error:
No specific error it's simply shows "ERROR" as in the attached image (nothing in the tomcat logs either)

If I try to upload a simple workflow definition without fork or join everything works fine.
I checked my workflow defenition code several times and didn't found an error
For checking purpose I used the dtd from http://www.liferay.com/dtd/liferay-workflow-definition_6_0_0.xsd

After some testing I figured out that the workflow definiton works if I simply comment out the join and put the targets of the tasks before to the next one.
The bad thing is when one of the tasks prevesouly pointing to the join is submitted the final task is available (didn't wait for the second to finish)
So in my opinion the error has to be somewhere at the join

My code for the join

<join>
        <name>join_task<name>
        <transitions>
            <transition>
                <name>result</name>
                <target>final_approval_task</target>
            </transition>
        </transitions>
    </name></name></join>


If you have any idea or help I would be really happy
The two workflow-definition xml files are attached. (one with join not working, and one without working but not properly)
thumbnail
jake kuang, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 4 Fecha de incorporación: 5/09/10 Mensajes recientes
me too. can not import the workflow-definition which has the Label <Fork> and <Join>.

the code of the definition as follow....

<?xml version="1.0" encoding="UTF-8"?>

<workflow-definition
xmlns="urn:liferay.com:liferay-workflow_6.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:liferay.com:liferay-workflow_6.0.0 http://www.liferay.com/dtd/liferay-workflow-definition_6_0_0.xsd"
>
<name>Some Approvers Test</name>
<description>None.</description>
<version>1</version>
<state>
<name>created</name>
<initial>true</initial>
<transitions>
<transition>
<name>review</name>
<target>review</target>
<default>true</default>
</transition>
</transitions>
</state>
<task>
<name>update</name>
<actions>
</actions>
<assignments>
<user />
</assignments>
<transitions>
<transition>
<name>resubmit</name>
<target>review</target>
<default>true</default>
</transition>
</transitions>
</task>
<task>
<name>review</name>
<actions>
</actions>
<assignments>
<roles>
<role>
<role-type>regular</role-type>
<name>Tester A</name>
</role>
<role>
<role-type>regular</role-type>
<name>Administrator</name>
</role>
</roles>
</assignments>
<transitions>
<transition>
<name>approve</name>
<target>fork_task</target>
<default>true</default>
</transition>
<transition>
<name>reject</name>
<target>update</target>
<default>false</default>
</transition>
</transitions>
</task>

<fork>
<name>fork_task</name>
<transitions>
<transition>
<name>reviewone</name>
<target>approve11</target>
<default>true</default>
</transition>
<transition>
<name>reviewtwo</name>
<target>approve12</target>
<default>true</default>
</transition>
</transitions>
</fork>

<task>
<name>approve11</name>
<actions>
</actions>
<assignments>
<roles>
<role>
<role-type>regular</role-type>
<name>Tester B</name>
</role>
<role>
<role-type>regular</role-type>
<name>Administrator</name>
</role>
</roles>
</assignments>
<transitions>
<transition>
<name>approve</name>
<target>join_task</target>
<default>true</default>
</transition>
<transition>
<name>reject</name>
<target>update</target>
<default>false</default>
</transition>
</transitions>
</task>

<task>
<name>approve12</name>
<actions>
</actions>
<assignments>
<roles>
<role>
<role-type>regular</role-type>
<name>Tester B</name>
</role>
<role>
<role-type>regular</role-type>
<name>Administrator</name>
</role>
</roles>
</assignments>
<transitions>
<transition>
<name>approve</name>
<target>join_task</target>
<default>true</default>
</transition>
<transition>
<name>reject</name>
<target>update</target>
<default>false</default>
</transition>
</transitions>
</task>

<join>
<name>join_task<name>
<actions></actions>
<transitions>
<transition>
<name>result</name>
<target>approve2</target>
<default>true</default>
</transition>
</transitions>
</join>

<task>
<name>approve2</name>
<actions>
</actions>
<assignments>
<roles>
<role>
<role-type>regular</role-type>
<name>Tester C</name>
</role>
<role>
<role-type>regular</role-type>
<name>Administrator</name>
</role>
</roles>
</assignments>
<transitions>
<transition>
<name>approve</name>
<target>approved</target>
<default>true</default>
</transition>
<transition>
<name>reject</name>
<target>update</target>
<default>false</default>
</transition>
</transitions>
</task>
<state>
<name>approved</name>
<actions>
<action>
<name>approve</name>
<execution-type>onEntry</execution-type>
<script>
<![CDATA[
Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("approved"), workflowContext);
]]>
</script>
<script-language>javascript</script-language>
</action>
</actions>
</state>
</workflow-definition>

Archivos adjuntos:

tobe tiny301, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensaje: 1 Fecha de incorporación: 17/08/11 Mensajes recientes
This is also my problem. Anyone can give me an example with fork tag? I very tired to try to do it but it doesn't work. emoticon
thumbnail
Arvind Mishra, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

Regular Member Mensajes: 226 Fecha de incorporación: 13/02/08 Mensajes recientes
Task approval_one and approval_two both go to Join. Then Join goes to final approval and final approval can reject or approve the task.

What happens, if Approval One or Approval two itself want to reject the task.

How will that work

Thanks
thumbnail
jake kuang, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 4 Fecha de incorporación: 5/09/10 Mensajes recientes
the example as the attachment, but the liferay system reported me an erro when I imported the workflow-definition.xml

hope can help.
thumbnail
Arvind Mishra, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

Regular Member Mensajes: 226 Fecha de incorporación: 13/02/08 Mensajes recientes
Hi Jake

If you are using the attached XML for workflow defintion, then there is an error in this xml
At line 137, <name> tag is not closed


<join>
<name>join_task<name>
.....
.....
</name></name></join>


Could you please try same xml, after closing the name tag

-Arvind
thumbnail
jake kuang, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 4 Fecha de incorporación: 5/09/10 Mensajes recientes
It's work .
Thank you ,Arvind. Thank you very much.
krishna kumar, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 9 Fecha de incorporación: 3/09/10 Mensajes recientes
Hi all,

I have selected fork-join xml in the workflow configuration. If i create any blog it is in pending state. when i login as an administrator and gone through my tasks it is showing parllel approvals when i select two approvals for me it went to assign to me tab then if i approve both of that it didn't create any final approve task.

I think in the above case fork is executing successfully but join is not working. Can any body explain where can i find final approval.

Please explain the flow of <fork> <join>.

Thanks in advance.


Thanks & Regards,

krishna kumar
Paro Nasser, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 15 Fecha de incorporación: 12/01/12 Mensajes recientes
Hi Jake,

i try your example, but i never come to the State approve. How you fix it?
thumbnail
Jake Kuang, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 4 Fecha de incorporación: 5/09/10 Mensajes recientes
Paro Nasser:
Hi Jake,

i try your example, but i never come to the State approve. How you fix it?


hi Paro
I can import the workflow and let the approver on both sides of the fork catch the task by using that code.
as ups say, I lost the fork end label last time.
Paro Nasser, modificado hace 12 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 15 Fecha de incorporación: 12/01/12 Mensajes recientes
Hi Jake,

that will be great, thanks a lot!
thumbnail
Vishal Panchal, modificado hace 11 años.

RE: use of <fork> tag in Kaleo workflow

Expert Mensajes: 289 Fecha de incorporación: 20/05/12 Mensajes recientes
Hi All,

Thanks for your contribution.
Learnt a lot and saved my time too..

Thanks & Regards,
Vishal R. Panchal
Enrico Maria Rossi, modificado hace 11 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 22 Fecha de incorporación: 15/01/13 Mensajes recientes
Hi, is it possible assign-to a list of users?, With kaleo i can assign-to only one user. Thanks.

Enrico
Bhargav reddy, modificado hace 10 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 2 Fecha de incorporación: 24/04/13 Mensajes recientes
it works fine until fork but as soon as i approve one of the requests it jumps to update, and not final review. how to fix it ?? emoticon emoticon
yashika seth, modificado hace 8 años.

RE: use of <fork> tag in Kaleo workflow

New Member Mensajes: 9 Fecha de incorporación: 6/11/13 Mensajes recientes
Jake Kuang:
the example as the attachment, but the liferay system reported me an erro when I imported the workflow-definition.xml

hope can help.



Hello, Please help I'm unable to apply reject transition in fork.. it's very urgent please help. For one transition that is "approve" it's working fine but when am using two transitions it's causing problem emoticon
thumbnail
Pradip A Bhatt, modificado hace 10 años.

RE: use of <fork> tag in Kaleo workflow

Junior Member Mensajes: 51 Fecha de incorporación: 29/01/13 Mensajes recientes
Hello All....

I am using liferay version 6.1.1 CA GA2. I installed and used Kaleo workflow in liferay.
Kaleo provides just accept - reject states.

Now my requirement is like that i have to provide three state
1) Accept
2) Reject
3) Revise or Resubmit

So.. What i have to do??
Many friends suggests me to use JBPM.. I am very new in liferay.. I have no idea that what is JBPM.. but yes... if some one can direct me properly then i can do further.


Please Help me regarding this..
Thankssssssssssss in Advanceeeeeeeeeeee,,,,,,,,,,,

Pradip Bhatt