# Uses of Interface
org.flowable.engine.runtime.ProcessInstanceBuilder

Packages that use ProcessInstanceBuilder
Package
Description
org.flowable.engine
Public API of the Flowable engine.
Typical usage of the API starts by the creation of a `ProcessEngineConfiguration` (typically based on a configuration file), from which a `ProcessEngine` can be obtained.
Through the services obtained from such a `ProcessEngine`, BPM and workflow operation can be executed:
`RepositoryService`: Manages `Deployment`s.
`RuntimeService`: For starting and searching `ProcessInstance`s.
`TaskService`: Exposes operations to manage human (standalone) tasks, such as claiming, completing and assigning tasks.
`IdentityService`: Used for managing users, groups and the relations between them.
`ManagementService`: Exposes engine administration and maintenance operations, which have no relation to the runtime exection of business processes.
`HistoryService`: Exposes information about ongoing and past process instances.
`FormService`: Access to form data and rendered forms for starting new process instances and completing tasks.
org.flowable.engine.runtime
Classes related to the `RuntimeService`.

- ## Uses of ProcessInstanceBuilder in org.flowable.engine

  Methods in org.flowable.engine that return ProcessInstanceBuilder
  Modifier and Type
  Method
  Description
  `ProcessInstanceBuilder`
  RuntimeService.`createProcessInstanceBuilder()`
  Create a `ProcessInstanceBuilder`, that allows to set various options for starting a process instance, as an alternative to the various startProcessInstanceByXX methods.

- ## Uses of ProcessInstanceBuilder in org.flowable.engine.runtime

  Methods in org.flowable.engine.runtime that return ProcessInstanceBuilder
  Modifier and Type
  Method
  Description
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`assignee(String userId)`
  Set the assignee of the process instance to be created to the given user id.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`businessKey(String businessKey)`
  Set the businessKey of process instance
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`businessStatus(String businessStatus)`
  Set the businessStatus of process instance
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`callbackId(String callbackId)`
  Sets the callback identifier of the process instance.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`callbackType(String callbackType)`
  Sets the callback type of the process instance.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`fallbackToDefaultTenant()`
  Use default tenant as a fallback in the case when process definition was not found by key and tenant id
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`formVariables(Map<String,Object> formVariables, org.flowable.form.api.FormInfo formInfo, String formOutcome)`
  Start the process instance with the given form variables from the given `formInfo`.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`messageName(String messageName)`
  Set the message name that needs to be used to look up the process definition that needs to be used to start the process instance.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`name(String processInstanceName)`
  Set the name of process instance
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`outcome(String outcome)`
  Allows to set an outcome for a start form.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`overrideProcessDefinitionTenantId(String tenantId)`
  Indicator to override the tenant id of the process definition with the provided value.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`owner(String userId)`
  Set the owner of the process instance to be created to the given user id.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`predefineProcessInstanceId(String processInstanceId)`
  When starting a process instance from the CMMN engine process task, the process instance id needs to be known beforehand to store entity links and callback references before the process instance is started.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`processDefinitionId(String processDefinitionId)`
  Set the id of the process definition
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`processDefinitionKey(String processDefinitionKey)`
  Set the key of the process definition, latest version of the process definition with the given key.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`processDefinitionParentDeploymentId(String parentDeploymentId)`
  When looking up for a process definition by key it would first lookup for a process definition within the given parent deployment.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`referenceId(String referenceId)`
  Sets the reference identifier of the process instance.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`referenceType(String referenceType)`
  Sets the reference type of the process instance.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`stageInstanceId(String stageInstanceId)`
  Set the optional instance id of the stage this process instance belongs to, if it runs in the context of a CMMN case.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`startEventId(String startEventId)`
  Set the start event in case of an event registry start event that is triggered to start the process instance.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`startFormVariable(String variableName, Object value)`
  Adds one variable from a start form to the process instance.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`startFormVariables(Map<String,Object> startFormVariables)`
  Adds variables from a start form to the process instance.
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`tenantId(String tenantId)`
  Set the tenantId of to lookup the process definition
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`transientVariable(String variableName, Object value)`
  Adds a transient variable to the process instance
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`transientVariables(Map<String,Object> transientVariables)`
  Sets the transient variables
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`variable(String variableName, Object value)`
  Adds a variable to the process instance
  `ProcessInstanceBuilder`
  ProcessInstanceBuilder.`variables(Map<String,Object> variables)`
  Sets the process variables