Business key configuration

Dear users,

I’d like to implement a BK for my Camunda proces since I will be using many different proces instances which should correlate with my main proces. Suppose I start my proces with a catch message (loads of variables pour into my BPMN) proces. Where and how do I define (in the modeler) which of these variables should be my BK?

kind regards,

T

Addition: how do I pass variables from one process instance to another using a signal event? My correlated proces instance fires when it reaches the signal, however I can’t seem to find where I need to map the variables I want to pass with the signal (in the modeler).

For this question, you could check out this page: https://docs.camunda.org/manual/7.9/reference/bpmn20/events/signal-events/#passing-variables

For this question, you might read:
https://docs.camunda.org/manual/7.9/reference/bpmn20/events/message-events/#message-start-event

Business Keys are no variables in camunda.

Best
Felix

@felix-mueller, I read this page. This gives an answer how to add code. I’d like an explanation where to configure the variables in the property panel in the modeler. Is there any?

“Business Keys are no variables in camunda”

I’m not quite sure what you are trying to say here.

Anyone :)?

I think what Felix is pointing to is the fact the the business key is not a variable like other variables: it is created once, when starting the process and cannot be changed during the process’ execution. It’s also not stored in the way other variables are, nor is it necessarily composed from any number of variables. You determine its value upfront, then start the process with the value, that never changes afterwards.

@tiesebarrell Ah, right. Well, that’s sort of what I want anyway. Thanks for the clarification.

Have you got any idea about the other trouble I’m having?

The way it is set up is that you don’t declare the variables being “sent” from the signal throwing event, but you define the ones the are required as input on the catching side. These are the input/output mappings you create on the catching event. There you can determine how values from the throwing side are mapped into your receiving side (or just define all as mentioned in the documentation). I had a brief look in the modeler, but it seems adding the variables is to be done by hand in the XML. Bu I might have missed the option TBH, maybe someone else knows.

@tiesebarrell thanks for your response. At least I am certain of one thing now. I did indeed went to follow your train of thought at one point where I tried to declare which variables my catching event should receive and try to map them in. Unfortunately, like you, I couldn’t find a decent way to map them in the property panel. Mapping them through XML is an option but in the future I’d like a more simple way for my colleagues to use this without having to throw XML at them.

I agree, it seems strange to me too. Maybe there’s an option we both didn’t manage to spot for this and someone else will chime in with the good news :slight_smile:

Hehe, hope makes the world go round. Thanks anyhow.

Ah, I ‘solved’ my problem. I was just lazy and didn’t update my modeler properly. In the newer version the throw event simply has a variable tab. How embarrassing. @tiesebarrell

I see what you mean! I had a fairly new version, but still didn’t see it. The newest one has the tab indeed :smiley:

While Camunda Modeler solved the question of variables, it didn’t solve businessKey issue yet. To pass businessKey either to new process created with Signal Start Event or to existing process possessing the key in question you either need to use XML view of your BPMN with instructions from Camunda BPMN manual:

<signalEventDefinition signalRef="newCustomerSignal">
    <extensionElements>
          <camunda:in businessKey="${execution.processBusinessKey}" />
    </extensionElements>
</signalEventDefinition>

or endorse with ":+1: the issue I’d raised in Camunda Modeler Issue tracker at: