Issue encountered in main process when correlating a message in event subprocess

Hi,

I have the following Camunda bpmn: https://cawemo.com/share/dedf3cfd-8e8d-494d-9e54-6aa572149d75

In my ‘moveToNextTask’ intermediate catch event, I mapped an output parameter called ‘sampleParameter’ which I expect to be caught when a message is correlated for that catch event. I also have an event sub process with a message event called ‘cancelProcess’ which should interrupt the main process when correlated.

However, when I correlate the ‘cancelProcess’ message, I get the following error:

{
    "type": "ProcessEngineException",
    "message": "Unknown property used in expression: ${sampleParameter}. Cause: Cannot resolve identifier 'sampleParameter'"
}

I believe it shouldn’t try to resolve the ‘sampleParameter’ since I’m not trying to correlate the one (moveToNextTask) in the main process.

Has anyone encountered this? Hope to get some help.

Thanks,
Jen

Can you upload your model and also explain exactly how you’re making the REST Call?

Hi Niall!

I uploaded the bpmn in the cawemo link above. I call this REST API:

/engine-rest/message

{
    "messageName": "cancelProcess",
    "processInstanceId": "f5bafbf4-5c81-11ea-9255-f68ae0a94570"
}

Sadly i can’t see the technical details in cawemo so i need you to upload the model

Oh my bad! Here you go:

Jen_Experiment.bpmn (5.7 KB)

I just tried it out and was able to replicate the problem.
Can i ask why you’re using an output parameter in the first place?

External call can correlate with a bunch of parameters, but in here we only want to map certain variables and to ignore what we don’t need.

Let’s say we correlate:

{
    "messageName": "moveToNextTask",
    "processInstanceId": "5bebc813-5c96-11ea-9255-f68ae0a94570",
    "processVariablesLocal": {
        "sampleParameter": {
            "value": "In Progress",
            "type": "String"
        },
        "uselessParameter": {
            "value": "Useless",
            "type": "String"
        }
    }
}

Here, only the value for ‘sampleParameter’ will be mapped and ‘uselessParameter’ will be ignored.

1 Like

Any update regarding this issue?
I’m also interested in the solution :slight_smile:

For me it’s also kinda counter-intuitive that sending a different message, forces the other message’s output parameters to be resolved.

I understand in the process engine actually the token leaves the current execution and therefore resolving output parameters.

But it would be convenient to have some setting where you can skip IO mappings.
Just like when you modify a process instance:

@Niall maybe you have some genius idea?