I am new to camunda bpm. I have few doubts regarding persistence and reporting .
I have configured camuda with mysql. Everything looks fine for now. Following are the steps i followed to configure :
- > executed mysql_identity and mysql _engine script
(Can you explain for what purpose identity is used for?)
-> changed datasource from h2 to mysql and added mysql connector in tomcat lib folder.
My question is in which table does the task variable persist. Is there any way camunda support persisting on our own table. Like i would create my own data type say person having name , age attributes , i have to persist this values to person table. If possible please provide some reference
Is there any way to integrate camunda with any reporting frame work like jasper reports .?
The answers related to database can you probably find in the documentation. I don’t think that you can configure Camunda so it automatically uses your own tables.
So how we can manage and retrieve data we have on user task forms ?
@Ajr A good answer to your questions was already given by @mppfor_manu in this forum post.
For the future it would be helpful, if you do not open several forum topics for the same issue. The advantage of a single topic is that you can bundle the answers and an answer to your issue is easier to find in case someone else might have the same problem.
Person is not a data type, it is a data object, and one of the most important ones, besides business_partners.
Are you creating a complete application from scratch, with persons and purchase orders?
Then you will need also suppliers (or more general speaking those business_partners), articles, org_units for the departments of your company and so on.
In general “process variables” should be used to store data for transition conditions “affect the path of the process” (example: Boolean process variable named “approved”), and identifiers for business data stored in an external database (example: String process variable named “orderId” which has the value of the unique identifier of business order object/record)
Form Loading Phase:
Using the unique identifier value (which is stored in a process variable named “orderId”), business data (order object) should be retrieved.
In case of embedded forms, This could be done by invoking your custom rest service (your get order rest service) in “form-loaded” event listener
Form Submission Phase:
Business data (order object) should be saved to the external database
In case of embedded forms, This could be done by invoking your custom rest service (your save order rest service) in “submit-success” event listener
In case of simple forms (simple business data)
You could use process variables to store the business data (use JSON type to store form data & use primitive type to store searchable attributes)
(Student Object could be stored as JSON type process variable
& searchable attributes like studentId & name could be stored as primitive type process variables)
I am interested in the following question:
Does it make sense to use a process engine as a full-stack application framework?
Because my feeling is that Ajr is trying to do this.
Maybe one could define a certain complexity limit in regard to number of involved fields and tables, until where it makes sense?
And are there plans to make data binding easier, so that Camunda can be used as application framework?
I guess the users see how easy it is to create forms, so they want to create applications.
The goal of Camunda is not to be a full-blown application development framework, but rather to integrate well with complementary technologies like Java EE, Spring, etc. One such example can be seen in the Java EE getting started guide: https://docs.camunda.org/get-started/javaee6/
It shows how to use JPA to persist and access custom entities in the context of process execution and participate in the transaction opened by the process engine.
Edit: Due to that flexibility, it is hard to give the correct answer when it comes to such open questions about which technologies to use. There are simply numerous ways.
@Ajr: If you want to get better responses, think about your qestion differently. How would you persist data if you were building an application without Camunda? Which technologies would you use? Then, we can help you with integrating that technology with Camunda and point you to fitting documentation.
Hi @thorben ,
As @bernd.korthaus says am analysing whether camunda can be used as an application frame work. From my experience with other BPM’s i have used (for analysis) they have modules to frame data’s and we can easily persist data into our own database (Without coding, That’s what BPM meant for ) . In same way am asking whether camunda have any kind of facility to do without help of a developer .
And when you create forms you are also developing, and very quickly you need functions like field validations.
In the end the question is how big is the solution I want to develop, and does it make sense to integrate a full-blown-application framework with a process engine on top (as @thorben already said Camunda is not an application development framework).
For large and mid-size projects I would say yes, for small tasks with a simple workflow I doubt. The developing efforts and costs would be too high.
regarding an application framework, you might want to have a look at Servoy, it’s the current state of the art on that type of tool.
Opposed to many other BPM vendors, zero code is not the Camunda philosophy. We consider this a strength of Camunda BPM instead of a shortcoming. Here’s a blogpost on that topic from the beginnings of the Camunda BPM project: https://blog.camunda.org/post/2013/04/the-camunda-hypothesis/ And a whitepaper: https://network.camunda.org/whitepaper/1. Depending on your use case, Camunda may or may not be the right framework then.