Okay, took some further testing to get the specifics:
With 7.10 it introduced the
processBusinessKey property and related getters and setters in the ExecutionListener and JavaDelegate implementations
Prior to this there was the
businessKey property, which continues to exist in 7.10+. So in 7.10+ there is the businessKey and the processBusinessKey properties.
There also continues to exist the
getBusinessKey() method that is carried from CoreExecution.
This means someone can access
execution.setBusinessKey("myKey"), and the business key will be set in the runtime tables (but not in the history tables). When the process instance completes, the history table is updated with the business key that was previous set using the
setBusinessKey(). This creates a weird problem for script writers, because it is an unintended behavior that does not generate a error, and “Eventually” resolves it self… But when someone does a history table lookup during the process being active, they would not get the expected result.
Additionally it increases confusion for script writers when they are writing “getBusinessKey” which functions as expected, but they have to write “setProcessBusinessKey()”. Which can create further confusion if script writers are accessing the properties directly rather than using the methods:
val myKey = execution.businessKey
execution.businessKey = "123"