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