How to handle large business data



I have a little problem, it is probably easy to solve, but before i start doing some nonsense i ask for help.

There is a business data object lets say object A, and that object has a more objects as attributes, even lists. Lets say A has a list of B objects (about 20 000-30 000). If i choose in bdm settings to always load B list, it is not so efficient, and maybe i will run out of memory as well when i try to use A in business data. If i choose only load when necessary then displaying A objects B list wont be easy, and even with always load it is to big to handle.

My question is how to display and manipulate business variable, if it has more then 10 000 records?

The biggest problem is when i generate these in groovy script because i cant save it to database one-by-one, or can i?

Another question that is similar, i have a list of objects, and want to give the user the freedom of modifying each object from the lets say 10 000 objects, after modifying when the user submits i have to handle all those 10 000 objects? Even displaying them is really hard. If i use pages like in the bonita portal, then if i go to another page, everything i did on the first page wont be modifed in the end.

So i really need to create pages of data, and allow the user only to manpulate the seen data on the actual page?

If this is the case, then how does the user delete objects? How do i know in the process or in tasks execution section that one item was removed if i load and then send only partial data not all? Using the designers built in method of manipulating multiple objects with containers collection only removes the elements from the collection. In the execution section i cant tell if it was removed if only a part off full data is sent.

Thanks for any help!

(Sorry for bad english)


1 answer

This one is the BEST answer!


For your first problem. It's not a Bonita problem, in all application, when data is too big, you need to user lazy loading.
To do that in bonita, if you use a form, you need to load your object A, and create a datatable with 2 buttons ( prev - next ) that increment a variable and call API for incrementing the page like that :


The 2nd problem, you need to create button 'save' that call an external API that save only the viewed data. Or add a JavaScript asset that scan your input and save it automatically. And same think for your delete button.

Hope it's will help you.



Submitted by kurucsai.zoltan... on Mon, 01/13/2020 - 08:40

Thank you for the fast reply, i thought of something like this but needed someone with experience to back up my theory :) The example helps a lot in understanding.