« Back

Applying workflow on any assets in Liferay 6

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. 

 

Showing 72 Comments

fang jin
6/11/10 10:59 PM

非常感谢!Thank you!

Hennie de Villiers
6/11/10 11:34 PM

Starting to look very good... Thanks...

Sampsa Sohlman
6/12/10 10:13 AM

Thanks, this was very interesting article. Studying workflows on Liferay 6 has been on my list for while.

Marcelo Lagos
6/12/10 4:05 PM

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: [[ERROR] no proces
sdefinition.xml inside process archive]
com.liferay.portal.kernel.workflow.WorkflowDefinitionFileException: org.jbpm.jpdl.JpdlException: [[ERROR] 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: [[ERROR] 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?

t s
6/12/10 10:03 PM

Whether to support the process variables and custom forms?

Xinsheng Robert Chen
6/14/10 3:31 PM

Thank you, Jonas, for this great article!

Gaurish Sharma
6/15/10 1:41 AM

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.

Brian Ko
6/15/10 2:08 PM

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)

Jorge Ferrer
6/16/10 12:37 AM

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.

Jonas Yuan
6/16/10 5:36 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.

Jonas Yuan
6/16/10 5:27 AM

Thanks, Jorge. As you can see, Workflow is big feature. Yes, this article will be updated when 6.0 GA is ready.

Hennie de Villiers
6/16/10 6:24 AM

Hi Jorge

Any idea when the GA will be released?

Jorge Ferrer
6/16/10 6:40 AM

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.

Brian Ko
6/16/10 7:30 AM

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.

Jorge Ferrer
6/16/10 8:11 AM

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.

Bavithra Rajendran
6/18/10 3:49 AM

Sir, Thanks for writing about this big feature. Very Informative emoticon

unai alba
6/21/10 1:46 AM

Very powerful! Liferay needs something like that to make it more versatility.
Great job!

Nicholas Tenczar
8/7/10 2:43 PM

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.

Jonas Yuan
8/12/10 3:55 PM

Thanks, Nicholas. Applying workflows to custom assets will be ready soon.

Dave Weitzel
8/22/10 3:19 PM

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?

Jonas Yuan
8/23/10 11:20 AM

Hi Nicholas,

Applying workflows to custom assets is ready at

http://www.liferay.com/c/blogs/find_entry?entryId=5624351

Jonas Yuan
8/23/10 11:26 AM

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

Linus Sphinx
9/14/10 9:40 AM

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?

Jonas Yuan
9/16/10 4:42 PM

Hi Linus, thanks. Ideally, all links should bring you to reviewing pages. Do you get it fixed?

Corrado Truffi
9/22/10 5:15 AM

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?

Jonas Yuan
9/23/10 8:34 AM

Hi Corrado, thanks. It would be better to set time (due time, expired time) in workflow definition. Do you agree?

ERA GON
9/26/10 6:49 PM

Hi,

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

Or any schedule from Liferay this feature will available.

Jonas Yuan
9/28/10 10:53 PM

Hi ARA, role based approach would be better .... right?

ERA GON
9/29/10 12:18 AM

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.

Jonas Yuan
9/29/10 7:04 AM

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.

ERA GON
9/30/10 12:10 AM

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!

Amit Shah
10/28/10 4:05 AM

I am using Liferay6.0.5... and getting some error while deploying workflow engine...

Barry Rowe
11/1/10 10:37 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?

Jonas Yuan
11/9/10 6:25 AM

Hi Amit, sorry to come back late. Do you get the issue fixed?

Jonas Yuan
11/9/10 6:28 AM

Hi Barry, Thanks. The answer is NO. In EE, many known bugs got fixed. With CE, you may have to fixed these bugs.

Jonas Yuan
11/9/10 6:31 AM

Hi ERA, is it urgent - applying workflow on user management in liferay 6? This can be done in portlet custom registration ...

abdul quddhus
11/22/10 2:07 AM

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)

abdul quddhus
11/22/10 3:25 AM

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

Jonas Yuan
11/22/10 11:28 AM

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 ... :-)

Barry Rowe
11/29/10 8:14 AM

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.

Jonas Yuan
11/29/10 10:53 AM

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

Marcelo Lagos
11/29/10 11:23 AM

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.

Jonas Yuan
11/29/10 11:51 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

Linus Sphinx
2/25/11 12:18 PM

Yes, works as advertised thank you for asking, please forgive the late reply, it was my schema not being created fully.

Jonas Yuan
2/28/11 6:38 PM

Great! Thanks, Linus.

Maurice Biche
3/16/11 12:18 AM

Thanks Jonas, do you have similar example write-up using jbpm-web instead of kaleo-web? Thank you.

Jonas Yuan
3/17/11 11:05 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.

Bradai Salma
3/18/11 4:04 AM

I don't know if Jonas Yuan can help me,but i'

Bradai Salma
3/18/11 4:12 AM

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).

Bradai Salma
3/19/11 3:21 AM

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

Jonas Yuan
3/19/11 8:01 AM

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.

Bradai Salma
3/20/11 1:31 PM

Thanks Jonas for your reply,
But are there any examples of process definition using swimlane?

Deepak P
3/23/11 6:16 AM

Hi Jonas,
I have multiple webcontent with different type of workflow for each.Is there any option to achieve it.

Jonas Yuan
3/23/11 7:11 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?

Jonas Yuan
3/23/11 7:22 AM

Hi Bradai, you may refer to the new feature:

Ability to specify workflow process definition using swimlane
http://issues.liferay.com/browse/LPS-16014

Deepak P
3/23/11 9:50 PM

Hi Jonas,
This is exactly what i am looking for.So only the 6.1 release have this functionality.right?

Bradai Salma
3/25/11 11:56 AM

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

Jonas Yuan
3/29/11 10:34 AM

Hi Bradai, you should be able to use mail notification workflow simply by Kaleo.

Jonas Yuan
3/29/11 10:35 AM

Hi Deepak, this feature would be part of 6.1. But it is not finalized yet.

Mati-ur-Rehman Khan
7/25/11 5:42 AM

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?

Mati-ur-Rehman Khan
7/26/11 3:47 AM

It only causes problem while two persons are logged in with same username. Otherwise its fine. emoticon

Ranjan v
8/17/11 5:18 AM

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??

Amirtha Mira
10/4/11 12:52 AM

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?

Amirtha Mira
10/12/11 1:57 AM

hai..I want some condition based workflow when add new document..

Malek Tarboush
11/24/11 1:04 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

Malek Tarboush
11/24/11 2:13 AM

i forgot to mention that im using liferay 6.0.6 CE

Jonas Yuan
11/28/11 11:34 AM

Hi Malek,

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

Jonas

Malek Tarboush
11/28/11 11:53 PM

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

Jay Patel
12/2/11 2:27 PM

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.

許 桂瑜
2/6/12 1:24 AM

i don't wanna some entry through workflow, how do i disable these entry like blog, web content... bra bra...?

許 桂瑜
2/6/12 1:25 AM

bla bla...

malik khalf.
5/24/12 2:43 AM

XPDL engine (e.g, shark), is it supported?