Monday, 7 October 2013

workflow



workflow
Intro:
In this example we will create the following users:
            Reader: this is a simple user that is a member of the community "My Use Case Community"
            Content Writer: this is the content writer of the community. He's able to create web content
            Content Reviewer: this is the person in charge of controling the content that is going to be published. He can decide if the web content is correct or not.
            Content Publicator: this is the member of the community that publishes content, add new applications to the community and so on.
            Portal Admin: super user that will prepare the environment of this use case

Configure the environment:

With the portal admin, I create "My Use Case Community" and the four users, which I assign to the community as new members.

Assign roles and permissions:
            Assign the "Community Content Reviewer" role (which is an autogenerated role from the workflow definition) to the user "Content Reviewer", so that he can review content
            Assign the "Community Administrator" role to "Content Publicator" so that he can manage everything in the community
            Create a new community role called "Content Writer" and assign it to "Content Writer". This role would have web content's permissions (I don't usually give him "delete" and "permission" permissions, but that's up to you) and access in control panel, so that he can create web content from the control panel (this is not strictly necessary, as he can create web content from the asset publisher, for example)

Important: Enable the workflow for this community's web contents: Go to "Control Panel", "Workflow configuration" and select your workflow definition (by default kaleo provides "Single Approver" definition) in the "Web content" entry.

Now, let's start working! http://www.liferay.com/html/js/editor/fckeditor/editor/images/smiley/msn/teeth_smile.gif

The workflow system in action:

           1.- Creating the content

Login as the "Content Writer", go to the control panel and create a new web content. Notice that the available buttons are "Save as draft" and "Submit for publication", so that the user knows that he can't publish directly (by the way this is a good way to know that the workflow engine is correctly applied to your community). Click "Submit for publication".

http://cdn.www.liferay.com/image/image_gallery?uuid=9b9dc472-605b-4161-bf76-ba0d03163931&groupId=1373757&t=1279016845668

In this moment, the workflow engine starts. The user can see that the content's status is "pending" and he can't modify the content till it's reviewed.
From this moment on, the content writer can follow the process in the "My Submissions" portlet. There he can see the internal workflow status and if he realizes (for example) that he wants to modify something in the content, he can withdraw the submission.

               2.- Reviewing the content

It's time for the "Content Reviewer" to start working.
The main part of the reviewer work is going to be done in the "My Workflow Tasks" portlet, so let's go there. 
In the "Assigned to my roles" view, you'd see the pending tasks and you can assign the task to another user or yourself.

http://cdn.www.liferay.com/image/image_gallery?uuid=9d17e04e-e1e3-49ef-9e89-9e1a5bcbe866&groupId=1373757&t=1279016845669
 
I assign it to myself

http://cdn.www.liferay.com/image/image_gallery?uuid=9677c64a-367d-40c7-b26c-39a269f06b7e&groupId=1373757&t=1279016845670

 
In the detail view of the task, you can view and edit the content, read the recent activity of the task, view the status and change its status (in this case approve or reject, but this would depend on the workflow definition)

http://cdn.www.liferay.com/image/image_gallery?uuid=3dc59bef-16db-4046-a75d-5a97bad683a4&groupId=1373757&t=1279016845671

In this moment, there are two possibilities:
            a) The reviewer rejects the content: he writes the reason in a popup and the content goes back to the writer, so that he can edit/fix/improve it
            b) The reviewer approves the content: he (maybe after editing the content so that it fits the portal's rules) approve the content and the content's status is updated to "approved".

                   3.- Publish the content

The user "Content Publicator", that handles the portlets and has publishing rights, now can go to the community pages and add a web content display portlet with the new content in it

                   4.- Access the content

The user "Reader" (who, remember, has no special permissions, but is a community member) is now able to view the new web content

http://cdn.www.liferay.com/image/image_gallery?uuid=bdef4ea6-d5ff-4264-a5b1-75ca1903cfc5&groupId=1373757&t=1279018560736

 
Remember that, out-of-the-box, liferay 6 provides the hability to enable workflow for these entities:
         1. Wiki Page
         2. Web Content
         3. Document Library Document
         4. Blogs Entry
         5. Comments
         6. Message Boards Message 

And you can extend this functionallity to your custom portlets. 

We are looking forward to hearing your feedback!

Regards, 
Juan Fernández
Liferay Core Engineer

1 comment: