Wednesday, 18 November 2015

IBM BPM - how to find BPDs with Autotracking set to 'On'

If you're familiar with IBM BPM, you'll probably know about the Autotracking feature in business processes. The issue with this is that it tracks a LOT of data into the performance data warehouse (PDW) which might not be what you want to do.

In earlier versions, whenever you create a new Business Process Definition, the 'Autotracking' flag was set to 'on' by default. In later ones (8.5+ I think?) this default was set to off.

If you've been running IBM BPM for a while, you probably have a lot of snapshots deployed. You might want to find out which of your deployed BPDs have the Autotracking flag set to 'On' so you can make a conscious decision as to whether that's correct and if you need to make changes.

If you have DB2 (I don't know if this works for Oracle or SQLServer) you can use the following trick:

select
from lsw_bpd 
where data like blob('%<autoTrackingEnabled>true</autoTrackingEnabled>%');

(#update: This used to reference 'ls_bpd' - thanks to Dave Hay for spotting this!)

LSW_BPD is the table where the BPD data is stored in BLOB format, so it's not immediately readable. What the above does is to search all of the BLOB data for the Autotracking flag, but does it by searching for some BLOB data within the BLOB column.

(If you want to get the snapshot names, process app names  etc, you'll probably need to link to other tables).

Please note that this is a 'quick query' read-only hack and you should most definitely NOT update the table in order to change the flag. The correct way to do it is to identify the Process App, find the BPD in Process Designer, change the Autotracking flag, create a new snapshot and re-deploy.

No warranty given or implied, but it saved me a lot of trawling through Process Designer!

2 comments:

  1. Andy

    Great tip, thanks. One thing - it's LSW_BPD surely, not LS_BPD ? :-)

    ReplyDelete
  2. Good spot, Dave - correcting. . .

    ReplyDelete