Package org.kie.api.runtime.process

## Interface WorkItem

-     public interface WorkItem

  Represents one unit of work that needs to be executed. It contains all the information that it necessary to execute this unit of work as parameters, and (possibly) results related to its execution. WorkItems represent a unit of work in an abstract, high-level and implementation-independent manner. They are created by the engine whenever an external task needs to be performed. The engine will delegate the work item to the appropriate `WorkItemHandler` for execution. Whenever a work item is completed (or whenever the work item cannot be executed and should be aborted), the work item manager should be notified. For example, a work item could be created whenever an email needs to be sent. This work item would have a name that represents the type of work that needs to be executed (e.g. "Email") and parameters related to its execution (e.g. "From" = "me@mail.com", "To" = ..., "Body" = ..., ...). Result parameters can contain results related to the execution of this work item (e.g. "Success" = true).
  See Also:
    `WorkItemHandler`, `WorkItemManager`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `ABORTED` |
    `static int` | `ACTIVE` |
    `static int` | `COMPLETED` |
    `static int` | `PENDING` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `getId()` | The unique id of this work item
    `String` | `getName()` | The name of the work item.
    `Object` | `getParameter​(String name)` | Returns the value of the parameter with the given name.
    `Map<String,​Object>` | `getParameters()` | Returns the map of parameters of this work item.
    `String` | `getProcessInstanceId()` | The id of the process instance that requested the execution of this work item
    `Object` | `getResult​(String name)` | Returns the value of the result parameter with the given name.
    `Map<String,​Object>` | `getResults()` | Returns the map of result parameters of this work item.
    `int` | `getState()` | The state of the work item.

- - ### Field Detail

    - #### PENDING

          static final int PENDING

      See Also:
        Constant Field Values

    - #### ACTIVE

          static final int ACTIVE

      See Also:
        Constant Field Values

    - #### COMPLETED

          static final int COMPLETED

      See Also:
        Constant Field Values

    - #### ABORTED

          static final int ABORTED

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getId

          long getId()

      The unique id of this work item
      Returns:
        the id of this work item

    - #### getName

          String getName()

      The name of the work item. This represents the type of work that should be executed.
      Returns:
        the name of the work item

    - #### getState

          int getState()

      The state of the work item.
      Returns:
        the state of the work item

    - #### getParameter

          Object getParameter​(String name)

      Returns the value of the parameter with the given name. Parameters can be used to pass information necessary for the execution of this work item. Returns `null` if the parameter cannot be found.
      Parameters:
        `name` - the name of the parameter
      Returns:
        the value of the parameter

    - #### getParameters

          Map<String,​Object> getParameters()

      Returns the map of parameters of this work item. Parameters can be used to pass information necessary for the execution of this work item.
      Returns:
        the map of parameters of this work item

    - #### getResult

          Object getResult​(String name)

      Returns the value of the result parameter with the given name. Result parameters can be used to pass information related the result of the execution of this work item. Returns `null` if the result cannot be found.
      Parameters:
        `name` - the name of the result parameter
      Returns:
        the value of the result parameter

    - #### getResults

          Map<String,​Object> getResults()

      Returns the map of result parameters of this work item. Result parameters can be used to pass information related the result of the execution of this work item.
      Returns:
        the map of results of this work item

    - #### getProcessInstanceId

          String getProcessInstanceId()

      The id of the process instance that requested the execution of this work item
      Returns:
        the id of the related process instance