Using external task form with remote engine

Hi, I’m using camunda as a remote engine as recommended in Deciding about your Camunda 7 stack | Camunda Platform 8. This way, I have camunda running as “Camunda Run” and an external web application.

I also want to use external task forms in the camunda tasklist and link to the external web application. For this I created a bpm with a userTask containing something like the following: camunda:formKey=“app:showSomeForm.html”.

When showing this task in the tasklist a warning is shown saying “The context path is either empty or not defined” which is true because I have no idea how to set a context path for an external application.

All examples I found use camunda as an embedded engine. Is this impossible or do I just don’t know how to set a context path to an external application.

Best regards
Jan

1 Like

Hi Jan,
one option is the following:
Use the REST API or the Cockpit to create a deployment that contains both the model(s) and the form files. Then, both belong to one deployment, and you can then reference the form via camunda:formKey=deployment:formName.html

Regards,
Stephan

Hi @StephanHaarmann ,
thank you for your response.

I tried your suggestion but angular turns the url into unsafe:deployement:task-form.html?taskId=90f0dca6-377c-11ed-99e1-56fc3af5d304&callbackUrl=http://localhost:8080/camunda/app/tasklist/default/#/ because it is not explicitly white listed. The unsafe part prevents the browser from showing the form.

I guess using external as the type of task list is only meant to be used when you embed your camunda inside your own application.

I hope I can simulate the same behaviour by deploying a form as embedded:deployemnet:task-form.html. The task form will then show a link to the real external form.

EDIT:
I tried using embedded:deployment:task-form.html as the form key, but this time the form does not load because of the following console error:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at deployement:task-form.html?noCache=1663528778557&userId=jan&engineName=default&taskId=d67f33e9-3782-11ed-99e1-56fc3af5d304. (Reason: CORS request not http).

Acoording to Reason: CORS request not HTTP - HTTP | MDN this is because the browser (firefox) will only request http or https. I think the problem is the deployement: prefix of the link making the browser think it’s a kind of protocol.

I tried editing the application.yaml file of the camunda run server by adding:

camunda.bpm.run.cors
      enabled: true
      allowed-origins: '*'

but this did not help b/c the problem is not the allowed-origins. The problem is that firefox thinks it’s dealing with a deployement-protocol :frowning: The same problem occurs in Chrome failing with the following error:

Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https, isolated-app.

I think I’m running out of options showing a custom form when running camunda separate from my companion application. Or am I missing something?

To be clear: I’m trying to run camunda as a separate process as advised in the best practices and use the task list for showing forms that are more advanced than the generic-form or camunda-form. I hope there is a way that this is supported.

Best regards
Jan

Try going through your steps again, very carefully checking your spelling.
Not that it’s definitely going to help… but it might.

deployement and deployment are different to the filters, and a number of your error messages report deployement.

Hi @GotnOGuts ,
thank you for your sharp eyes. This is very embarrassing for me :slight_smile: . I did indeed test everything with deployement instead of deployment.

I tested everything again and all seems to work as expected.

Thanks all for helping.

Jan

Glad to hear you got it sorted out!
At the end of the day, that’s what counts.

And, really, my speeling isn’t much better, so that’s why I know to look for it :stuck_out_tongue: