This document a set of decoupled documents to provide the functionality that is already provided by the bpm-console
The main focus is to keep all the components as decoupled as possible using a central bus of communication to share information between them.
This section describe all the component related to Business Processes. This is how the jbpm-console looks right now:
This functionality will be decoupled in the following components
1) Process Definitions List
Requirements for this component:
- Query Process Definitions
- Use the Rest Implementation
- Provide a pluggable way to hook any runtime (basically using an interface)
- Add filter option by process definition name
- Filter by type of definition
- Double clicking in one of the rows of the list must open the Process Definition Details component
We should have a local implementation to not depend on the jbpm-console server..
@TODO: analyze how the current rest implementation is returning the process definitions. We should list all the process definitions from the VFS, does it have ways of filtering things?
If it does, let's create a local implementation of this service inside the process definitions list widget to avoid using an external component and speed testing.
2) Process Definition Details
I'm not sure if this was included in the jbpm-console. We should provide a detailed view about the process which should allow us to see the process diagram and the BPMN XML text.
It should also contain a link to edit the process using the process designer which should be provided as a separate component.
@Toni: can we get reuse the code for displaying the diagram of the process here from the old console? or is it in someway using something that we will not have available here?
3) Process Instances List
Requirments for this component:
- Filters (by process definition, started date, state, etc)
- Perspectives (show and hide colums, but we should be able to show all of them from the begining)
- build a local implementations and see if we can use the Rest Services for this. A local service which give us the information required for this shouldn't be difficult to create.
We must avoid for the first version the buttons to create,delete and signal the process instances. That should not be responsability of the process instances list component, see Process Instance Details Component
4) Process Instance Details
The process instance detail component should be in charge of showing us the current status of a process instance along with the process information and the controls to interact with that specific instance.
@TODO add all the actions and parameters for each action.
For the BPM components perspective we will not deal with authentication or authorizations, that must be provided by the application that is using the components. But there are some basic things
that our components will be waiting in order to decide how to render themselves.
There should be an Administrator Role and also we can create an Owner role that can be mapped to different groups or users.
All the components should recieve and use the role provided by the containing applicaiton.