BPM Integration with Content Management System (CMS)
With Business Process Management (BPM) coming out of Organizational boundaries and extending its reach to customers, vendors and partners, often access to BPM system happens via the website or portal of the Organization. This article talks about the strategies for making your BPM System available in the Corporate CMS (Content Management system).
BPM products come with a Portal to manage your processes. These portals are made keeping in mind operational aspects. As far as users are part of your organization and you can train them they can use the system easily. If external users need access, something simpler (and Branded) is required.
What you can do with BPM on CMS
If we were to generalize things your users could do in your BPM portal, it would be
- Initiate Processes
- View Assigned Task List
- View Task
- Action Task
- View initiated task
For managers, there could be a few more user cases related to management and reporting. However since managers would be internal and can have access to the portal provided by the BPM Tool, I feel it would be OK if we overlooked that for now.
How to integrate?
Content management systems (my favorite being Drupal) provide rich, structured content to the users. Business Processes can be linked pretty easily with your content. Some CMS Systems like Life ray allow you to use an embedded engine for workflows. For others, “Web services” happen to be the most popular means. The new REST web services have become very popular method of integrating systems. You can find out from your BPM Provider what kind of web services do they support. BonitaSoft, JBPM, Activiti support REST Services. Savvion supports standard web services.
How different functionalities behave
Here are some of the things I would typically do
- Create a Dashboard. This will have a component called task lists. Logged in users can see what tasks are assigned to them. If you are building a more informal system you can rename this to “My inbox” or “My Activities”. Some people also prefer to use the term “My open Items”.
- Provide an ability to initiate a process. This can be done from the dashboard or from anywhere within your CMS. For example if you want a BPM process that handles customer complaints and “report abuse” kind of scenario – You can give a button clicking on which they see the Start page of the Business Process. Again, you can have the actual BPM Start page IFRAMED in or you can have a form generated by CMS which on clicking initiates the process in the backend using web services
- When users click on an item on their dashboard, you can either open the task page directly from the BPM Tool or make a web service call, fetch the contents and show it to the users. Since you want to provide the ability to take actions, giving buttons for “Approve”, “Reject” also makes sense. On clicking these buttons, make appropriate calls to the backend system to action the task, again using web services. Some CMS Tools provide Rules which can be leveraged to do this.
- The Same Dashboard can be used to provide a page for seeing initiated requests, typically called “My Requests”. There can be audit trail available for the end user to see what has happened to his request in past
Where to store data?
In the BPM Process or on CMS? Well that gets decided based on what you want to do date. If you want to create reports (ad hoc) visible on the Portal itself then its better to save the data in the portal (using standard portal techniques) and store the unique key of the data in the business process. However, information that decides the path of the process should always be stored in your Business Process.