Foren

use of <fork> tag in Kaleo workflow

thumbnail
Sagar A Vyas, geändert vor 13 Jahren.

use of <fork> tag in Kaleo workflow

Liferay Master Beiträge: 679 Beitrittsdatum: 17.04.09 Neueste Beiträge
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, geändert vor 13 Jahren.

RE: use of <fork> tag in Kaleo workflow

Liferay Master Beiträge: 679 Beitrittsdatum: 17.04.09 Neueste Beiträge
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, geändert vor 13 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 17 Beitrittsdatum: 04.10.10 Neueste Beiträge
how is one of the two transitions selected in a fork?
how to join from forks?
thumbnail
Sagar A Vyas, geändert vor 13 Jahren.

RE: use of <fork> tag in Kaleo workflow

Liferay Master Beiträge: 679 Beitrittsdatum: 17.04.09 Neueste Beiträge
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, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

Junior Member Beiträge: 53 Beitrittsdatum: 05.02.11 Neueste Beiträge
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, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

Liferay Master Beiträge: 679 Beitrittsdatum: 17.04.09 Neueste Beiträge
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, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 10 Beitrittsdatum: 19.07.11 Neueste Beiträge
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, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 4 Beitrittsdatum: 05.09.10 Neueste Beiträge
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>
tobe tiny301, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beitrag: 1 Beitrittsdatum: 17.08.11 Neueste Beiträge
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, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

Regular Member Beiträge: 226 Beitrittsdatum: 13.02.08 Neueste Beiträge
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, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 4 Beitrittsdatum: 05.09.10 Neueste Beiträge
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, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

Regular Member Beiträge: 226 Beitrittsdatum: 13.02.08 Neueste Beiträge
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, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 4 Beitrittsdatum: 05.09.10 Neueste Beiträge
It's work .
Thank you ,Arvind. Thank you very much.
krishna kumar, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 9 Beitrittsdatum: 03.09.10 Neueste Beiträge
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, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 15 Beitrittsdatum: 12.01.12 Neueste Beiträge
Hi Jake,

i try your example, but i never come to the State approve. How you fix it?
thumbnail
Jake Kuang, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 4 Beitrittsdatum: 05.09.10 Neueste Beiträge
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, geändert vor 12 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 15 Beitrittsdatum: 12.01.12 Neueste Beiträge
Hi Jake,

that will be great, thanks a lot!
thumbnail
Vishal Panchal, geändert vor 11 Jahren.

RE: use of <fork> tag in Kaleo workflow

Expert Beiträge: 289 Beitrittsdatum: 20.05.12 Neueste Beiträge
Hi All,

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

Thanks & Regards,
Vishal R. Panchal
Enrico Maria Rossi, geändert vor 11 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 22 Beitrittsdatum: 15.01.13 Neueste Beiträge
Hi, is it possible assign-to a list of users?, With kaleo i can assign-to only one user. Thanks.

Enrico
Bhargav reddy, geändert vor 10 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 2 Beitrittsdatum: 24.04.13 Neueste Beiträge
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, geändert vor 8 Jahren.

RE: use of <fork> tag in Kaleo workflow

New Member Beiträge: 9 Beitrittsdatum: 06.11.13 Neueste Beiträge
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, geändert vor 10 Jahren.

RE: use of <fork> tag in Kaleo workflow

Junior Member Beiträge: 51 Beitrittsdatum: 29.01.13 Neueste Beiträge
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