Business data variables in IBM BPM are exposed during design time by marking corresponding variables as - "Visible in Process Portal" in latest version of IBM BPM (85x) and/or "Available in Search" in earlier versions of IBM BPM when developing process applications in Process Designer.
It's worth noting that these variables are BPD level variables. As a result, at runtime the scope of these variables is BPD instance.
Brazos Portal uses REST API calls to retrieve information about business variables that are visible for search. There are at least couple of places in Brazos Portal where you can search for business variables. You may select Business Data that will always be displayed in Brazos Portal by going to Admin Search page. You may also use filters when creating groups in Brazos Portal and select business variables to be displayed in particular group.
It's easy to note that the business data variables displayed in searches in Brazos Portal can be from old deactivated snapshots that have no associated instances. You will not see this in stock Process Portal but will see it in Brazos Portal. Reason being - REST API's behave differently than stock Process Portal API's. If you want to get rid of unnecessary displayed business data variables in Brazos Portal proceed to "Resolution" section of this article.
Completely remove the snapshot where you have old business data variable defined using BPMDeleteSnapshot command and restart BPM environment. If you just remove the snapshot without restart of BPM environment then the business data variable from the snapshot in question will still be shown in the list. Be aware of known issues with the snapshot delete command in BPM versions prior to 856. Do not use this command unless you know that you're on a version of BPM where this command works as expected. More details here.
This issue with REST API's returning old business instance data is addressed in JR47818 APAR. More details of this APAR can be found here.
This APAR is included in IBM BPM 856 as well as 855 and other BPM FixPacks. Check all the versions in above APAR link.
In addition to this fix from IBM, you will need to set the following properties in BPM XML configuration files in order for the changes to take effect -
<server> <portal merge="mergeChildren"> <use-business-aliases-for-process-instances merge="replace">true</use-business-aliases-for-process-instances> <init-bdac-on-startup merge="replace">true</init-bdac-on-startup> </portal> <repository merge="mergeChildren"> <bdac-refresh-interval merge="replace">1800</bdac-refresh-interval> </repository> </server>
Above code snippet is the override you can place into 100Custom.xml or any other custom XML file in appropriate place. For instructions on how to perform XML configuration overrides in BPM read this technote.
Once you perform the change and restart BPM for the changes to be picked up you may notice that the business data variables are now displayed in scope of instance and not in scope of all snapshots.
Option #2 additional notes:
- Remember that if you have completed instances on your old snapshot then the business data variables from that old snapshot even from completed instances will still show up because Brazos Portal shows data for completed instances and as a result it shows all business data variables associated with those instances
- The bdac-refresh-interval is essentially the time it will take for the changes of business data instance scope cache to be reflected in BPM. So, if you have removed business data variable or removed all the instances associated with particular business data variable in order for the changes to be picked up by Brazos Portal the refresh interval has to be taken into account.
- You might also need to logout and login back to Brazos Portal for the latest changes related to business data variables to be visible.