Error while getting the form page list

Hello!

I developed an application (Bonita Version : 6.3.2 - The Portal is a tomcat bundle with mysql ) that sends a link the following parameters:

import org.bonitasoft.engine.bpm.flownode.ActivityInstance; import org.bonitasoft.engine.bpm.process.ProcessDefinition;

StringBuffer buffer = new StringBuffer();
ProcessDefinition processDefinition = apiAccessor.getProcessAPI().getProcessDefinition(processDefinitionId);
ActivityInstance activityInstance = apiAccessor.getProcessAPI().getActivityInstance(activityInstanceId);

buffer.append(“http://”);
buffer.append(“bonita.portal:8080”);
buffer.append(“/bonita/portal/homepage?ui=form&locale=en&theme=”);
buffer.append(processDefinitionId);
buffer.append(“#form=”);
buffer.append(processDefinition.getName());
buffer.append(“–”);
buffer.append(processDefinition.getVersion());
buffer.append(“%24recap”);
buffer.append(“&mode=app&task=”);
buffer.append(activityInstanceId);
return buffer.toString();

Today the message Error while getting the form page list. started to appears after the user did the authentication in the Bonita Portal. And the page isn’t displayed.

Everything was working perfectly until today! Please, somebody can help me?

What can be happen?

Thanks in Advance,
Fabi

Hi,
SADataInstance represents an instance of data, once it is archived because the value has changed or the task is finished. It is stored in table **arch_data_instance ** in the database.
With this error, you must have the name and / or ID of the data that is not found. Can you manually check in the database if the data is there?

HTH
Emmanuel

Hello! Sylvain,

Well, better late than never :o)

I’m reviewing the process, so I tried to apply your code, but the result was the same that I already have: the link will guide you to the next activity step!

I would like to show the overview page, just to read all the fields filled during the process.

Periodically I have to clean some bonita process database tables, so the new process can be read through my code.

I read that this happens because is a bonita bug: some temporary tables aren’t cleaned by the process.

If you have some other advice, or solution that you would like to share, I’ll appreciate!

Thank you for your assistance!

Fabi

Hello! Sylvain,

Well, better late than never :o)

I’m reviewing the process, so I tried to apply your code, but the result was the same that I already have: the link will guide you to the next activity step!

I would like to show the overview page, just to read all the fields filled during the process.

Periodically I have to clean some bonita process database tables, so the new process can be read through my code.

I read that this happens because is a bonita bug: some temporary tables aren’t cleaned by the process.

If you have some other advice, or solution that you would like to share, I’ll appreciate!

Thank you for your assistance!

Fabi

Has someone updated the form? This is what i usually find is the problem.

I would also review the logs because they usually indicate (roughly) what the problem is.

… found one more:
"…
Caused by: org.bonitasoft.engine.expression.ExpressionEvaluationException: USERNAME= corn.flakes | org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: org.bonitasoft.engine.data.instance.exception.SDataInstanceReadException: Unable to read SADataInstance
"

Thanks,
Fabi

Hi Sean!

I think nobody changed the form. In the log I found some error clue, can you help me to understand why this is happening?

org.bonitasoft.console.common.server.utils.BPMExpressionEvaluationException:
Error when evaluating expressions on completed activity instance 160595. Error on expression evaluation for the expression with name [null].
at org.bonitasoft.forms.server.accessor.api.ExpressionEvaluatorEngineClient.evaluateExpressionsOnCompletedActivityInstance(ExpressionEvaluatorEngineClient.java:74)

Thank you very much! :o)
Fabi

Merry Xmas

Well I would suggest more of the log which would help,

but - you’ve also found the errors.

One of the fields you are trying to use is NULL and not filled in…

Possibly, just maybe because your database **SADataInstance **is closed…why that is - would need the log in full. But that is where I would start, why is the database closed?

regards

Hello! First of all, thanks for answer :o)

Well, I’m really don’t know where came from the “SADataInstance is closed” … I have a lot of database connections in this application (postgres, sqlserver and mysql data) …

I take a look at the bonita portal database ( its mysql ) and the archived instances have 1.5 million registers.

This error occurs when I try to access an archived instance process … could be some ‘bonita 6.3.2 - mysql bug’ ?

I don’t know how to delete an archived instance … If I knew it I could clean some old registers … any help will be welcomed!

Thanks … again :o)
Fabi

Try this :

ProcessDefinition processDefinition = apiAccessor.getProcessAPI().getProcessDefinition(processDefinitionId); ActivityInstance activityInstance = apiAccessor.getProcessAPI().getActivityInstance(activityInstanceId);

StringBuffer buffer = new StringBuffer(“Go to this link: <a href="”);
buffer.append(“http://”);
buffer.append(“bonita.portal:8080”);
buffer.append(“/bonita?ui=form&locale=fr#form=”);
buffer.append(processDefinition.getName());
buffer.append(“–”);
buffer.append(processDefinition.getVersion());
buffer.append(“–”);
buffer.append(activityInstance.getName());
buffer.append(“$entry&mode=app&task=”);
buffer.append(activityInstanceId);
buffer.append(“">Portail Bonita”);

return buffer.toString();

http://documentation.bonitasoft.com/accessing-bonita-bpm-portal-and-forms-url

Hi
Did sylvain.bailly’s answer help you?
Thx for sharing.

Hello!

Sorry, I couldn’t answer before because I was working with another project. Now I’m back and I tested your script, but the return was:

Groovy compiling error: unable to resolve class ProcessDefinition.
unable to resolve class ActivityInstance.

Well, maybe I’m doing something wrong…

Thank you for understanding
Fabi

Do u add before my script these 2 import :

import org.bonitasoft.engine.bpm.flownode.ActivityInstance;
import org.bonitasoft.engine.bpm.process.ProcessDefinition;

Hello!!

Ops, I didn’t do it … I’ll try again and, as soon as I finish I’ll post the return…

Thx again for all support …
Fabi

Hello! Sylvain,

Well, better late than never :o)

I’m reviewing the process, so I tried to apply your code, but the result was the same that I already have: the link will guide you to the next activity step!

I would like to show the overview page, just to read all the fields filled during the process.

Periodically I have to clean some bonita process database tables, so the new process can be read through my code.

I read that this happens because is a bonita bug: some temporary tables aren’t cleaned by the process.

If you have some other advice, or solution that you would like to share, I’ll appreciate!

Thank you for your assistance!

Fabi