Hi Jim,
You have it right. And this is where some get a little confused, what is Process data if it is not Business Data?
This is my interpretation…
Basically what happens is the data is kept with the process as “evidence” that the process was run and run in a particular way.
Process data should really be defined as “those entities (and their values) that enable or change the flow within a process”
imagine a branch, is SalesValue > 1,000 then do this, otherwise do this. SalesValue is Process data as it changes the flow. It can be used as evidence in a later trial if necessary.
Whereas Business data “are those entities that may have no value to the process but value to the business”.
In the above example SalesValue of course has business value so it is both Business data and Process data…
Whereas Seán (a persons name) is probably of no value to the process, who puts a condition - if Seán comes along give him an Aston Martin? This is just business data and has no relevance to the outcome of the process (unless someone wants to give me an Aston Martin
Business Data shouldn’t really be saved with the process unless it is used to alter the flow of the process, this is just duplication of data, however it is what it is.
That being said, in your example there will be 100 archived processes and you could write a routine to read all 100 archived processes and use the data that way - but don’t do it, use the database as you have already guessed, and rather than save the data at the end of the process, save as you go along, I find it much better.
I think there is one type of Data that is missing from Bonita which is POOL Transient Data,
As you will have read,
process data that stays with the Process in its entire life, including after it is archived, and
transient data that is only available to the step in question.
My view is POOL Transient Data, means that the data is Available to the pool during this execution and this execution only and is never saved once the process finishes.
This would mitigate my circumstance where I’ve had to add one step to a process to clear all process data for security reasons. As **Haris **said
*Your business data would remain accesible after a process instance is finished (to other process instances or even different applications). - See more at: http://community.bonitasoft.com/answers/process-data-it-saved#sthash.PWpDgT5I.dpuf
*
as far as I’m concerned - a potential security hole…
I think I’ll add this as a Required Feature Request.
Here is a sample of what you should be doing
var1 transient
var2 pool data
show screen, get var1, var2, click OK → ON EXIT connector to save to database must be ON THE SAME STEP
if var 2>0 then
var3 transient
show screen, get var3 click OK → ON EXIT connector to save to database must be ON THE SAME STEP
else
var4 transient
show screen, get var4 click OK → ON EXIT connector to save to database must be ON THE SAME STEP
The only pool data that is saved is var2.
Hope that helps, regards
Seán