How to create a complex business object in activiti BPM ?
In all of the BPM products we can create business objects which can hold the data of the process, for examples in a Loan Application Process we can have a LoanDetails object which can contain several attributes or fields within it like applicantName, loanAmount, interestRate etc etc.
If you are using Community version, you will have to do that programmatically and save them as complex variables. Custom SQL Queries are another option if you want to keep the business data separate from process data in community.
Re: How to create a complex business object in activiti BPM ?
Ciju points to Data Models as the correct mechanism for creating a complex business object, however Data Models are very limited as they map directly to a single table, cant handle nested variables (i.e. that include lists) and limit the supported data types.
Yes, there is the ability to create a custom persistence class, but again, this may limit your structure simply by the way the class API is structured.
That said, if you are using Enterprise Edition and the embedded forms, then you will probably be best served using data models as you will be able to map form components into the data models relatively easily.
If you are using Community Edition or the engine stand-alone, I suggest you create Pojo's to represent your data model.
If you need to persist these, then map them to database tables using JPA and if you need to interact from a UI, then add custom serializers (e.g. serialize to JSON).
Often how you handle this really depends on the scenario and indeed one size does not fit all.
Likely you will implement in a number of different ways to satisfy your application requirements.