« Back

Applying workflow on any assets in Liferay 6

General Blogs June 11, 2010 By Jonas Yuan

Liferay 6 integrates workflow engines like jBPM or Kaleo on any assets finally. This feature has been expected for a while.  By this feature, users are able to manage the content creation process with a workflow. Especially, this feature helps content creators collaborate and go through the necessary steps in order to produce better and more accurate content like assets. Within a workflow, any type of assets like Document Library document, wiki entry or web content can go through review-approval processes.

In this article, I am going to show this feature with examples. Asset here refers to Liferay core content types: like Document Library document, Image Gallery image, Message Boards message, Web Content, Wiki page, comments, Blogs entry. Logically, workflow should be available for any assets like Image Gallery image, Calendar event, layout page, Bookmarks entry, user, organization, etc. (Abstracted from the book: Liferay Portal 6 Enterprise Intranets)


Install Workflow engine

First prepare Liferay portal. Here I use Liferay 6.0.3 GA (revision 55391). Liferay 6.0.2 RC 2 would be OK, too.  Install the portal and you would have a folder $PORTAL_HOME and deploy-folder $PORTAL_HOME/deploy.  Then start the portal. 

When the portal is running, deploy the workflow engine – that is, drop the WAR ${workflow-web-6.0.2.1}.war to the folder $PORTAL_HOME/deploy. You can use either jbpm-web or kaleo-web. Kaleo is Liferay custom Workflow plugin.  Here I use kaleo-web. 

You can download kaleo-web from 

kaleo-web-6.0.2.1.war.

Note that you can find example workflow single-approver-definition.xml at 

/kaleo-web/WEB-INF/classes/META-INF/definitions.

Of course, you can download example at 

/palm_tree/book/0387/chapter09/definitions.

Configure workflow on any assets

Now you can configure workflow now. I use asset Blog Entry as an example.

Create two users: David Berger – a content creator; Lotti Stein – a content reviewer. And assign them as members of community Guest.

Login as admin and go to Control panel | Liferay.com| Workflow Configuration

Locate Blogs Entry and select “Single Approver” workflow and save it.

Go to Control panel | Portal| Communities and assign user roles of community guest; note that you can apply  workflow on any assets of any groups (communities and organizations). Here I  use the group Guest as an example.

Assign roles (community or organization content reviewer – Auto-generated role from workflow definition) to users (David Berger and Lotti Stein).

 

Go through workflow

Assign proper permissions to users David Berger and Lotti Stein that they can manage pages and create blogs entries in community Guest;

Login as David Berger and create a blog called “Liferay Portal 6 Enterprise Intranets”; you would see that the asset Blog entry goes workflow and it states as “Pending Approval”;

 

Login as Lotti Stein and go to Control Panel | Lotti Stein | My Workflow Tasks; you would see tabs: Assigned to Me, Assigned to My Roles, My Completed Tasks. Under the tab Assigned to My Roles, you would see the workflow task “Liferay Portal 6 Enterprise Intranets”.

 
Click on the workflow task and assign this to yourself “Lotti Stein”; and add comment “Please review”; as you can see, the workflow task is moved to the tab “Assigned to Me”;
 

 

Click on the workflow task under the tab “Assigned to Me”; and you can either reject it or approve it; you can click on “Approve Asset” and add comment “looks good” as well; 

 

As you can see, the workflow task is move to the tab “My Completed Tasks”;

 

After approved, the blog entry “Liferay Portal 6 Enterprise Intranets” would be visible for end users.

Summary

As you can see, Liferay 6 integrates workflow engine either jBPM or Kaleo smoothly. Thus you can manage easily workflow definitions, instances and tasks in one place, that is, Control Panel. In brief, this integration has following beauties

  • ability to integrate many workflow engines like jBPM | Kaleo; 

  • ability to have configurable workflow definitions;

  • ability to apply workflow on any assets like Blogs Entry, Bookmarks Entry, Calendar Event, Document Library Document, Image Gallery Image, Web Content, Wiki Page, etc.

Last but not least, I'd like to send a ton of thanks to Brian Chan, Jorge Ferrer, Julio Camarero, Raymond Auge, Bruno Farache, Shuyang Zhou, Michael Han, Marcellus Tavares, etc. who did an amazing job to make Asset Workflow a reality. This is big and long-time expected feature.

What’s next?

What’s next? You should be able to apply workflow on any custom assets in Liferay 6 like Knowledge Base articles. Right? I will address details in next blogs post. 

 

