Changeable Business Key

439 views
Skip to first unread message

Matthias Brenner

unread,
Sep 24, 2015, 8:07:41 AM9/24/15
to camunda BPM platform contributors
This is a request to improve handling of business key.

My point of view:
BPMN provides handling of processes, the purpose is to provide changes on business artifacts. Thus each artifact may be manipulated by a set of BPMN processes. The key of such an artifact is the business key.

At the moment, there is no possibility to change the business key. The only possibility is to set the business key at launch time of the process. What are the problems from this situation?
  1. New Artifact
    If I want to create an artifact, the first step is to enter artifact properties. During the process, the organization may agree and decide on the business key, thus there will be a step, the final business key gets assigned. Unfortunately, I cannot change the business key. This would force me to design business processes by technical limitations which is not of interest.
  2. Modify Artifact / act on artifact
    I have to select an artifact, than the business key is fixed. By the technical limitations I am forced to select the artifact before the process is launched. I would prefer a technical solution which uniformly relays on the BPMN engine as trigger for user interaction. I would like to model a user task "select artifact". Even if I would assign the select artifact GUI to the start event, it is too late to set the business key, as I understood the technical limitations.

As I understood from discussions with Camunda people, originally the business key was a unique property, there could be only one process having a specific business key assigned. Since call activities raise sub processes, the limitation was removed to allow the sub process to share the same business key. So I think one could change the idea and allow modifications on the business key.

thorben.lindhauer

unread,
Sep 24, 2015, 8:20:00 AM9/24/15
to camunda BPM platform contributors
Hi,

In this use case, how to handle the case that one business process instance may manipulate multiple artifacts? Thus, I think you wouldn't need anther indirection anyway (i.e. something that maps a business key to a set of artifacts and vice versa).

As a side note, you could also use process variables instead of a business key for your use case.

Cheers,
Thorben

Matthias Brenner

unread,
Sep 24, 2015, 8:29:23 AM9/24/15
to camunda BPM platform contributors
Hi Thorben,

I think an artifact is identified by an business key. The Camunda API provides fast searches for business key, because it is part of the database table. OK, I could overcome the problem by variable usage with loss of clearness in the way the problem is addressed and loss of performance.

I could also generate some artificial business key and provide it to Camunda and build my own organization around Camunda. Please understand my post as a request to make clear the concept of business key. As it is addressed in the moment, I believe it is not as usable as it could be.

Kind regards
Matthias

Daniel Meyer

unread,
Sep 28, 2015, 7:26:14 AM9/28/15
to camunda...@googlegroups.com
Hi all,

many people raised the issue of not being able to change the business key at runtine. The motivation of why they want to do this varies.

@Thorben, would you agree with this:
We would merge a pull request which provides:
- Public API (RuntineService) for setting a business key for a process instance
- Delegation API (DelegateExecution) fro setting a business key for the current process instance
- History infrastructure which makes sure the changed business key is updated in history as well.

Regards,
Daniel

thorben.lindhauer

unread,
Sep 28, 2015, 7:56:35 AM9/28/15
to camunda BPM platform contributors
HI,

Sure, that's fine for me.

Cheers,
Thorben

Rob P

unread,
Sep 28, 2015, 8:53:57 AM9/28/15
to camunda BPM platform contributors
Hi Daniel,

Im a little uncomfortable with the concept of a changeable key. In my use cases, the business key represents an immutable key binding the process instance to a particular business context. Are we sure that the use cases suggested are not dynamic references to business object unique keys? If thats the case, Im much more supportive of the use of process variables.

regards

Rob
Reply all
Reply to author
Forward
0 new messages