Package org.flowable.engine

# Interface DynamicBpmnService

public interface DynamicBpmnService
Service providing access to the repository of process definitions and deployments.

Author:
  Tijs Rademakers

- ## Method Summary

  Modifier and Type
  Method
  Description
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeCallActivityCalledElement(String id, String calledElement)`
  `void`
  `changeCallActivityCalledElement(String id, String calledElement, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeDmnTaskDecisionTableKey(String id, String decisionTableKey)`
  `void`
  `changeDmnTaskDecisionTableKey(String id, String decisionTableKey, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeLocalizationDescription(String language, String id, String value)`
  `void`
  `changeLocalizationDescription(String language, String id, String value, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeLocalizationName(String language, String id, String value)`
  `void`
  `changeLocalizationName(String language, String id, String value, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeMultiInstanceCompletionCondition(String id, String completionCondition)`
  `void`
  `changeMultiInstanceCompletionCondition(String id, String completionCondition, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeScriptTaskScript(String id, String script)`
  `void`
  `changeScriptTaskScript(String id, String script, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeSequenceFlowCondition(String id, String condition)`
  `void`
  `changeSequenceFlowCondition(String id, String condition, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeServiceTaskClassName(String id, String className)`
  `void`
  `changeServiceTaskClassName(String id, String className, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeServiceTaskDelegateExpression(String id, String expression)`
  `void`
  `changeServiceTaskDelegateExpression(String id, String expression, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeServiceTaskExpression(String id, String expression)`
  `void`
  `changeServiceTaskExpression(String id, String expression, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeSkipExpression(String id, String skipExpression)`
  `void`
  `changeSkipExpression(String id, String skipExpression, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskAssignee(String id, String assignee)`
  `void`
  `changeUserTaskAssignee(String id, String assignee, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskCandidateGroup(String id, String candidateGroup, boolean overwriteOtherChangedEntries)`
  `void`
  `changeUserTaskCandidateGroup(String id, String candidateGroup, boolean overwriteOtherChangedEntries, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskCandidateGroups(String id, List<String> candidateGroups)`
  Creates a new processDefinitionInfo with `DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS` for the given BPMN element.
  `void`
  `changeUserTaskCandidateGroups(String id, List<String> candidateGroups, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  Updates a processDefinitionInfo's `DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS` with the new list.
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskCandidateUser(String id, String candidateUser, boolean overwriteOtherChangedEntries)`
  `void`
  `changeUserTaskCandidateUser(String id, String candidateUser, boolean overwriteOtherChangedEntries, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskCandidateUsers(String id, List<String> candidateUsers)`
  Creates a new processDefinitionInfo with `DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS` for the given BPMN element.
  `void`
  `changeUserTaskCandidateUsers(String id, List<String> candidateUsers, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  Updates a processDefinitionInfo's `DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS` with the new list.
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskCategory(String id, String category)`
  `void`
  `changeUserTaskCategory(String id, String category, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskDescription(String id, String description)`
  `void`
  `changeUserTaskDescription(String id, String description, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskDueDate(String id, String dueDate)`
  `void`
  `changeUserTaskDueDate(String id, String dueDate, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskFormKey(String id, String formKey)`
  `void`
  `changeUserTaskFormKey(String id, String formKey, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskName(String id, String name)`
  `void`
  `changeUserTaskName(String id, String name, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskOwner(String id, String owner)`
  `void`
  `changeUserTaskOwner(String id, String owner, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `changeUserTaskPriority(String id, String priority)`
  `void`
  `changeUserTaskPriority(String id, String priority, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `enableSkipExpression()`
  `void`
  `enableSkipExpression(com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `getBpmnElementProperties(String id, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `DynamicProcessDefinitionSummary`
  `getDynamicProcessDefinitionSummary(String processDefinitionId)`
  Gives a summary between the `BpmnModel` and `getProcessDefinitionInfo(String)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `getLocalizationElementProperties(String language, String id, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `com.fasterxml.jackson.databind.node.ObjectNode`
  `getProcessDefinitionInfo(String processDefinitionId)`
  `void`
  `injectEmbeddedSubProcessInProcessInstance(String processInstanceId, org.flowable.engine.impl.dynamic.DynamicEmbeddedSubProcessBuilder dynamicEmbeddedSubProcessBuilder)`
  `void`
  `injectParallelEmbeddedSubProcess(String taskId, org.flowable.engine.impl.dynamic.DynamicEmbeddedSubProcessBuilder dynamicEmbeddedSubProcessBuilder)`
  `void`
  `injectParallelUserTask(String taskId, org.flowable.engine.impl.dynamic.DynamicUserTaskBuilder dynamicUserTaskBuilder)`
  `void`
  `injectUserTaskInProcessInstance(String processInstanceId, org.flowable.engine.impl.dynamic.DynamicUserTaskBuilder dynamicUserTaskBuilder)`
  `void`
  `removeEnableSkipExpression(com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `void`
  `removeSkipExpression(String id, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  `void`
  `resetProperty(String elementId, String property, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`
  Clears the field from the infoNode.
  `void`
  `saveProcessDefinitionInfo(String processDefinitionId, com.fasterxml.jackson.databind.node.ObjectNode infoNode)`

- ## Method Details

  - ### injectUserTaskInProcessInstance

    void injectUserTaskInProcessInstance(String processInstanceId, org.flowable.engine.impl.dynamic.DynamicUserTaskBuilder dynamicUserTaskBuilder)

  - ### injectParallelUserTask

    void injectParallelUserTask(String taskId, org.flowable.engine.impl.dynamic.DynamicUserTaskBuilder dynamicUserTaskBuilder)

  - ### injectEmbeddedSubProcessInProcessInstance

    void injectEmbeddedSubProcessInProcessInstance(String processInstanceId, org.flowable.engine.impl.dynamic.DynamicEmbeddedSubProcessBuilder dynamicEmbeddedSubProcessBuilder)

  - ### injectParallelEmbeddedSubProcess

    void injectParallelEmbeddedSubProcess(String taskId, org.flowable.engine.impl.dynamic.DynamicEmbeddedSubProcessBuilder dynamicEmbeddedSubProcessBuilder)

  - ### getProcessDefinitionInfo

    com.fasterxml.jackson.databind.node.ObjectNode getProcessDefinitionInfo(String processDefinitionId)

  - ### saveProcessDefinitionInfo

    void saveProcessDefinitionInfo(String processDefinitionId, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeServiceTaskClassName

    com.fasterxml.jackson.databind.node.ObjectNode changeServiceTaskClassName(String id, String className)

  - ### changeServiceTaskClassName

    void changeServiceTaskClassName(String id, String className, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeServiceTaskExpression

    com.fasterxml.jackson.databind.node.ObjectNode changeServiceTaskExpression(String id, String expression)

  - ### changeServiceTaskExpression

    void changeServiceTaskExpression(String id, String expression, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeServiceTaskDelegateExpression

    com.fasterxml.jackson.databind.node.ObjectNode changeServiceTaskDelegateExpression(String id, String expression)

  - ### changeServiceTaskDelegateExpression

    void changeServiceTaskDelegateExpression(String id, String expression, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeScriptTaskScript

    com.fasterxml.jackson.databind.node.ObjectNode changeScriptTaskScript(String id, String script)

  - ### changeScriptTaskScript

    void changeScriptTaskScript(String id, String script, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeSkipExpression

    com.fasterxml.jackson.databind.node.ObjectNode changeSkipExpression(String id, String skipExpression)

  - ### changeSkipExpression

    void changeSkipExpression(String id, String skipExpression, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### removeSkipExpression

    void removeSkipExpression(String id, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### enableSkipExpression

    com.fasterxml.jackson.databind.node.ObjectNode enableSkipExpression()

  - ### enableSkipExpression

    void enableSkipExpression(com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### removeEnableSkipExpression

    void removeEnableSkipExpression(com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskName

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskName(String id, String name)

  - ### changeUserTaskName

    void changeUserTaskName(String id, String name, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskDescription

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskDescription(String id, String description)

  - ### changeUserTaskDescription

    void changeUserTaskDescription(String id, String description, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskDueDate

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskDueDate(String id, String dueDate)

  - ### changeUserTaskDueDate

    void changeUserTaskDueDate(String id, String dueDate, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskPriority

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskPriority(String id, String priority)

  - ### changeUserTaskPriority

    void changeUserTaskPriority(String id, String priority, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskCategory

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskCategory(String id, String category)

  - ### changeUserTaskCategory

    void changeUserTaskCategory(String id, String category, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskFormKey

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskFormKey(String id, String formKey)

  - ### changeUserTaskFormKey

    void changeUserTaskFormKey(String id, String formKey, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskAssignee

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskAssignee(String id, String assignee)

  - ### changeUserTaskAssignee

    void changeUserTaskAssignee(String id, String assignee, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskOwner

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskOwner(String id, String owner)

  - ### changeUserTaskOwner

    void changeUserTaskOwner(String id, String owner, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskCandidateUser

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskCandidateUser(String id, String candidateUser, boolean overwriteOtherChangedEntries)

  - ### changeUserTaskCandidateUser

    void changeUserTaskCandidateUser(String id, String candidateUser, boolean overwriteOtherChangedEntries, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskCandidateGroup

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskCandidateGroup(String id, String candidateGroup, boolean overwriteOtherChangedEntries)

  - ### changeUserTaskCandidateGroup

    void changeUserTaskCandidateGroup(String id, String candidateGroup, boolean overwriteOtherChangedEntries, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeUserTaskCandidateUsers

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskCandidateUsers(String id, List<String> candidateUsers)
    Creates a new processDefinitionInfo with `DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS` for the given BPMN element. Don't forget to call `saveProcessDefinitionInfo(String, ObjectNode)`
    Parameters:
      `id` - the bpmn element id (ex. sid-3392FDEE-DD6F-484E-97FE-55F30BFEA77E)
      `candidateUsers` - the candidate users.
    Returns:
      a new processDefinitionNode with the candidate users for the given bpmn element.

  - ### changeUserTaskCandidateUsers

    void changeUserTaskCandidateUsers(String id, List<String> candidateUsers, com.fasterxml.jackson.databind.node.ObjectNode infoNode)
    Updates a processDefinitionInfo's `DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS` with the new list. Previous values for the BPMN Element with `DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS` as key are ignored. Don't forget to call `saveProcessDefinitionInfo(String, ObjectNode)`
    Parameters:
      `id` - the bpmn element id (ex. sid-3392FDEE-DD6F-484E-97FE-55F30BFEA77E)
      `candidateUsers` - the candidate users.
      `infoNode` - the current processDefinitionInfo. This object will be modified.

  - ### changeUserTaskCandidateGroups

    com.fasterxml.jackson.databind.node.ObjectNode changeUserTaskCandidateGroups(String id, List<String> candidateGroups)
    Creates a new processDefinitionInfo with `DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS` for the given BPMN element. Don't forget to call `saveProcessDefinitionInfo(String, ObjectNode)`
    Parameters:
      `id` - the bpmn element id (ex. sid-3392FDEE-DD6F-484E-97FE-55F30BFEA77E)
      `candidateGroups` - the candidate groups.
    Returns:
      a new processDefinitionNode with the candidate users for the given bpmn element.

  - ### changeUserTaskCandidateGroups

    void changeUserTaskCandidateGroups(String id, List<String> candidateGroups, com.fasterxml.jackson.databind.node.ObjectNode infoNode)
    Updates a processDefinitionInfo's `DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS` with the new list. Previous values for the BPMN Element with `DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS` as key are ignored. Don't forget to call `saveProcessDefinitionInfo(String, ObjectNode)`
    Parameters:
      `id` - the bpmn element id (ex. sid-3392FDEE-DD6F-484E-97FE-55F30BFEA77E)
      `candidateGroups` - the candidate groups.
      `infoNode` - the current processDefinitionInfo. This object will be modified.

  - ### changeMultiInstanceCompletionCondition

    com.fasterxml.jackson.databind.node.ObjectNode changeMultiInstanceCompletionCondition(String id, String completionCondition)

  - ### changeMultiInstanceCompletionCondition

    void changeMultiInstanceCompletionCondition(String id, String completionCondition, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeDmnTaskDecisionTableKey

    com.fasterxml.jackson.databind.node.ObjectNode changeDmnTaskDecisionTableKey(String id, String decisionTableKey)

  - ### changeDmnTaskDecisionTableKey

    void changeDmnTaskDecisionTableKey(String id, String decisionTableKey, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeSequenceFlowCondition

    com.fasterxml.jackson.databind.node.ObjectNode changeSequenceFlowCondition(String id, String condition)

  - ### changeSequenceFlowCondition

    void changeSequenceFlowCondition(String id, String condition, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeCallActivityCalledElement

    com.fasterxml.jackson.databind.node.ObjectNode changeCallActivityCalledElement(String id, String calledElement)

  - ### changeCallActivityCalledElement

    void changeCallActivityCalledElement(String id, String calledElement, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### getBpmnElementProperties

    com.fasterxml.jackson.databind.node.ObjectNode getBpmnElementProperties(String id, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeLocalizationName

    com.fasterxml.jackson.databind.node.ObjectNode changeLocalizationName(String language, String id, String value)

  - ### changeLocalizationName

    void changeLocalizationName(String language, String id, String value, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### changeLocalizationDescription

    com.fasterxml.jackson.databind.node.ObjectNode changeLocalizationDescription(String language, String id, String value)

  - ### changeLocalizationDescription

    void changeLocalizationDescription(String language, String id, String value, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### getLocalizationElementProperties

    com.fasterxml.jackson.databind.node.ObjectNode getLocalizationElementProperties(String language, String id, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

  - ### resetProperty

    void resetProperty(String elementId, String property, com.fasterxml.jackson.databind.node.ObjectNode infoNode)

    Clears the field from the infoNode. So the engine uses the `BpmnModel` value On next instance.

    Don't forget to save the modified infoNode by calling `saveProcessDefinitionInfo(String, ObjectNode)`
    Parameters:
      `elementId` - the flow elements id.
      `property` - `DynamicBpmnConstants` property
      `infoNode` - to modify

  - ### getDynamicProcessDefinitionSummary

    DynamicProcessDefinitionSummary getDynamicProcessDefinitionSummary(String processDefinitionId)
    Gives a summary between the `BpmnModel` and `getProcessDefinitionInfo(String)`
    Parameters:
      `processDefinitionId` - the process definition id (key:version:sequence)
    Returns:
      DynamicProcessDefinitionSummary if the processdefinition exists
    Throws:
      `IllegalStateException` - if there is no processDefinition found for the provided processDefinitionId.