List all BPM Processes for a user
By Kavitha Srinivasan on Apr 12, 2012
Happy to start contributing to this blog..
The title of the blog is probably deceptively simple and warrants an elaboration.
Customized BPM workspaces/user interfaces are a fairly common requirement. One of our marquee customers in the online stock trading business, envisioned this user interaction for their BPM application:
- User logs in to the internal portal
- Use will have list of roles which he is granted as a drop down list
- Once user selects the role, a list of processes which user is part of appear. Logged in user can be part of any swimlane role of the process
- Intialize workflow/BPM context as usual
- Get a handle on InstanceQueryService(getInstanceQueryService), InstanceManagementService, ProcessMetadataService and ProcessModelService
- List all Processes for that bpmcontext (listProcessMetadataSumary) and get Granted roles to that user
- For each of the processes [method getAccessibleProcesss(ProcessMetadataSummary, Set)]for each of the lanes in the process, check if the role granted to the user, matches the roleName for that swimlane. If so, add to output.
- The usual caveats apply including BPM APIs are subject to change.
- JDeveloper method introspection is your better friend than API documentation :-)...
(I am going to try upload the source code and if it doesnt work, will follow this blog up with the corresponding source code.)
Hope this helps.
Ack: Yogesh K, BPM Dev team.
Editing the blog to include source code from java.net: http://java.net/projects/bpmapiusage