Threaded Replies Author Date
非常感谢!Thank you! fang jin June 11, 2010 10:59 PM
Starting to look very good... Thanks... Hennie de Villiers June 11, 2010 11:34 PM
Thanks, this was very interesting article.... Sampsa Sohlman June 12, 2010 10:13 AM
Great work. With kaleo-web I had no problem but... Marcelo Lagos June 12, 2010 4:05 PM
Whether to support the process variables and... t s June 12, 2010 10:03 PM
Thank you, Jonas, for this great article! Xinsheng Robert Chen June 14, 2010 3:31 PM
Thanks Jonas for the article. Have faced few... Gaurish Sharma June 15, 2010 1:41 AM
Jonas, Very nice posting! I followed the... Brian Ko June 15, 2010 2:08 PM
@Brian @Gaurish @Marcelo @ts Complete... Jonas Yuan June 16, 2010 5:36 AM
Hi Everyone, Please note, that this article is... Jorge Ferrer June 16, 2010 12:37 AM
Thanks, Jorge. As you can see, Workflow is big... Jonas Yuan June 16, 2010 5:27 AM
Hi Jorge Any idea when the GA will be released? Hennie de Villiers June 16, 2010 6:24 AM
Hi Hennie, We are working on it, trying to fix... Jorge Ferrer June 16, 2010 6:40 AM
Jorge, I got it. However, I want to point that... Brian Ko June 16, 2010 7:30 AM
Hi Brian, Great to know. Actually, we would... Jorge Ferrer June 16, 2010 8:11 AM
Sir, Thanks for writing about this big feature.... Bavithra Rajendran June 18, 2010 3:49 AM
Very powerful! Liferay needs something like... unai alba June 21, 2010 1:46 AM
Is there any estimate on when the blog about... Nicholas Tenczar August 7, 2010 2:43 PM
Thanks, Nicholas. Applying workflows to custom... Jonas Yuan August 12, 2010 3:55 PM
I'm not sure what you mean by custom assets in... Dave Weitzel August 22, 2010 3:19 PM
Hi Dave, Out-of-the-box, liferay 6 provides the... Jonas Yuan August 23, 2010 11:26 AM
Hi Nicholas, Applying workflows to custom... Jonas Yuan August 23, 2010 11:20 AM
I don't know if Jonas Yuan can help me,but i' Bradai Salma March 18, 2011 4:04 AM
Hi,I don't know whther Jonas Yuan can help... Bradai Salma March 18, 2011 4:12 AM
Hi Bradai, Thanks. It would be better to use... Jonas Yuan March 19, 2011 8:01 AM
Thanks Jonas for your reply, But are there any... Bradai Salma March 20, 2011 1:31 PM
Hi Bradai, you may refer to the new feature: ... Jonas Yuan March 23, 2011 7:22 AM
Hi Jonas,Thanks for reply I want to know if... Bradai Salma March 25, 2011 11:56 AM
Hi Bradai, you should be able to use mail... Jonas Yuan March 29, 2011 10:34 AM
Hi Jonas, I have configured Liferay 6.0.5 with... Bradai Salma March 19, 2011 3:21 AM
Brilliant, works great. Loving your book, a... Linus Sphinx September 14, 2010 9:40 AM
Hi Linus, thanks. Ideally, all links should... Jonas Yuan September 16, 2010 4:42 PM
Yes, works as advertised thank you for asking,... Linus Sphinx February 25, 2011 12:18 PM
Great! Thanks, Linus. Jonas Yuan February 28, 2011 6:38 PM
But I can set up an automatic change of status... Corrado Truffi September 22, 2010 5:15 AM
Hi Corrado, thanks. It would be better to set... Jonas Yuan September 23, 2010 8:34 AM
Hi, Do you known how to enable workflow for... ERA GON September 26, 2010 6:49 PM
Hi ARA, role based approach would be better... Jonas Yuan September 28, 2010 10:53 PM
Hi Jonas, thanks your reply, I really want to... ERA GON September 29, 2010 12:18 AM
Hi ERA, Thank you. Got you, you are going to... Jonas Yuan September 29, 2010 7:04 AM
Thanks you very much Jonas, You right! Im... ERA GON September 30, 2010 12:10 AM
Hi ERA, is it urgent - applying workflow on... Jonas Yuan November 9, 2010 6:31 AM
Hi Jonas, we are using Liferay CE 6.0.5 with... abdul quddhus November 22, 2010 2:07 AM
Hi Jonas, it seems there was some issue with... abdul quddhus November 22, 2010 3:25 AM
Thanks, Abdul! You are right that a lot of bugs... Jonas Yuan November 22, 2010 11:28 AM
Hi Era, I know it's an old topic. Did you... Norbert Kandó August 7, 2014 7:51 AM
I am using Liferay6.0.5... and getting some... Amit Shah October 28, 2010 4:05 AM
Hi Amit, sorry to come back late. Do you get... Jonas Yuan November 9, 2010 6:25 AM
Are there known issues with this process on... Barry Rowe November 1, 2010 10:37 AM
Hi Barry, Thanks. The answer is NO. In EE, many... Jonas Yuan November 9, 2010 6:28 AM
Where can I find a version of the kaleo-web.war... Barry Rowe November 29, 2010 8:14 AM
Hi Barry, Thanks. As EE user, you should be... Jonas Yuan November 29, 2010 10:53 AM
I would appreciate if somebody tells me how to... Marcelo Lagos November 29, 2010 11:23 AM
Hi Marcelo, you are not only one who received... Jonas Yuan November 29, 2010 11:51 AM
Thanks Jonas, do you have similar example... Maurice Biche March 16, 2011 12:18 AM
Hi Maurice, thanks. Unfortunately, I do not... Jonas Yuan March 17, 2011 11:05 AM
Hi Jonas, I have multiple webcontent... Deepak Poyilil March 23, 2011 6:16 AM
Hi Deepak, there is a new feature related: WCM... Jonas Yuan March 23, 2011 7:11 AM
Hi Jonas, This is exactly what i am... Deepak Poyilil March 23, 2011 9:50 PM
Hi Deepak, this feature would be part of 6.1.... Jonas Yuan March 29, 2011 10:35 AM
Hi, I found a problem when you include a link... Mati-ur-Rehman Khan July 25, 2011 5:42 AM
It only causes problem while two persons are... Mati-ur-Rehman Khan July 26, 2011 3:47 AM
Hi, I wanted to put the workflow into a custom... Ranjan v August 17, 2011 5:18 AM
Thanks for the helpful article.. But i want... Amirtha Mira October 4, 2011 12:52 AM
hai..I want some condition based workflow when... Amirtha Mira October 12, 2011 1:57 AM
hi Jonas when select SingleApprover for... Malek Tarboush November 24, 2011 1:04 AM
i forgot to mention that im using liferay 6.0.6 CE Malek Tarboush November 24, 2011 2:13 AM
Hi Malek, Thanks. Would you be able to... Jonas Yuan November 28, 2011 11:34 AM
hi Jonas thanks for response i found that its a... Malek Tarboush November 28, 2011 11:53 PM
Thanks Jonas for sharing this.. Hi Thiago, I... Jay Patel December 2, 2011 2:27 PM
i don't wanna some entry through workflow, how... 許 桂瑜 February 6, 2012 1:24 AM
bla bla... 許 桂瑜 February 6, 2012 1:25 AM
XPDL engine (e.g, shark), is it supported? malik khalf. May 24, 2012 2:43 AM
Hi Jonas, I know this is old article and is... Deepjyoti Nath June 19, 2012 7:58 AM
Hi Rhina, That feature is not in the product... Jorge Ferrer June 19, 2012 5:43 PM
Jorge, is there a JIRA or another discussion... Orin Fink October 24, 2012 7:42 AM
Hi Orin, The forum would probably be the best... Jorge Ferrer October 29, 2012 7:32 AM
I want to apply workflow on polls portlet. I... Ankita Jain March 14, 2014 7:28 AM

