# Uses of Interface
org.flowable.engine.repository.ProcessDefinition

Packages that use ProcessDefinition
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.compatibility
org.flowable.engine.form
Classes related to the `FormService`.
org.flowable.engine.interceptor
org.flowable.engine.migration
org.flowable.engine.repository
Classes related to the `RepositoryService`.

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

  Methods in org.flowable.engine that return ProcessDefinition
  Modifier and Type
  Method
  Description
  `ProcessDefinition`
  RepositoryService.`getProcessDefinition(String processDefinitionId)`
  Returns the `ProcessDefinition` including all BPMN information like additional Properties (e.g. documentation).

- ## Uses of ProcessDefinition in org.flowable.engine.compatibility

  Methods in org.flowable.engine.compatibility that return ProcessDefinition
  Modifier and Type
  Method
  Description
  `ProcessDefinition`
  Flowable5CompatibilityHandler.`getProcessDefinition(String processDefinitionId)`
  `ProcessDefinition`
  Flowable5CompatibilityHandler.`getProcessDefinitionByKey(String processDefinitionKey)`
  Methods in org.flowable.engine.compatibility with parameters of type ProcessDefinition
  Modifier and Type
  Method
  Description
  `org.flowable.engine.impl.persistence.deploy.ProcessDefinitionCacheEntry`
  Flowable5CompatibilityHandler.`resolveProcessDefinition(ProcessDefinition processDefinition)`

- ## Uses of ProcessDefinition in org.flowable.engine.form

  Methods in org.flowable.engine.form that return ProcessDefinition
  Modifier and Type
  Method
  Description
  `ProcessDefinition`
  StartFormData.`getProcessDefinition()`
  The process definition for which this form is starting a new process instance

- ## Uses of ProcessDefinition in org.flowable.engine.interceptor

  Fields in org.flowable.engine.interceptor declared as ProcessDefinition
  Modifier and Type
  Field
  Description
  `protected ProcessDefinition`
  AbstractStartProcessInstanceAfterContext.`processDefinition`
  `protected ProcessDefinition`
  AbstractStartProcessInstanceBeforeContext.`processDefinition`
  Methods in org.flowable.engine.interceptor that return ProcessDefinition
  Modifier and Type
  Method
  Description
  `ProcessDefinition`
  AbstractStartProcessInstanceAfterContext.`getProcessDefinition()`
  `ProcessDefinition`
  AbstractStartProcessInstanceBeforeContext.`getProcessDefinition()`
  Methods in org.flowable.engine.interceptor with parameters of type ProcessDefinition
  Modifier and Type
  Method
  Description
  `void`
  AbstractStartProcessInstanceAfterContext.`setProcessDefinition(ProcessDefinition processDefinition)`
  `void`
  AbstractStartProcessInstanceBeforeContext.`setProcessDefinition(ProcessDefinition processDefinition)`
  Constructors in org.flowable.engine.interceptor with parameters of type ProcessDefinition
  Modifier
  Constructor
  Description
  ``
  `AbstractStartProcessInstanceAfterContext(org.flowable.engine.impl.persistence.entity.ExecutionEntity processInstance, org.flowable.engine.impl.persistence.entity.ExecutionEntity childExecution, Map<String,Object> variables, Map<String,Object> transientVariables, FlowElement initialFlowElement, Process process, ProcessDefinition processDefinition)`
  ``
  `AbstractStartProcessInstanceBeforeContext(String businessKey, String businessStatus, String processInstanceName, Map<String,Object> variables, Map<String,Object> transientVariables, String initialActivityId, FlowElement initialFlowElement, Process process, ProcessDefinition processDefinition)`
  ``
  `StartProcessInstanceAfterContext(org.flowable.engine.impl.persistence.entity.ExecutionEntity processInstance, org.flowable.engine.impl.persistence.entity.ExecutionEntity childExecution, Map<String,Object> variables, Map<String,Object> transientVariables, FlowElement initialFlowElement, Process process, ProcessDefinition processDefinition)`
  ``
  `StartProcessInstanceBeforeContext(String businessKey, String businessStatus, String processInstanceName, String callbackId, String callbackType, String referenceId, String referenceType, Map<String,Object> variables, Map<String,Object> transientVariables, String tenantId, String ownerId, String assigneeId, String initiatorVariableName, String initialActivityId, FlowElement initialFlowElement, Process process, ProcessDefinition processDefinition, String overrideDefinitionTenantId, String predefinedProcessInstanceId)`
  ``
  `StartSubProcessInstanceAfterContext(org.flowable.engine.impl.persistence.entity.ExecutionEntity processInstance, org.flowable.engine.impl.persistence.entity.ExecutionEntity childExecution, Map<String,Object> variables, Map<String,Object> transientVariables, org.flowable.engine.impl.persistence.entity.ExecutionEntity callActivityExecution, List<IOParameter> inParameters, FlowElement initialFlowElement, Process process, ProcessDefinition processDefinition)`
  ``
  `StartSubProcessInstanceBeforeContext(String businessKey, String businessStatus, String processInstanceName, Map<String,Object> variables, Map<String,Object> transientVariables, org.flowable.engine.impl.persistence.entity.ExecutionEntity callActivityExecution, List<IOParameter> inParameters, boolean inheritVariables, String initialActivityId, FlowElement initialFlowElement, Process process, ProcessDefinition processDefinition)`

- ## Uses of ProcessDefinition in org.flowable.engine.migration

  Methods in org.flowable.engine.migration with parameters of type ProcessDefinition
  Modifier and Type
  Method
  Description
  `void`
  ProcessInstanceMigrationCallback.`processInstanceMigrated(ProcessInstance processInstance, ProcessDefinition procDefToMigrateTo, ProcessInstanceMigrationDocument document, org.flowable.common.engine.impl.interceptor.CommandContext commandContext)`

- ## Uses of ProcessDefinition in org.flowable.engine.repository

  Methods in org.flowable.engine.repository with parameters of type ProcessDefinition
  Modifier and Type
  Method
  Description
  `void`
  InternalProcessDefinitionLocalizationManager.`localize(ProcessDefinition processDefinition, String locale, boolean withLocalizationFallback)`