How to ignore old workflow definitions parsing errors

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-30-2014 05:35 AM
Hi,
we have upgraded Alfresco from 4.2.b to 4.2.e. Our Activiti process had to be changed as old process definition had errors with new version of Alfresco. One of them:
<blockcode>
Caused by: org.activiti.engine.ActivitiException: Errors while parsing:
Exclusive Gateway 'exclusivegateway8' has outgoing sequence flow 'flow38ignore' which is the default flow but has a condition too. |
</blockcode>
We have corrected the process and it works fine for new instances.
The problem we have is that any query to history will throw exception, as the Alfresco cannot load old workflow definitions. For example, if user opens 'My completed tasks' it will throw an error.
Can this be ignored/fixed?
I have found that Activiti has a property for enabling/disabling safe BPMN parsing: http://www.activiti.org/userguide/#advanced.safe.bpmn.xml
Is this applicable to Alfresco?
With regards,
Davorin
we have upgraded Alfresco from 4.2.b to 4.2.e. Our Activiti process had to be changed as old process definition had errors with new version of Alfresco. One of them:
<blockcode>
Caused by: org.activiti.engine.ActivitiException: Errors while parsing:
Exclusive Gateway 'exclusivegateway8' has outgoing sequence flow 'flow38ignore' which is the default flow but has a condition too. |
</blockcode>
We have corrected the process and it works fine for new instances.
The problem we have is that any query to history will throw exception, as the Alfresco cannot load old workflow definitions. For example, if user opens 'My completed tasks' it will throw an error.
Can this be ignored/fixed?
I have found that Activiti has a property for enabling/disabling safe BPMN parsing: http://www.activiti.org/userguide/#advanced.safe.bpmn.xml
Is this applicable to Alfresco?
With regards,
Davorin
Labels:
- Labels:
-
Archive
3 REPLIES 3

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-05-2014 02:37 PM
Hi Davorin,
Did the corrected process only contain a fix for the default flow issue, or were there more changes?
If there are no other changes the best solution would be to point running process instances to the new corrected process definition using the org.activiti.engine.impl.cmd.SetProcessDefinitionVersionCmd class.
Using the org.activiti.engine.ManagementService executeCommand method it's possible to execute this command and change the process instances one by one to the new process definition.
The property you are referring to for enabling/disabling safe BPMN parsing is not relevant.
Best regards,
Tijs
Did the corrected process only contain a fix for the default flow issue, or were there more changes?
If there are no other changes the best solution would be to point running process instances to the new corrected process definition using the org.activiti.engine.impl.cmd.SetProcessDefinitionVersionCmd class.
Using the org.activiti.engine.ManagementService executeCommand method it's possible to execute this command and change the process instances one by one to the new process definition.
The property you are referring to for enabling/disabling safe BPMN parsing is not relevant.
Best regards,
Tijs

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-10-2014 04:40 AM
Thank you for your reply.
We do not have a problem with the running instances. All are using new process definition.
The problem occurs when we want to use any kind of historic data. For example, looking at the completed tasks or more generally when invoking getWorkflowsForContent method of the workflow service. Parsing exception is always thrown.
Can these old versions of the process just be removed somehow, without losing workflow and task history?
With regards,
Davorin
We do not have a problem with the running instances. All are using new process definition.
The problem occurs when we want to use any kind of historic data. For example, looking at the completed tasks or more generally when invoking getWorkflowsForContent method of the workflow service. Parsing exception is always thrown.
Can these old versions of the process just be removed somehow, without losing workflow and task history?
With regards,
Davorin
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-22-2014 06:10 AM
Has anybody found a solution to this problem ?
I have to upgrade from Alfresco 4.1.3 to Alfresco5.0
If I make a change in bpmn20.xml file, none of the old workflows are loaded and I get the same error on console :
Caused by: org.activiti.engine.ActivitiException: Errors while parsing:
Exclusive Gateway has only one outgoing sequence flow. This is not allowed to have a condition.
I have to upgrade from Alfresco 4.1.3 to Alfresco5.0
If I make a change in bpmn20.xml file, none of the old workflows are loaded and I get the same error on console :
Caused by: org.activiti.engine.ActivitiException: Errors while parsing:
Exclusive Gateway has only one outgoing sequence flow. This is not allowed to have a condition.