非常感谢!Thank you!
Posted on 6/11/10 10:59 PM.
Starting to look very good... Thanks...
Posted on 6/11/10 11:34 PM.
Thanks, this was very interesting article. Studying workflows on Liferay 6 has been on my list for while.
Posted on 6/12/10 10:13 AM.
Great work. With kaleo-web I had no problem but if I install jbpm-web (compiled from svn) I can't upload the sample workflow. Only activating DEBUG log level for some packages I managed to see the error:

Begin Code----------------------------------------
22:40:38,298 DEBUG [ProxyMessageListener:58] com.liferay.portal.kernel.workflow.WorkflowDefinitionFileException: org.jbpm.jpdl.JpdlException: [ no proces
sdefinition.xml inside process archive]
com.liferay.portal.kernel.workflow.WorkflowDefinitionFileException: org.jbpm.jpdl.JpdlException: [ no processdefinition.xml inside process archive]
at com.liferay.portal.workflow.jbpm.WorkflowDefinitionManagerImpl.deployWorkflowDef­inition(WorkflowDefinitionManagerImpl.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.liferay.portal.kernel.util.MethodInvoker.invoke(MethodInvoker.java:94)
at com.liferay.portal.kernel.messaging.proxy.ProxyRequest.execute(ProxyRequest.java­:69)
at com.liferay.portal.kernel.messaging.proxy.ProxyMessageListener.receive(ProxyMess­ageListener.java:51)
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessag­eListener.java:65)
at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestinatio­n.java:63)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:8­86)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jbpm.jpdl.JpdlException: [ no processdefinition.xml inside process archive]
at org.jbpm.jpdl.par.JpdlArchiveParser.readFromArchive(JpdlArchiveParser.java:43)
at org.jbpm.jpdl.par.ProcessArchive.parseProcessDefinition(ProcessArchive.java:87)
at com.liferay.portal.workflow.jbpm.WorkflowDefinitionManagerImpl.deployWorkflowDef­inition(WorkflowDefinitionManagerImpl.java:64)
... 12 more
22:40:38,300 DEBUG [InvokerPortletImpl:370] processAction for 151 takes 22 ms

