Forums

Home » Liferay Portal » English » 2. Using Liferay » General

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Rajmund Bocsi
Kaleo middle state
February 18, 2013 8:15 AM
Answer

Rajmund Bocsi

Rank: New Member

Posts: 3

Join Date: June 29, 2011

Recent Posts

Hello,

I try to create a simple workflow with Kaleo Forms for Java (in the Liferay Developer Studio). I use Liferay 6.1 EE GA2.

Here's the image:

http://s4.postimage.org/d7pf3se19/fork3.png

and the xml:

  1<?xml version="1.0" encoding="UTF-8"?>
  2<workflow-definition xmlns="urn:liferay.com:liferay-workflow_6.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:liferay.com:liferay-workflow_6.1.0 http://www.liferay.com/dtd/liferay-workflow-definition_6_1_0.xsd">
  3    <name>thefork</name>
  4    <version>1</version>
  5    <state>
  6        <name>created</name>
  7        <metadata><![CDATA[{"transitions":{"fork":{"bendpoints":[]}},"xy":[36,51]}]]></metadata>
  8        <actions>
  9            <action>
 10                <name>createAction</name>
 11                <script><![CDATA[/* specify action script */
 12
 13workflowContext.put("reject",false);]]></script>
 14                <script-language>groovy</script-language>
 15                <execution-type>onEntry</execution-type>
 16            </action>
 17        </actions>
 18        <initial>true</initial>
 19        <transitions>
 20            <transition>
 21                <name>fork</name>
 22                <target>fork</target>
 23            </transition>
 24        </transitions>
 25    </state>
 26    <state>
 27        <name>approved</name>
 28        <metadata><![CDATA[{"terminal":true,"xy":[760,90]}]]></metadata>
 29        <actions>
 30            <action>
 31                <name>approve</name>
 32                <script><![CDATA[Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("approved"), workflowContext);]]></script>
 33                <script-language>javascript</script-language>
 34                <execution-type>onEntry</execution-type>
 35            </action>
 36        </actions>
 37    </state>
 38    <task>
 39        <name>approve1</name>
 40        <metadata><![CDATA[{"transitions":{"approve":{"bendpoints":[]},"fork Join":{"bendpoints":[]},"reject":{"bendpoints":[]},"reject1":{"bendpoints":[]}},"xy":[340,220]}]]></metadata>
 41        <assignments>
 42            <roles>
 43                <role>
 44                    <role-type>regular</role-type>
 45                    <name>Approver</name>
 46                    <auto-create>true</auto-create>
 47                </role>
 48            </roles>
 49        </assignments>
 50        <transitions>
 51            <transition>
 52                <name>approve</name>
 53                <target>fork Join</target>
 54            </transition>
 55            <transition>
 56                <name>reject</name>
 57                <target>reject1</target>
 58            </transition>
 59        </transitions>
 60    </task>
 61    <task>
 62        <name>approve2</name>
 63        <metadata><![CDATA[{"transitions":{"approve":{"bendpoints":[]},"fork Join":{"bendpoints":[]},"reject":{"bendpoints":[]}},"xy":[400,21]}]]></metadata>
 64        <assignments>
 65            <roles>
 66                <role>
 67                    <role-type>regular</role-type>
 68                    <name>Approver</name>
 69                    <auto-create>true</auto-create>
 70                </role>
 71            </roles>
 72        </assignments>
 73        <transitions>
 74            <transition>
 75                <name>approve</name>
 76                <target>fork Join</target>
 77            </transition>
 78            <transition>
 79                <name>reject</name>
 80                <target>reject2</target>
 81            </transition>
 82        </transitions>
 83    </task>
 84    <fork>
 85        <name>fork</name>
 86        <metadata><![CDATA[{"transitions":{"approve1":{"bendpoints":[]},"approve2":{"bendpoints":[]}},"xy":[140,40]}]]></metadata>
 87        <transitions>
 88            <transition>
 89                <name>approve2</name>
 90                <target>approve2</target>
 91            </transition>
 92            <transition>
 93                <name>approve1</name>
 94                <target>approve1</target>
 95            </transition>
 96
 97        </transitions>
 98    </fork>
 99    <join>
