It is not your fault if you have struggled with Flex Fields in Oracle BPM. I know I'm not the quickest bunny in the forest, and I was reminded of that fact this week when asked by a customer how to use Flex Fields in their Oracle BPM project. Unless you use them on a very regular basis, it is very easy to completely forget how they are created and used. In this post, I'll go over Flex Fields and how you can learn how they are used with Oracle BPM 11g.
As you might be aware, Flex Fields are a little convoluted to create and and use. They are not well documented, and the blogs and presentations I've seen have quite a bit of incorrect information.
Flex Fields in Oracle BPM are important because:
- They extend the information shown to end users in the Workspace. Instead of the default columns in a task list, you can show the flex field variables as columns in the Workspace (including the Inbox view in PS6) to expose information that otherwise would be buried inside of the instance payloads.
- Because you cannot search the complex payloads in the work item instances flowing through processes, flex fields allow the Java HWF API to search for instances that meet one or more criteria (e.g., customerLocation == "Texas" and customerType == "Platinum").
- Similarly, the information exposed in a text flex field can searched for in keyword searches in the Workspace.
I just finished adding a new lesson in AVIO's hands-on Oracle BPM 11g Developer Workshop training that covers Flex Fields and thought you might find it helpful. I went ahead and put our new Flex Field video from our on-demand version of the workshop up on YouTube for you.
If you haven't used Flex Fields in PS6, you will learn from the video that there are some really nice new undocumented features that were added into flex fields in PS6 (this is at 19:07 in the video) that include:
- Flex Fields can now be mapped to columns in the default Inbox (previously they could only be used in custom views)
- The numeric Flex Fields can be also be displayed as percentages and currencies
- When creating views, when you map to a human task you no longer have to map to a specific version of the human task. This means that your views will not have to be edited and changed each time a new version of the composite are deployed
- The views can now be sorted ascending or descending based on Flex Field information
The video mentions a hands-on portion of the lesson that takes you through how to create and use protected flex fields. You can download this lesson from AVIO's Oracle BPM Developer Workshop at no charge by clicking here. Both public and protected Flex Fields are discussed (I could easily be wrong, but I believe that this might be the only place that shows how to add and use protected Flex Fields with Oracle BPM).
Finally, a question that often comes up is how to migrate Flex Fields between environments (e.g., migrating your flex fields in your test environment to your production environment without having to manually recreate them). Venu Mangipudi, is an old friend and a consultant for Oracle who has just written an excellent blog post that describes how this is done.