End Code----------------------------------------

I'm not sure how to proceed, is it a bug or I missed something?
1.- installed from zip (on win and linux)
2.- compiled jbpm-web and dropped the war to deploy dir
3.- after installation is completed, I try to upload the sample file in jbpm-web/docroot/WEB-INF/classes/META-INF/definitions and it throws the error.

Is there something I've missed?
Posted on 6/12/10 4:05 PM.
Whether to support the process variables and custom forms?
Posted on 6/12/10 10:03 PM.
Thank you, Jonas, for this great article!
Posted on 6/14/10 3:31 PM in reply to t s.
Thanks Jonas for the article.

Have faced few issues though -

I created 2 users, Gaurish and Ashu and assigned them content reviewer for the guest community. When I logged in as Gaurish and assigned a document for review to Ashu, the 'activity' section shows 'Gaurish assigned the task to himself' whereas it should have shown 'Gaurish assigned the task to Ashu'. And when I log in as Ashu, it shows the document in 'Assigned to Me' section (as expectedd). But in the 'activity' section it shows 'Ashu assigned the task to himself' whereas it should have shown 'Gaurish assigned the task to Ashu'. Isn't it?

Also, even if I change the due date from 'never' to a date, it never shows the selected due date and always shows 'never' in the due date section.
Posted on 6/15/10 1:41 AM.
Jonas,

Very nice posting!

I followed the instruction and was able to make everything working except one. When I click "My workflow task", I got

"Unable find model com.liferay.portal.workflow.kaleo.model.impl.KaleoTaskInstanceTokenImpl
java.lang­.ClassNotFoundException: com.liferay.portal.workflow.kaleo.model.impl.KaleoTaskInstanceTokenImpl. I found that KaleoTaskInstanceTokenImpl class is in kaleo-web.war and not available as a library. Here is the stack trace. I used 6.0.2 rc version. Did I miss something? Thank you.

Brian Ko

2010-06-15 17:56:53,987 ERROR [com.liferay.portal.dao.orm.hibernate.DynamicQueryFactoryImpl] (liferay/workflow_task) Unable find model com.liferay.portal.workflow.kaleo.model.impl.KaleoTaskInstanceTokenImpl
java.lang­.ClassNotFoundException: com.liferay.portal.workflow.kaleo.model.impl.KaleoTaskInstanceTokenImpl
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at com.liferay.portal.dao.orm.hibernate.DynamicQueryFactoryImpl.getImplClass(Dynami­cQueryFactoryImpl.java:80)
at com.liferay.portal.dao.orm.hibernate.DynamicQueryFactoryImpl.forClass(DynamicQue­ryFactoryImpl.java:41)
at com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil.forClass(DynamicQueryF­actoryUtil.java:31)
at com.liferay.portal.workflow.kaleo.service.impl.KaleoTaskInstanceTokenLocalServic­eImpl.buildDynamicQuery(KaleoTaskInstanceTokenLocalServiceImpl.java:559)
at com.liferay.portal.workflow.kaleo.service.impl.KaleoTaskInstanceTokenLocalServic­eImpl.search(KaleoTaskInstanceTokenLocalServiceImpl.java:347)
at com.liferay.portal.workflow.kaleo.service.impl.KaleoTaskInstanceTokenLocalServic­eImpl.search(KaleoTaskInstanceTokenLocalServiceImpl.java:335)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at­ sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils­.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(Ref­lectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM­ethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Transa­ctionInterceptor.java:110)
at com.liferay.portal.dao.jdbc.aop.DynamicDataSourceTransactionInterceptor.invoke(D­ynamicDataSourceTransactionInterceptor.java:47)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM­ethodInvocation.java:172)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Transa­ctionInterceptor.java:110)
at com.liferay.portal.dao.jdbc.aop.DynamicDataSourceTransactionInterceptor.invoke(D­ynamicDataSourceTransactionInterceptor.java:47)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM­ethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInv­ocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM­ethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.j­ava:202)
at $Proxy358.search(Unknown Source)
at com.liferay.portal.workflow.kaleo.service.KaleoTaskInstanceTokenLocalServiceUtil­.search(KaleoTaskInstanceTokenLocalServiceUtil.java:293)
at com.liferay.portal.workflow.kaleo.WorkflowTaskManagerImpl.search(WorkflowTaskMan­agerImpl.java:460)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at­ sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils­.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(Ref­lectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM­ethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Transa­ctionInterceptor.java:110)
at com.liferay.portal.dao.jdbc.aop.DynamicDataSourceTransactionInterceptor.invoke(D­ynamicDataSourceTransactionInterceptor.java:47)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM­ethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInv­ocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM­ethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.j­ava:202)
at $Proxy362.search(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at­ sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.liferay.portal.kernel.util.MethodInvoker.invoke(MethodInvoker.java:94)
at com.liferay.portal.kernel.messaging.proxy.ProxyRequest.execute(ProxyRequest.java­:69)
at com.liferay.portal.kernel.messaging.proxy.ProxyMessageListener.receive(ProxyMess­ageListener.java:51)
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessag­eListener.java:65)
at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestinatio­n.java:63)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:8­85)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
­at java.lang.Thread.run(Thread.java:619)
Posted on 6/15/10 2:08 PM.
Hi Everyone,