100        <name>fork Join</name>
101        <metadata><![CDATA[{"transitions":{"approved":{"bendpoints":[]},"direction":{"bendpoints":[]}},"xy":[650,136]}]]></metadata>
102        <transitions>
103            <transition>
104                <name>direction</name>
105                <target>direction</target>
106            </transition>
107        </transitions>
108    </join>
109    <task>
110        <name>update</name>
111        <metadata><![CDATA[{"transitions":{"republish":{"bendpoints":[]},"fork":{"bendpoints":[]}},"xy":[26,270]}]]></metadata>
112        <assignments>
113            <user></user>
114        </assignments>
115        <transitions>
116            <transition>
117                <name>republish</name>
118                <target>fork</target>
119            </transition>
120        </transitions>
121    </task>
122    <condition>
123        <name>direction</name>
124        <metadata><![CDATA[{"transitions":{"update":{"bendpoints":[]},"approved":{"bendpoints":[]}},"xy":[683,302]}]]></metadata>
125        <script><![CDATA[/* specify action script */
126
127Boolean reject = (Boolean) workflowContext.get("reject");
128if (reject)
129    returnValue = "update";
130else
131    returnValue = "approved";
132
133]]></script>
134        <script-language>groovy</script-language>
135        <transitions>
136            <transition>
137                <name>approved</name>
138                <target>approved</target>
139            </transition>
140            <transition>
141                <name>update</name>
142                <target>update</target>
143            </transition>
144        </transitions>
145    </condition>
146    <state>
147        <name>reject2</name>
148        <metadata><![CDATA[{"transitions":{"fork Join":{"bendpoints":[]}},"xy":[520,152]}]]></metadata>
149        <actions>
150            <action>
151                <name>rejectAction1</name>
152                <script><![CDATA[/* specify action script */
153
154workflowContext.put("reject",true);
155]]></script>
156                <script-language>groovy</script-language>
157                <execution-type>onEntry</execution-type>
158            </action>
159        </actions>
160        <transitions>
161            <transition>
162                <name>fork Join</name>
163                <target>fork Join</target>
164            </transition>
165        </transitions>
166    </state>
167    <state>
168        <name>reject1</name>
169        <metadata><![CDATA[{"transitions":{"fork Join":{"bendpoints":[]}},"xy":[519,264]}]]></metadata>
170        <actions>
171            <action>
172                <name>rejectAction2</name>
173                <script><![CDATA[/* specify action script */
174
175workflowContext.put("reject",true);
176]]></script>
177                <script-language>groovy</script-language>
178                <execution-type>onEntry</execution-type>
179            </action>
180        </actions>
181        <transitions>
182            <transition>
183                <name>fork Join</name>
184                <target>fork Join</target>
185            </transition>
186        </transitions>
187    </state>
188</workflow-definition>


When I try to upload the xml to the liferay, the portal says: "An error occured in the workflow engine" with no further explanations in the console log. However, If I remove the reject1 and reject2 state nodes, the uploads is successful. I read somewhere, that kaleo no longer support multiple termination states, but it seems kaleo no longer supports more than two states (initial and termination) either. Is that true?
zack zhang
RE: Kaleo middle state
April 26, 2013 1:19 AM
Answer

zack zhang

Rank: New Member

Posts: 1

Join Date: March 27, 2013

Recent Posts

I face the same problem.How to slove this problem?
Rajmund Bocsi
RE: Kaleo middle state
April 26, 2013 2:10 AM
Answer

Rajmund Bocsi

Rank: New Member

Posts: 3

Join Date: June 29, 2011

Recent Posts

I don't. We decided to doing the project without workflow engine. Sorry.
Norbert Kocsis
RE: Kaleo middle state
July 18, 2013 5:38 AM
Answer

Norbert Kocsis

LIFERAY STAFF

Rank: New Member

Posts: 1

Join Date: June 15, 2012

Recent Posts

Hi,

The terminal state of the workflow should be the last state in the xml. Otherwise the parsing will fail.

Br,
Norbert