How to prevent wrong case index number on new process ?



I'm actually with bonita 5.2.

I've actually a strange behavior on bonita about case index number.

My actual case index number for active workflow is : #28 and i need to purge every weeks the history.

But, i have some old wf, always open named, by example : WF_TEST_MYNEWPROCESS - #30.
I have to keep it because, it's not finished and still opened and needed to be complete by people.

When i try to start another workflow, the #29 is ok, but starting a second wf name #30 will be blocked and I see why.

So, I retry once more and bonita decided to take #31 as new index for this case.

Is there any ways to prevent this kind of behavior ? Like reindexing correctly the cases index number ?

Thank you.


Submitted by bonitafree on Fri, 03/03/2017 - 11:53

I saw something since Bonita 6.2 documentation about Performance Tuning > Sequence Manager. Is this correct the index case generation ?

2 answers


Hi Lionel, thanks for your answer and the explanation.

I edited to try my to explain specific example :

List of bonita processes on UserXp with case.indexnumber :

WF_BONITA_PROCESS #4 (archived)
WF_BONITA_PROCESS #3 (archived)
WF_BONITA_PROCESS #1 (archived)

Considering that i'll delete only archived process #1, bonita will reset id case to 1.

I could create the first one but the second process will be in error.

Here how i load my bonita archive (WF_BONITA_PROCESS) with version archive (1.0)

ProcessDefinitionUUID processDefinitionUUID = new ProcessDefinitionUUID(businessArchive,
instanceUUID = runtimeAPI.instantiateProcess(processDefinitionUUID);

There is any way to set to my instanceUUid a specific number case ?

I donno wich version of bonita will correct this problem.

n.b : just to remind you im actually in bonita 5.2 and not 6.2 (where i saw this Sequence Manager thing in doc)



yes the sequence manager can be modified to control the range of id reserved by the engine at the startup. This way, each time the engine needs to insert a new rows, the id is already reserved and available in memory. This is good practice for performance. That being said, the mininum you can set is an increment of 1. I don't think you can specify the starting number. A general rule is to consider the case id as an internal reference and don't try to use it for external communication. You should better have your own reference either in a business variable or a process variable.