Please note, that this article is based on unfinished code. Some things have changed since it was written.

Jonas, I think it would be less confusing for people if you wait for new frameworks to be finalized before writing tutorials about them.

For this one, please add a warning note and update it when 6.0 GA comes out.
Posted on 6/16/10 12:37 AM.
@Brian @Gaurish @Marcelo @ts

Complete workflow functions would be available in Liferay 6 GA version. This article will be updated after GA version. By the way, 6.0 GA version would be ready in weeks.
Posted on 6/16/10 5:36 AM in reply to Brian Ko.
Thanks, Jorge. As you can see, Workflow is big feature. Yes, this article will be updated when 6.0 GA is ready.
Posted on 6/16/10 5:27 AM in reply to Jorge Ferrer.
Hi Jorge

Any idea when the GA will be released?
Posted on 6/16/10 6:24 AM in reply to Jorge Ferrer.
Hi Hennie,

We are working on it, trying to fix bugs so that it's a very stable release.

All help both testing and reporting bugs (creating a JIRA ticket + posting about it in the Beta Testing forum category)
and fixing the open tickets that relate to 6.0 is welcome.
Posted on 6/16/10 6:40 AM in reply to Hennie de Villiers.
Jorge,
I got it. However, I want to point that it is still very helpful tutorial. Everything step up to the error worked fine. I just thought that I missed some step. Thank you.
Posted on 6/16/10 7:30 AM in reply to Jorge Ferrer.
Hi Brian,

Great to know. Actually, we would really appreciate the feedback of all of you trying out the workflow system.

You can use the Beta Testing category for that.
Posted on 6/16/10 8:11 AM in reply to Brian Ko.
Sir, Thanks for writing about this big feature. Very Informative emoticon
Posted on 6/18/10 3:49 AM.
Very powerful! Liferay needs something like that to make it more versatility.
Great job!
Posted on 6/21/10 1:46 AM.
Is there any estimate on when the blog about applying workflows to custom assets will be ready? I want to use the workflow engine to define workflows for some custom services I am generating.
Posted on 8/7/10 2:43 PM.
Thanks, Nicholas. Applying workflows to custom assets will be ready soon.
Posted on 8/12/10 3:55 PM in reply to Nicholas Tenczar.
I'm not sure what you mean by custom assets in this context.

I am looking for the ability to configure workflow (simple approval would be fine bit more complex as well) to just specific content types, so anyone can publish basic web articles but for say Pres Releases or white paper content types they have to be put through workflow.

Will this be possible soon?
Posted on 8/22/10 3:19 PM in reply to Jonas X. Yuan.
Hi Nicholas,

Applying workflows to custom assets is ready at

http://www.liferay.com/c/blogs/find_entry?entryId=5624351
Posted on 8/23/10 11:20 AM in reply to Jonas X. Yuan.
Hi Dave, Out-of-the-box, liferay 6 provides the ability to enable workflow for core assets:
* Blogs Entry
* Comments
* Document Library Document
* Message Boards Message
* Web Content
* Wiki Page
custom assets are generated by Service-Builder) through plugins. Knowledge base articles are examples.

Notice that workflow is based on assets, not the type of assets. For example, you can apply workflow on the asset Web Content articles, not the type of Web Content.

Hope that it helps,

