Package org.flowable.engine

# Interface FormService

public interface FormService
Access to form data and rendered forms for starting new process instances and completing tasks.

Author:
  Tom Baeyens, Falko Menge (camunda)

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `getRenderedStartForm(String processDefinitionId)`
  Rendered form generated by the default build-in form engine for starting a new process instance.
  `Object`
  `getRenderedStartForm(String processDefinitionId, String formEngineName)`
  Rendered form generated by the given build-in form engine for starting a new process instance.
  `Object`
  `getRenderedTaskForm(String taskId)`
  Rendered form generated by the default build-in form engine for completing a task.
  `Object`
  `getRenderedTaskForm(String taskId, String formEngineName)`
  Rendered form generated by the given build-in form engine for completing a task.
  `StartFormData`
  `getStartFormData(String processDefinitionId)`
  Retrieves all data necessary for rendering a form to start a new process instance.
  `String`
  `getStartFormKey(String processDefinitionId)`
  Retrieves a user defined reference to a start form.
  `TaskFormData`
  `getTaskFormData(String taskId)`
  Retrieves all data necessary for rendering a form to complete a task.
  `String`
  `getTaskFormKey(String processDefinitionId, String taskDefinitionKey)`
  Retrieves a user defined reference to a task form.
  `void`
  `saveFormData(String taskId, Map<String,String> properties)`
  Save the data that was entered as properties in a task form.
  `ProcessInstance`
  `submitStartFormData(String processDefinitionId, String businessKey, Map<String,String> properties)`
  Start a new process instance with the user data that was entered as properties in a start form.
  `ProcessInstance`
  `submitStartFormData(String processDefinitionId, Map<String,String> properties)`
  Start a new process instance with the user data that was entered as properties in a start form.
  `void`
  `submitTaskFormData(String taskId, Map<String,String> properties)`
  Completes a task with the user data that was entered as properties in a task form.

- ## Method Details

  - ### getStartFormData

    StartFormData getStartFormData(String processDefinitionId)
    Retrieves all data necessary for rendering a form to start a new process instance. This can be used to perform rendering of the forms outside of the process engine.

  - ### getRenderedStartForm

    Object getRenderedStartForm(String processDefinitionId)
    Rendered form generated by the default build-in form engine for starting a new process instance.

  - ### getRenderedStartForm

    Object getRenderedStartForm(String processDefinitionId, String formEngineName)
    Rendered form generated by the given build-in form engine for starting a new process instance.

  - ### submitStartFormData

    ProcessInstance submitStartFormData(String processDefinitionId, Map<String,String> properties)
    Start a new process instance with the user data that was entered as properties in a start form.

  - ### submitStartFormData

    ProcessInstance submitStartFormData(String processDefinitionId, String businessKey, Map<String,String> properties)
    Start a new process instance with the user data that was entered as properties in a start form. A business key can be provided to associate the process instance with a certain identifier that has a clear business meaning. For example in an order process, the business key could be an order id. This business key can then be used to easily look up that process instance , see `ProcessInstanceQuery.processInstanceBusinessKey(String)`. Providing such a business key is definitely a best practice.
    Parameters:
      `processDefinitionId` - the id of the process definition, cannot be null.
      `businessKey` - a key that identifies the process instance and can be used to retrieve the process instance later via the query API.
      `properties` - the properties to pass, can be null.

  - ### getTaskFormData

    TaskFormData getTaskFormData(String taskId)
    Retrieves all data necessary for rendering a form to complete a task. This can be used to perform rendering of the forms outside of the process engine.

  - ### getRenderedTaskForm

    Object getRenderedTaskForm(String taskId)
    Rendered form generated by the default build-in form engine for completing a task.

  - ### getRenderedTaskForm

    Object getRenderedTaskForm(String taskId, String formEngineName)
    Rendered form generated by the given build-in form engine for completing a task.

  - ### submitTaskFormData

    void submitTaskFormData(String taskId, Map<String,String> properties)
    Completes a task with the user data that was entered as properties in a task form.

  - ### saveFormData

    void saveFormData(String taskId, Map<String,String> properties)
    Save the data that was entered as properties in a task form.

  - ### getStartFormKey

    String getStartFormKey(String processDefinitionId)
    Retrieves a user defined reference to a start form. In the Explorer app, it is assumed that the form key specifies a resource in the deployment, which is the template for the form. But users are free to use this property differently.

  - ### getTaskFormKey

    String getTaskFormKey(String processDefinitionId, String taskDefinitionKey)
    Retrieves a user defined reference to a task form. In the Explorer app, it is assumed that the form key specifies a resource in the deployment, which is the template for the form. But users are free to use this property differently. Both arguments can be obtained from `Task` instances returned by any `TaskQuery`.