|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface MessageCorrelationBuilder
A fluent builder for defining message correlation
| Method Summary | |
|---|---|
void |
correlate()
Deprecated. use () instead. |
void |
correlateAll()
Deprecated. use () instead. |
List<MessageCorrelationResult> |
correlateAllWithResult()
Executes the message correlation for multiple messages and returns a list of message correlation results. |
void |
correlateExclusively()
Behaves like correlate(), however uses pessimistic locking for correlating a waiting execution, meaning
that two threads correlating a message to the same execution in parallel do not end up continuing the
process in parallel until the next wait state is reached |
ProcessInstance |
correlateStartMessage()
Executes the message correlation. |
MessageCorrelationResult |
correlateWithResult()
Executes the message correlation and returns a MessageCorrelationResult object. |
MessageCorrelationBuilder |
processDefinitionId(String processDefinitionId)
Correlate the message such that a process definition with the given id is selected. |
MessageCorrelationBuilder |
processInstanceBusinessKey(String businessKey)
Correlate the message such that the process instance has a business key with the given name. |
MessageCorrelationBuilder |
processInstanceId(String id)
Correlate the message such that a process instance with the given id is selected. |
MessageCorrelationBuilder |
processInstanceVariableEquals(String variableName,
Object variableValue)
Correlate the message such that the process instance has a variable with the given name and value. |
MessageCorrelationBuilder |
processInstanceVariablesEqual(Map<String,Object> variables)
Correlate the message such that the process instance has the given variables. |
MessageCorrelationBuilder |
setVariable(String variableName,
Object variableValue)
Pass a variable to the execution waiting on the message. |
MessageCorrelationBuilder |
setVariables(Map<String,Object> variables)
Pass a map of variables to the execution waiting on the message. |
MessageCorrelationBuilder |
tenantId(String tenantId)
Specify a tenant to deliver the message to. |
MessageCorrelationBuilder |
withoutTenantId()
Specify that the message can only be received on executions or process definitions which belongs to no tenant. |
| Method Detail |
|---|
MessageCorrelationBuilder processInstanceBusinessKey(String businessKey)
Correlate the message such that the process instance has a business key with the given name. If the message is correlated to a message start event then the given business key is set on the created process instance.
businessKey - the businessKey to correlate on.
MessageCorrelationBuilder processInstanceVariableEquals(String variableName,
Object variableValue)
Correlate the message such that the process instance has a variable with the given name and value.
variableName - the name of the process instance variable to correlate on.variableValue - the value of the process instance variable to correlate on.
MessageCorrelationBuilder processInstanceVariablesEqual(Map<String,Object> variables)
Correlate the message such that the process instance has the given variables.
variables - the variables of the process instance to correlate on.
MessageCorrelationBuilder processInstanceId(String id)
Correlate the message such that a process instance with the given id is selected.
id - the id of the process instance to correlate on.
MessageCorrelationBuilder processDefinitionId(String processDefinitionId)
Correlate the message such that a process definition with the given id is selected.
Is only supported for correlateStartMessage().
processDefinitionId - the id of the process definition to correlate on.
MessageCorrelationBuilder setVariable(String variableName,
Object variableValue)
Pass a variable to the execution waiting on the message. Use this method for passing the message's payload.
Invoking this method multiple times allows passing multiple variables.
variableName - the name of the variable to setvariableValue - the value of the variable to set
MessageCorrelationBuilder setVariables(Map<String,Object> variables)
Pass a map of variables to the execution waiting on the message. Use this method for passing the message's payload
variables - the map of variables
MessageCorrelationBuilder tenantId(String tenantId)
processInstanceId(String) or processDefinitionId(String).
tenantId - the id of the tenant
MessageCorrelationBuilder withoutTenantId()
processInstanceId(String) or processDefinitionId(String).
@Deprecated void correlate()
() instead.
MessageCorrelationResult correlateWithResult()
MessageCorrelationResult object.
The call of this method will result in either:
MessageCorrelationResult.getResultType().
MismatchingMessageCorrelationException - if none or more than one execution or process definition is matched by the correlation
AuthorizationException - Permissions.UPDATE permission on
Resources.PROCESS_INSTANCE or no Permissions.UPDATE_INSTANCE permission on
Resources.PROCESS_DEFINITION.Permissions.CREATE permission on
Resources.PROCESS_INSTANCE and no Permissions.CREATE_INSTANCE permission on
Resources.PROCESS_DEFINITION.void correlateExclusively()
Behaves like correlate(), however uses pessimistic locking for correlating a waiting execution, meaning
that two threads correlating a message to the same execution in parallel do not end up continuing the
process in parallel until the next wait state is reached
CAUTION: Wherever there are pessimistic locks, there is a potential for deadlocks to occur. This can either happen when multiple messages are correlated in parallel, but also with other race conditions such as a message boundary event on a user task. The process engine is not able to detect such a potential. In consequence, the user of this API should investigate this potential in his/her use case and implement countermeasures if needed.
A less error-prone alternative to this method is to set appropriate async boundaries in the process model such that parallel message correlation is solved by optimistic locking.
@Deprecated void correlateAll()
() instead.
List<MessageCorrelationResult> correlateAllWithResult()
This will result in any number of the following:
Note that the message correlates to all tenants if no tenant is specified using tenantId(String) or withoutTenantId().
AuthorizationException - Permissions.UPDATE permission on
Resources.PROCESS_INSTANCE or no Permissions.UPDATE_INSTANCE permission on
Resources.PROCESS_DEFINITION.Permissions.CREATE permission on
Resources.PROCESS_INSTANCE and no Permissions.CREATE_INSTANCE permission on
Resources.PROCESS_DEFINITION.ProcessInstance correlateStartMessage()
This will result in either:
MismatchingMessageCorrelationException - if none or more than one process definition is matched by the correlation
AuthorizationException - if one process definition is matched and the user has no
Permissions.CREATE permission on
Resources.PROCESS_INSTANCE and no
Permissions.CREATE_INSTANCE permission on
Resources.PROCESS_DEFINITION.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||