Thanks
Posted on 8/23/10 11:26 AM in reply to Dave Weitzel.
Brilliant, works great. Loving your book, a most excellent read. In the image http://liferay.cignex.com/palm_tree/0387/workflow/workflow-04.png of My workflow tasks note that each line item are links, when I click it I get a blank space, what is it supposed to be? Is there any way to review the actual item there?
Posted on 9/14/10 9:40 AM.
Hi Linus, thanks. Ideally, all links should bring you to reviewing pages. Do you get it fixed?
Posted on 9/16/10 4:42 PM in reply to Linus Sphinx.
But I can set up an automatic change of status after a time, e.g. with a timer, if an user in workflow don't approve?
Posted on 9/22/10 5:15 AM.
Hi Corrado, thanks. It would be better to set time (due time, expired time) in workflow definition. Do you agree?
Posted on 9/23/10 8:34 AM in reply to Corrado Truffi.
Hi,

Do you known how to enable workflow for user, organization.

Or any schedule from Liferay this feature will available.
Posted on 9/26/10 6:49 PM in reply to Jonas X. Yuan.
Hi ARA, role based approach would be better .... right?
Posted on 9/28/10 10:53 PM in reply to ERAGON MOVIE .COM.
Hi Jonas, thanks your reply,

I really want to have workflow for user, role and organization as when create new user, role or org need review and accept or reject by an approver.

Without this workflow my project cannot to go production.
Posted on 9/29/10 12:18 AM in reply to Jonas X. Yuan.
Hi ERA, Thank you. Got you, you are going to apply workflow on core assets: user, role, and organization. right?

These are not supported OOB, but you can add these by using Ext Plugin, and/or hooks, or Liferay Portal Core. Logically, you can apply workflow on any assets, either portal core assets or custom assets.

Please let me know if you need more helps.
Posted on 9/29/10 7:04 AM in reply to ERA GON.
Thanks you very much Jonas,

You right! Im going to apply workflow on user, role and organization. Could you guild me how to? such as you write a article "applying workflow on user management in liferay 6" on your blog. I will flow your guild and apply for role, org.

Thanks you in advanced!
Posted on 9/30/10 12:10 AM in reply to Jonas X. Yuan.
I am using Liferay6.0.5... and getting some error while deploying workflow engine...
Posted on 10/28/10 4:05 AM.
Are there known issues with this process on Liferay 6.0.10 (Enterprise)? The kaleo war deploys as expected, but at no point do I get the "Workflow Configuration" menu item in control panel. Is there an alternate workflow configuration process for Liferay EE?
Posted on 11/1/10 10:37 AM.
Hi Amit, sorry to come back late. Do you get the issue fixed?
Posted on 11/9/10 6:25 AM in reply to Amit Shah.
Hi Barry, Thanks. The answer is NO. In EE, many known bugs got fixed. With CE, you may have to fixed these bugs.
Posted on 11/9/10 6:28 AM in reply to Barry Rowe.
Hi ERA, is it urgent - applying workflow on user management in liferay 6? This can be done in portlet custom registration ...
Posted on 11/9/10 6:31 AM in reply to ERA GON.
Hi Jonas, we are using Liferay CE 6.0.5 with JBoss bundle and we are getting below error:

Kindly let me know how we can resolve this issue as we want to use the workflow engine for the web contents.

2010-11-22 12:54:21,664 ERROR [org.springframework.web.context.ContextLoader] (HDScanner) Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.dao.shard.ShardUtil' defined in ServletContext resource [/WEB-INF/classes/META-INF/shard-data-source-spring.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'shardAdvice' of bean class [com.liferay.portal.dao.shard.ShardUtil]: Bean property 'shardAdvice' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.app­lyPropertyValues(AbstractAutowireCapableBeanFactory.java:1353)
Posted on 11/22/10 2:07 AM in reply to Jonas X. Yuan.
Hi Jonas, it seems there was some issue with the kaleo war file which i was using. I downloaded "kaleo-web-6.0.5.1.war" and did a clean deployment. it was successful and i have to start using it emoticon
Posted on 11/22/10 3:25 AM in reply to abdul quddhus.
Thanks, Abdul! You are right that a lot of bugs got fixed in latest kaleo-web. In Liferay 6.1, you would see more features related to kaleo-web workflow ... :-)
Posted on 11/22/10 11:28 AM in reply to abdul quddhus.
Where can I find a version of the kaleo-web.war that works with Liferay EE 6.0.10? I am currently working with the EE version of Liferay, and would like to get started setting up workflows.
Posted on 11/29/10 8:14 AM in reply to Jonas X. Yuan.
Hi Barry, Thanks. As EE user, you should be able to access the WAR of Kaleo web at

