camunda icon indicating copy to clipboard operation
camunda copied to clipboard

BPMN deployment fails due to unknown BPMN extensions

Open falko opened this issue 4 years ago • 3 comments

Describe the bug The Zeebe engine refuses to deploy a schema-valid BPMN file that contains extension elements from other vendors, e.g.

  <semantic:relationship type="trisoExtension">
    <semantic:extensionElements>
      <triso:graphRelations />
      ...
    </semantic:extensionElements>
    ...
  </semantic:relationship>

This issue has been discovered during the preparations for the demo of the OMG's BPMN Model Interchange Working Group that is planned for the OMG Technical Meeting during March 21-25, 2022 in Reston, VA USA.

It is likely going to be a problem for any users that have BPMN models created or modified by modeling tools from other vendors. All BPMN tool vendors use extensions as standardized by the BPMN specification to store additional meta data in the models. The engine is not required to understand such extensions but must not reject models because of them.

There are also standardized BPMN extensions like BPMN in Color or BPMN I18n, which use the same XML mechanics and must also not be rejected.

To Reproduce

Deploy the attached BPMN file: Vacation Request Part6 - Camunda Cloud.bpmn.txt

Expected behavior

The BPMN parser of the engine ignores any XML elements that it doesn't know about. It may warn about them. It should fail if a model is not schema-valid.

Log/Stacktrace

Full Stacktrace

Command 'CREATE' rejected with code 'INVALID_ARGUMENT': Expected to deploy new resources, but encountered the following errors:
'Vacation Request Part6 - Camunda Cloud.bpmn': Unable to process unknown element with name graphRelations [ deploy-error ]

Environment:

  • OS: Linux
  • Zeebe Version: 1.3.0-alpha1
  • Configuration: Camunda Cloud SaaS

Camunda Modeler system information

  • Version: 4.12.0-nightly.20211117
  • Operating System: Linux x86_64 amd64
  • Plugins: BPMN Driven Testing, Layering, BPMN Linter, Rename Technical IDs, Transaction Boundaries, Camunda Property Infos, Camunda Cloud, Cloud Connect
  • Execution Platform: BPMN - Camunda Cloud

falko avatar Nov 17 '21 23:11 falko

Workaround: xmlstarlet edit --inplace --ps -N bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" --delete "//bpmn:extensionElements" 'vacation-request.bpmn'

falko avatar Nov 17 '21 23:11 falko

Related to #8230

falko avatar Nov 18 '21 12:11 falko

If someone has some spare time we could pick this up to make the demo work in March

menski avatar Nov 22 '21 08:11 menski

We want to verify if this issue still exists or if it is fixed already (as we expect).

saig0 avatar Aug 29 '22 05:08 saig0

We want to verify if this issue still exists or if it is fixed already (as we expect).

Command 'CREATE' rejected with code 'INVALID_ARGUMENT': Expected to deploy new resources, but encountered the following errors: 'VacationRequest.bpmn': Unable to process unknown element with name graphRelations [ deploy-error ]

<semantic:relationship type="trisoExtension">
    <semantic:extensionElements>
      <triso:graphRelations />
      <triso:itemDefinitions>

Hi, @saig0, It's still exists. graphRelations is not on BPMN2.0 spec.

skayliu avatar Nov 22 '22 17:11 skayliu

Hi, @menski ,@saig0 @falko, I've tested on the latest 8.2.0-SNAPSHOT(after PR #10845 Related to #8230 and PR #11074 Related to #8521 #10962), this issue it's not exists any more.

The bpmn file can be successfuly deployed, after add the job types and change conditions. Vacation.Request.Part6.bpmn.txt

skayliu avatar Dec 03 '22 10:12 skayliu

I can confirm that the issue fixed in the current snapshot version. :heavy_check_mark: The fix will be available in version 8.2.0-alpha3.

@skayliu thank you for testing it. :rocket:

saig0 avatar Dec 21 '22 12:12 saig0