How i can analyse Bonita process ?

Hi;
I create two projects (two processes) with bonita version 9.
Are there any way to analyse these processes ? to compared their execution ?

If you want to make sure that BPMN messages sent from one process to another are actually consumed (i.e. received and use by the target process) you can monitor the content of MESSAGE_INSTANCE table in Bonita Engine database.

If you want to perform validation before deploying the processes on a server you probably want to do some analysis on process definition. You can use the Java class BusinessArchiveFactory (create using a process bar file) to get the DesignProcessDefinition. You can then use getFlowElementContainer to access information about element in the process and then try for example to look for flow node of type IntermediateThrowEventDefinition to get the information about a throw message event.

Can you be a little bit more precise about the expected outcome of this analyse? Do you want for example to compare execution duration? Something else?

Also if you can provide a little bit more details about your processes that can be helpful to provide an accurate answer (e.g. did they include human tasks, connectors…).

I guess your are using Bonita 7.9 as version 9 does not exists :slight_smile:

I want to compare how they change the messages to their partners. To detect the incompatibility and prevent what message each partner must have to make the collaboration. For example: customer and supplier. Knowing that these messages have been defined in the data model with a standard format.

no connector but human tasks, service tasks, scripts, messages exchanged.

So if I sum up you want to make sure that the processes defined in your project that receive messages only try to access message content that actually exist. Is that right?

          

for this i want to compare thier logs or data base to detecte these mismatchs (if they exist). because they used the same format of message (standard =same name+… ).
the standard format of message contains information which may be help me to detecte these mismatchs.

Antoine, in which bonita version we can do it (process analyse )? more information please !!!

for this i want to compare thier logs or data base to detecte these mismatchs (if they exist). because they used the same format of message (standard =same name+… ).
the standard format of message contains information which may be help me to detecte these mismatchs.

both are important.
1- Do you mean to use the Bonita BPM Engine APIs to access the MESSAGE_INSTANCE table?
If this is the case, can we do it in the bonita environment ? or we can just do it outside bonita, with eclipse for example?

As far as I know Bonita Engine does not provide APIs to access waiting messages information. So the only solution I can recommend for now is to directly query the Bonita Engine database (MESSAGE_INSTANCE table). You can do that with any database client tool such as DBeaver.

In order to analyse the process definition you would need to create a small Java standalone application that would use bonita-client library to use BusinessArchiveFactory class to get process design definition information. Note that if process is already deployed you can use processAPI.getDesignProcessDefinition() to retrieve design information instead of using BusinessArchiveFactory.

i search in bonita repository, but i can 't find MESSAGE_INSTANCE table ?
where I can find this table ?

If you are using Bonita Studio, the Engine database use for testing is located in BonitaStudioCommunity-7.9.4/workspace/<project directory>/h2_database/bonita_journal.db.

You can connect to it using the following JDBC URL: jdbc:h2:/home/antoine/studio/BonitaStudioCommunity-7.9.4/workspace/my-project/h2_database/bonita_journal.db;AUTO_SERVER=TRUE (this is a path to the file on Linux, it need to be adapt to your installation).

1- url I have juste this three files:
bonita_journal.db.lock
bonita_journal.db.mv
bonita_journal.db.trace
I have not complete the execution of my process, we can find this file?

2- this is the url modèle:
jdbc:h2:tcp://{host}[:{port}]/{database}

what i can put in :
host
port
database
?

I found the message instance table, but it does not contain any data, the WAITING_EVENT table contains some messages?
Can I have these instances of messages as well as the other instances of tasks with the community version?