http://www.liferay.com/group/customer/downloads?p_p_id=3_WAR_osbportlet&p_p_life­cycle=1&p_p_state=maximized&_3_WAR_osbportlet_fileName=/plugins/6.0.10/kaleo-web­-6.0.10.1.war

Please let me know if you have any questions,

Thanks again,

Jonas
Posted on 11/29/10 10:53 AM in reply to Barry Rowe.
I would appreciate if somebody tells me how to unsubscribe from this blog post. I've tried my profile, account, etc. Can't find it. Thanks.
Posted on 11/29/10 11:23 AM.
Hi Marcelo, you are not only one who received unrelated emails. :-)

This is a bug related to email notification in blogs post in this portal instance. Maybe, you can raise a ticket for this issue.

Thanks,

Jonas
Posted on 11/29/10 11:51 AM in reply to Marcelo Lagos.
Yes, works as advertised thank you for asking, please forgive the late reply, it was my schema not being created fully.
Posted on 2/25/11 12:18 PM in reply to Jonas X. Yuan.
Great! Thanks, Linus.
Posted on 2/28/11 6:38 PM in reply to Linus Sphinx.
Thanks Jonas, do you have similar example write-up using jbpm-web instead of kaleo-web? Thank you.
Posted on 3/16/11 12:18 AM.
Hi Maurice, thanks. Unfortunately, I do not have similar example using jbpm-web instead of kaleo-web. But anyway kaleo-web is more robust now.
Posted on 3/17/11 11:05 AM in reply to Maurice Biche.
I don't know if Jonas Yuan can help me,but i'
Posted on 3/18/11 4:04 AM in reply to Jonas X. Yuan.
Hi,I don't know whther Jonas Yuan can help me,but I'm in a confusion about the using of jbpm3 in liferay
1-is the plugin jbpm3 or kaleo with liferay does'nt support swimlane?
2-To assign task to some user,should i follow the example of Single Approver (Assign task to some roles).
Posted on 3/18/11 4:12 AM in reply to Jonas X. Yuan.
Hi Jonas,
I have configured Liferay 6.0.5 with jbpm3
but my goal now is to use 2 or more reviewer,I have followed The Single Approver example but,i have failed,so please can u help me,
I have posted a new thread:
http://www.liferay.com/community/forums/-/message_boards/message/7941822?­_19_preview=false
Posted on 3/19/11 3:21 AM in reply to Jonas X. Yuan.
Hi Bradai, Thanks.

It would be better to use Kaleo web. two new features: 1) swim-lane and 2) role-based workflow.

1) is good feature. It would get supported shortly.

2) got supported in the back-end. UI support would come out soon.
Posted on 3/19/11 8:01 AM in reply to Bradai Salma.
Thanks Jonas for your reply,
But are there any examples of process definition using swimlane?
Posted on 3/20/11 1:31 PM in reply to Jonas Yuan.
Hi Jonas,
I have multiple webcontent with different type of workflow for each.Is there any option to achieve it.
Posted on 3/23/11 6:16 AM.
Hi Deepak, there is a new feature related: WCM workflow - ability to apply workflow on types of Web Content http://issues.liferay.com/browse/LPS-13617

Is it good for your requirements?
Posted on 3/23/11 7:11 AM in reply to Deepak P.
Hi Bradai, you may refer to the new feature:

Ability to specify workflow process definition using swimlane
http://issues.liferay.com/browse/LPS-16014
Posted on 3/23/11 7:22 AM in reply to Bradai Salma.
Hi Jonas,
This is exactly what i am looking for.So only the 6.1 release have this functionality.right?
Posted on 3/23/11 9:50 PM in reply to Jonas Yuan.
Hi Jonas,Thanks for reply
I want to know if workflow process definition in jbpm3 with Liferay 6.0.5 support sending mail notification in his xml file,
in fact according to your answer,I will decide whether i will use jbpm or kaleo
Posted on 3/25/11 11:56 AM in reply to Jonas Yuan.
Hi Bradai, you should be able to use mail notification workflow simply by Kaleo.
Posted on 3/29/11 10:34 AM in reply to Bradai Salma.
Hi Deepak, this feature would be part of 6.1. But it is not finalized yet.
Posted on 3/29/11 10:35 AM in reply to Deepak P.
Hi,
I found a problem when you include a link from document library or image library into a web content and try to approve web content it doesn't work. It is removed from Assigned workflow tasks but it stays in your submissions and content status is pending.
One thing to mention is the image/document which is linked is already in publish state.
Is it a bug or a feature needs to be implemented?
Posted on 7/25/11 5:42 AM in reply to Jonas Yuan.
It only causes problem while two persons are logged in with same username. Otherwise its fine. emoticon
Posted on 7/26/11 3:47 AM in reply to Mati-ur-Rehman Khan.
Hi, I wanted to put the workflow into a custom portlet. so, instead of going into control panel every time to approve a document or any entry, there should be an out of box portlet. So that an admin or any authorized person can easily add this portlet on his/her private page. And then view and approve it. I tried to do it but didn't find a proper way.Please help??
Posted on 8/17/11 5:18 AM in reply to Mati-ur-Rehman Khan.
Thanks for the helpful article.. But i want based on the category the workflow should start for my asset. Is it possible? Yes means plz tell me how?
Posted on 10/4/11 12:52 AM.
hai..I want some condition based workflow when add new document..
Posted on 10/12/11 1:57 AM.
hi Jonas
when select SingleApprover for Comments in Workflow Configuration
it works fine and i can see the comment pending in My Workflow Tasks
but the title is null
and when i click on the link it throws NullPointerException

any idea if its bug or something wrong i made ??

thanks
Posted on 11/24/11 1:04 AM in reply to Amirtha Mira.
i forgot to mention that im using liferay 6.0.6 CE
Posted on 11/24/11 2:13 AM in reply to Malek Tarboush.
Hi Malek,

Thanks. Would you be able to provide more details? is it OOB?

Jonas
Posted on 11/28/11 11:34 AM in reply to Malek Tarboush.
hi Jonas thanks for response
i found that its a bug http://issues.liferay.com/browse/LPS-12186
and its resolved
but my question is do i have to upgrade to 6.1 ?
i can't upgrade right now , do you have any idea how can i solve it in 6.0.6 ?
thankx
Posted on 11/28/11 11:53 PM in reply to Jonas Yuan.
Thanks Jonas for sharing this..

Hi Thiago,

I want to implement exact same scenario for "User" asset. Meaning when new user is created, it should be assigned to some Work-flow definition e.g. single-approver definition. Then when it is approved by approver then only status may be changed to "Approved".

The problem I am facing is I don't know what would be the best approach for this. For just POC purpose, I changed the following files of Portal source code directly.

1. service.xml to add columns & reference package path for Work-flow
2. liferay-portlet.xml to add UserWorkflowHandler

Now the problem is after changing this service.xml, portal does not allow me to build services again saying that "Could not find com.liferay.portal.tools.servicebuilder.ServiceBuilder. Make sure you have it in your classpath", though ServiceBuilder class is available under the same package.

What can be root cause here?

Also can you also suggest some other better way for above kind of requirement when Liferay's OOB asset needs to be customized to apply Workflow on it?

Thanks in advance,
Jay.
Posted on 12/2/11 2:27 PM.
i don't wanna some entry through workflow, how do i disable these entry like blog, web content... bra bra...?
Posted on 2/6/12 1:24 AM in reply to Jay Patel.
Posted on 2/6/12 1:25 AM in reply to 許 桂瑜.
XPDL engine (e.g, shark), is it supported?
Posted on 5/24/12 2:43 AM.
Hi Jonas,
I know this is old article and is related to Liferay 6. I am using Liferay 6.1 with kaleo workflow 6.1. I have a requirement of applying multiple workflow definintion on different web contents of one single site. I know I can configure 1 workflow definition for all the webcontents of one site by selecting the workflow frm dropdown from ControlPanel-> <Site content section> -> Workflow. But if I have lots of web contents developed under one site, and I want different workflow process for different web contents, is it possible in current Liferay?
Posted on 6/19/12 7:58 AM in reply to malik khalf..
Hi Rhina,

That feature is not in the product right now. We are considering adding it to the work queue for the next release so your feedback is very useful.
Posted on 6/19/12 5:43 PM in reply to Rhina Karr.
Jorge, is there a JIRA or another discussion place to have a conversation around the requirements or design for workflow based on content types as Rhina is asking? We also have a similar requirement.
Posted on 10/24/12 7:42 AM in reply to Jorge Ferrer.
Hi Orin,
The forum would probably be the best place:
http://www.liferay.com/community/forums/-/message_boards/category/1108052
Posted on 10/29/12 7:32 AM in reply to Orin Fink.
I want to apply workflow on polls portlet. I have no idea how to start working on it. I have seen many forums, still not getting how to do this. Please help!
Posted on 3/14/14 7:28 AM.
Hi Era,
I know it's an old topic.
Did you manage to solve this problem? I would need to define workflow for organizations in Liferay 6.2 CE: https://www.liferay.com/community/forums/-/message_boards/view_message/41120923

C­ould you help me with some hints?

Thanks!
Posted on 8/7/14 7:51 AM in reply to ERA GON.