Package org.silverpeas.processmanager

# Class ProcessManagerSessionController

java.lang.Object
org.silverpeas.core.web.mvc.controller.AbstractComponentSessionController
org.silverpeas.processmanager.ProcessManagerSessionController

All Implemented Interfaces:
  `Serializable`, `org.silverpeas.core.web.mvc.controller.ComponentSessionController`, `org.silverpeas.core.web.session.SessionCloseable`

public class ProcessManagerSessionController extends org.silverpeas.core.web.mvc.controller.AbstractComponentSessionController
The ProcessManager Session controller

See Also:
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class org.silverpeas.core.web.mvc.controller.AbstractComponentSessionController

  `context`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ProcessManagerSessionController(org.silverpeas.core.web.mvc.controller.MainSessionController mainSessionCtrl, org.silverpeas.core.web.mvc.controller.ComponentContext context)`
  Builds and init a new session controller for the process manager instance.
  `ProcessManagerSessionController(org.silverpeas.core.web.mvc.controller.MainSessionController mainSessionCtrl, org.silverpeas.core.web.mvc.controller.ComponentContext context, ProcessManagerException fatal)`
  Builds a session controller.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clearFilter()`
  `String`
  `createProcessInstance(org.silverpeas.core.contribution.content.form.DataRecord data, boolean isDraft, boolean firstTimeSaved)`
  Create a new process instance with the filled form.
  `org.silverpeas.core.web.export.ExportCSVBuilder`
  `exportListAsCSV()`
  `org.silverpeas.core.workflow.api.model.Action`
  `getAction(String actionName)`
  Get the named action
  `org.silverpeas.core.contribution.content.form.Form`
  `getActionForm(String actionName)`
  Returns the form associated to the named action.
  `org.silverpeas.core.contribution.content.form.DataRecord`
  `getActionRecord(String actionName)`
  Returns a new DataRecord filled with the folder data and which will be completed by the action form.
  `List<CurrentState>`
  `getActiveStates()`
  Get the active states.
  `org.silverpeas.core.contribution.content.form.Form`
  `getAssignFormOfActiveStates(org.silverpeas.core.workflow.api.instance.ProcessInstance processInstance)`
  Gets a form with the assignation of users to roles for all the active states (for the re-affectations of some roles in the active states)
  `org.silverpeas.core.contribution.content.form.DataRecord`
  `getAssignRecordOfActiveStates(org.silverpeas.core.workflow.api.instance.ProcessInstance processInstance)`
  Gets the assignation data of the users working on the active states (for the re-affectations of some roles in the active states).
  `NamedValue[]`
  `getComponentInstanceRoleLabels()`
  Returns the component instance roles as a list of (name, label) pair.
  `org.silverpeas.core.contribution.content.form.Form`
  `getCreationForm()`
  Returns the form which starts a new instance.
  `boolean`
  `getCreationRights()`
  Get the creation rights
  `List<org.silverpeas.core.workflow.api.user.Replacement<?>>`
  `getCurrentAndNextUserReplacementsAsIncumbent()`
  Gets current and next replacements at date of day in which the current user can be replaced in the workflow.
  `ProcessFilter`
  `getCurrentFilter()`
  Returns the current ProcessFilter.
  `org.silverpeas.core.workflow.api.instance.ProcessInstance`
  `getCurrentProcessInstance()`
  Get the current process instance
  `List<org.silverpeas.core.contribution.content.form.DataRecord>`
  `getCurrentProcessList()`
  Returns the current process instance list.
  `org.silverpeas.core.workflow.api.user.Replacement`
  `getCurrentReplacement()`
  `String`
  `getCurrentRole()`
  `String`
  `getCurrentRoleLabel()`
  `String`
  `getCurrentTokenId()`
  Get the current tokenId.
  `String[]`
  `getDeleteAction()`
  Search for a hypothetical action of kind "delete", allowed for the current user with the given role
  `org.silverpeas.core.contribution.content.form.DataRecord`
  `getEmptyCreationRecord()`
  Returns an empty creation record which will be filled with the creation form.
  `org.silverpeas.core.contribution.content.form.DataRecord`
  `getEmptyQuestionRecord()`
  Returns an empty question record which will be filled with the question form.
  `org.silverpeas.core.contribution.content.form.DataRecord`
  `getEmptyUserSettingsRecord()`
  Returns an empty date record which will be filled with the user settings form.
  `ProcessManagerException`
  `getFatalException()`
  Returns the last fatal exception
  `org.silverpeas.core.workflow.api.model.Item[]`
  `getFolderItems()`
  `org.silverpeas.core.contribution.content.form.DataRecord`
  `getFolderRecord()`
  Returns the folder data of the current process instance.
  `List<LockVO>`
  `getLockingUsers()`
  Get locking users list
  `int`
  `getNbEntriesAboutQuestions()`
  `org.silverpeas.core.contribution.content.form.Form`
  `getPresentationForm()`
  Returns the form presenting the folder of the current process instance.
  `org.silverpeas.core.contribution.content.form.Form`
  `getPresentationForm(String name)`
  Returns the named form (Read only).
  `org.silverpeas.core.workflow.api.error.WorkflowError[]`
  `getProcessInstanceErrors(String processId)`
  Get all the errors occurred while processing the current process instance
  `String`
  `getProcessInstanceIdFromExternalTodoId(String externalTodoId)`
  Get the process instance identifier referred by the todo with the given todo identifier.
  `org.silverpeas.core.contribution.content.form.RecordTemplate`
  `getProcessListHeaders()`
  Returns the current instance list rows template.
  `final org.silverpeas.core.workflow.api.model.ProcessModel`
  `getProcessModel(String modelId)`
  Returns the process model having the given id.
  `org.silverpeas.core.workflow.api.instance.Question`
  `getQuestion(String questionId)`
  get the question with the given id
  `org.silverpeas.core.contribution.content.form.Form`
  `getQuestionForm(boolean readonly)`
  Returns the form to ask a question
  `org.silverpeas.core.contribution.content.form.DataRecord`
  `getQuestionRecord(String questionId)`
  Returns an empty question record which will be filled with the question form.
  `String`
  `getRoleNameFromExternalTodoId(String externalTodoId)`
  Get the role name of task referred by the todo with the given todo id
  `org.silverpeas.core.workflow.api.instance.HistoryStep`
  `getSavedStep()`
  Get step saved by given user id.
  `org.silverpeas.core.contribution.content.form.DataRecord`
  `getSavedStepRecord(org.silverpeas.core.workflow.api.instance.HistoryStep savedStep)`
  Get step data record saved.
  `org.silverpeas.core.workflow.api.instance.HistoryStep[]`
  `getSortedHistorySteps(boolean ascending)`
  `org.silverpeas.core.workflow.api.model.State`
  `getState(org.silverpeas.core.workflow.api.instance.ProcessInstance processInstance, String stateName)`
  Get the state with the given name in the specified process instance.
  `org.silverpeas.core.workflow.api.instance.HistoryStep`
  `getStep(String stepId)`
  Returns the required step
  `String`
  `getStepAction(org.silverpeas.core.workflow.api.instance.HistoryStep step)`
  Get the list of actions in History Step of current process instance
  `String`
  `getStepActor(org.silverpeas.core.workflow.api.instance.HistoryStep step)`
  Get the list of actors in History Step of current process instance
  `org.silverpeas.core.contribution.content.form.Form`
  `getStepForm(org.silverpeas.core.workflow.api.instance.HistoryStep step)`
  Returns the form used to display the i-th step.
  `List<StepVO>`
  `getSteps(String strEnlightedStep)`
  `String`
  `getStepSubstitute(org.silverpeas.core.workflow.api.instance.HistoryStep step)`
  `org.silverpeas.core.workflow.api.task.Task`
  `getTask(String stateName)`
  Returns the named task.
  `org.silverpeas.core.workflow.api.task.Task[]`
  `getTasks()`
  Get all tasks assigned for current user on current process instance
  `org.silverpeas.core.workflow.api.user.User`
  `getUser(String userId)`
  Returns the workflow user having the given id.
  `NamedValue[]`
  `getUserRoleLabels()`
  Returns the user roles as a list of (name, label) pair.
  `org.silverpeas.core.contribution.content.form.Form`
  `getUserSettingsForm()`
  Returns the form to fill user settings
  `org.silverpeas.core.contribution.content.form.DataRecord`
  `getUserSettingsRecord()`
  Returns an empty data record which will be filled with the user settings form.
  `boolean`
  `hasPendingQuestions()`
  Tests if there is some question for current user in current processInstance
  `boolean`
  `hasUserSettings()`
  Returns true if : the model has any user settings.
  `boolean`
  `isAttachmentTabEnabled()`
  `boolean`
  `isCSVExportEnabled()`
  `boolean`
  `isCurrentUserIsLockingUser()`
  Is current user is part of the locking users for current process instance ?
  `boolean`
  `isHistoryCanBeFiltered()`
  Is the history can be filtered?
  `boolean`
  `isHistoryTabVisible()`
  `boolean`
  `isPrintButtonEnabled()`
  Print button on an action can be disabled.
  `boolean`
  `isProcessIdVisible()`
  `boolean`
  `isResumingInstance()`
  `boolean`
  `isSaveButtonEnabled()`
  Save button on an action can be disabled.
  `boolean`
  `isUserAllowedOnActiveStates()`
  `boolean`
  `isUserSettingsOK()`
  Returns true if : the user settings are correct
  `boolean`
  `isVersionControlled()`
  `boolean`
  `isViewReturn()`
  `void`
  `lock(String stateName)`
  Lock the current instance for current user and given state
  `void`
  `processAction(String stateName, String actionName, org.silverpeas.core.contribution.content.form.DataRecord data, boolean isDraft, boolean isFirstTimeSaved)`
  Create a new history step instance with the filled form.
  `void`
  `processQuestion(String stepId, String state, org.silverpeas.core.contribution.content.form.DataRecord data)`
  Send the question as a QuestionEvent to the workflowEngine.
  `void`
  `processResponse(String questionId, org.silverpeas.core.contribution.content.form.DataRecord data)`
  Send the answer as a ResponseEvent to the workflowEngine.
  `void`
  `reassignInActiveStates(org.silverpeas.core.workflow.api.instance.ProcessInstance processInstance, org.silverpeas.core.contribution.content.form.DataRecord data)`
  Reassign the roles in the active states of the specified process instance to the users defined in the given assignation data.
  `void`
  `removeProcess(String processId)`
  Remove process instance with given id
  `void`
  `replaceInAllAssignedStates(String userId, String substituteId)`
  Replaces the specified user by the other one in all the states of the current process instances.
  `final void`
  `resetCreationRights()`
  Compute the creation rights set creationRight to true if user can do the "Creation" action
  `void`
  `resetCurrentProcessInstance()`
  Set current Process instance to null
  `void`
  `resetCurrentProcessInstance(String instanceId)`
  Updates the current process instance from the given id and returns the associated ProcessInstance object.
  `List<org.silverpeas.core.contribution.content.form.DataRecord>`
  `resetCurrentProcessList(boolean doAPause)`
  Updates the current process instance list with current filter and returns this list.
  `void`
  `resetCurrentProcessListHeaders()`
  Reset the current instance list rows template.
  `void`
  `resetCurrentRole(String role)`
  Returns the current role name.
  `<T extends org.silverpeas.core.workflow.api.user.Replacement<T>>
  void`
  `resetCurrentRoleAsSubstitute(String role, String incumbentId)`
  `void`
  `saveUserSettings(org.silverpeas.core.contribution.content.form.DataRecord data)`
  Save the user settings which have been filled with the user settings form.
  `void`
  `setCurrentTokenId(String newTokenId)`
  Set the current tokenId.
  `void`
  `setResumingInstance(boolean isResumingInstance)`
  `void`
  `unlock(String stateName)`
  Un-Lock the current instance for current user and given state
  `void`
  `unlock(String userId, String stateName)`
  Un-Lock the current instance for given user and given state

  ### Methods inherited from class org.silverpeas.core.web.mvc.controller.AbstractComponentSessionController

  `addClipboardSelection, clipboardPasteDone, close, getClipboardErrorMessage, getClipboardExceptionError, getClipboardObjects, getClipboardSelectedObjects, getClipboardSize, getComponentAccessController, getComponentId, getComponentLabel, getComponentName, getComponentParameterValue, getComponentParameterValue, getComponentRootName, getComponentUrl, getHighestSilverpeasUserRole, getIcon, getLanguage, getLook, getMultilang, getOrganisationController, getPersonalization, getRSSUrl, getSelection, getSettings, getSilverpeasUserRoles, getSpaceId, getSpaceLabel, getString, getSubscriptionContext, getUrlEncodedParameter, getUserAccessLevel, getUserAvailComponentIds, getUserDetail, getUserDetail, getUserId, getUserManageableGroupIds, getUserManageableSpaceIds, getUserRoles, getZoneId, isAppInMaintenance, isGroupManager, isPasswordChangeAllowed, isSpaceInMaintenance, removeClipboardElement, setAppModeMaintenance, setClipboardSelectedElement, setComponentRootName, setSpaceModeMaintenance`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ProcessManagerSessionController

    public ProcessManagerSessionController(org.silverpeas.core.web.mvc.controller.MainSessionController mainSessionCtrl, org.silverpeas.core.web.mvc.controller.ComponentContext context) throws ProcessManagerException
    Builds and init a new session controller for the process manager instance.
    Parameters:
      `mainSessionCtrl` - the main session controller of the current user in Silverpeas.
      `context` - the context of the user navigation in the process manager instance.
    Throws:
      `ProcessManagerException` - if the initialization of the controller failed.

  - ### ProcessManagerSessionController

    public ProcessManagerSessionController(org.silverpeas.core.web.mvc.controller.MainSessionController mainSessionCtrl, org.silverpeas.core.web.mvc.controller.ComponentContext context, ProcessManagerException fatal)
    Builds a session controller. Initialization is skipped and this session controller can only display the fatal exception. Used by the request router when a full session controller can't be built.
    Parameters:
      `mainSessionCtrl` - the main session controller of the user in Silverpeas.
      `context` - the user navigation context in the process manager instance.
      `fatal` - the exception to display in case of failure.

- ## Method Details

  - ### getCreationRights

    public boolean getCreationRights()
    Get the creation rights
    Returns:
      true if user can do the "Creation" action

  - ### resetCreationRights

    public final void resetCreationRights()
    Compute the creation rights set creationRight to true if user can do the "Creation" action

  - ### isHistoryCanBeFiltered

    public boolean isHistoryCanBeFiltered()
    Is the history can be filtered? In this case, the forms mapped to each state are visible only if the current user was a working or an interested user.
    Returns:
      true if the history can be filtered.

  - ### isHistoryTabVisible

    public boolean isHistoryTabVisible()

  - ### isCSVExportEnabled

    public boolean isCSVExportEnabled()

  - ### isPrintButtonEnabled

    public boolean isPrintButtonEnabled()
    Print button on an action can be disabled. So it's return the visibility status of that button.
    Returns:
      true is print button is visible

  - ### isSaveButtonEnabled

    public boolean isSaveButtonEnabled()
    Save button on an action can be disabled. So it's return the visibility status of that button.
    Returns:
      true if save button is visible

  - ### getFatalException

    public ProcessManagerException getFatalException()
    Returns the last fatal exception

  - ### resetCurrentProcessInstance

    public void resetCurrentProcessInstance()
    Set current Process instance to null

  - ### resetCurrentProcessInstance

    public void resetCurrentProcessInstance(String instanceId) throws ProcessManagerException
    Updates the current process instance from the given id and returns the associated ProcessInstance object. If the instanceId parameter is null, updates nothing and returns the current ProcessInstance. Throws ProcessManagerException when the instanceId is unknown and when the current user is not allowed to access the instance. Doesn't change the current process instance when an error occurs.
    Throws:
      `ProcessManagerException`

  - ### getCurrentProcessInstance

    public org.silverpeas.core.workflow.api.instance.ProcessInstance getCurrentProcessInstance()
    Get the current process instance

  - ### getProcessListHeaders

    public org.silverpeas.core.contribution.content.form.RecordTemplate getProcessListHeaders()
    Returns the current instance list rows template.

  - ### resetCurrentProcessListHeaders

    public void resetCurrentProcessListHeaders()
    Reset the current instance list rows template.

  - ### getCurrentProcessList

    public List<org.silverpeas.core.contribution.content.form.DataRecord> getCurrentProcessList() throws ProcessManagerException
    Returns the current process instance list.
    Throws:
      `ProcessManagerException`

  - ### resetCurrentProcessList

    public List<org.silverpeas.core.contribution.content.form.DataRecord> resetCurrentProcessList(boolean doAPause) throws ProcessManagerException
    Updates the current process instance list with current filter and returns this list. Doesn't change the current process instance when an error occurs.
    Throws:
      `ProcessManagerException`

  - ### getRoleNameFromExternalTodoId

    public String getRoleNameFromExternalTodoId(String externalTodoId) throws ProcessManagerException
    Get the role name of task referred by the todo with the given todo id
    Throws:
      `ProcessManagerException`

  - ### getProcessInstanceIdFromExternalTodoId

    public String getProcessInstanceIdFromExternalTodoId(String externalTodoId) throws ProcessManagerException
    Get the process instance identifier referred by the todo with the given todo identifier.
    Parameters:
      `externalTodoId` - external todo identifier
    Returns:
      the process instance identifier referred by the todo with the given todo identifier.
    Throws:
      `ProcessManagerException` - if an error occurs.

  - ### isUserAllowedOnActiveStates

    public boolean isUserAllowedOnActiveStates() throws ProcessManagerException
    Throws:
      `ProcessManagerException`

  - ### getActiveStates

    public List<CurrentState> getActiveStates() throws ProcessManagerException
    Get the active states.
    Returns:
      the active states.
    Throws:
      `ProcessManagerException`

  - ### getUser

    public org.silverpeas.core.workflow.api.user.User getUser(String userId) throws ProcessManagerException
    Returns the workflow user having the given id.
    Parameters:
      `userId` - the user identifier
    Returns:
      the workflow user having the given id.
    Throws:
      `ProcessManagerException` - if an error occurs.

  - ### getProcessModel

    public final org.silverpeas.core.workflow.api.model.ProcessModel getProcessModel(String modelId) throws ProcessManagerException
    Returns the process model having the given id.
    Parameters:
      `modelId` - the model identifier
    Returns:
      the process model having the given id.
    Throws:
      `ProcessManagerException` - if an error occurs.

  - ### getCurrentRole

    public String getCurrentRole()
    Returns:
      the current role name.

  - ### getCurrentReplacement

    public org.silverpeas.core.workflow.api.user.Replacement getCurrentReplacement()
    Returns:
      the current replacement if any.

  - ### resetCurrentRoleAsSubstitute

    public <T extends org.silverpeas.core.workflow.api.user.Replacement<T>> void resetCurrentRoleAsSubstitute(String role, String incumbentId) throws ProcessManagerException
    Throws:
      `ProcessManagerException`

  - ### resetCurrentRole

    public void resetCurrentRole(String role) throws ProcessManagerException
    Returns the current role name.
    Parameters:
      `role` - a role
    Throws:
      `ProcessManagerException` - if an error occurs.

  - ### getUserRoleLabels

    public NamedValue[] getUserRoleLabels()
    Returns the user roles as a list of (name, label) pair.

  - ### getComponentInstanceRoleLabels

    public NamedValue[] getComponentInstanceRoleLabels()
    Returns the component instance roles as a list of (name, label) pair.

  - ### getPresentationForm

    public org.silverpeas.core.contribution.content.form.Form getPresentationForm() throws ProcessManagerException
    Returns the form presenting the folder of the current process instance.
    Throws:
      `ProcessManagerException`

  - ### getFolderItems

    public org.silverpeas.core.workflow.api.model.Item[] getFolderItems()

  - ### getFolderRecord

    public org.silverpeas.core.contribution.content.form.DataRecord getFolderRecord() throws ProcessManagerException
    Returns the folder data of the current process instance.
    Throws:
      `ProcessManagerException`

  - ### getCreationForm

    public org.silverpeas.core.contribution.content.form.Form getCreationForm() throws ProcessManagerException
    Returns the form which starts a new instance.
    Throws:
      `ProcessManagerException`

  - ### getEmptyCreationRecord

    public org.silverpeas.core.contribution.content.form.DataRecord getEmptyCreationRecord() throws ProcessManagerException
    Returns an empty creation record which will be filled with the creation form.
    Throws:
      `ProcessManagerException`

  - ### getQuestionForm

    public org.silverpeas.core.contribution.content.form.Form getQuestionForm(boolean readonly) throws ProcessManagerException
    Returns the form to ask a question
    Throws:
      `ProcessManagerException`

  - ### getEmptyQuestionRecord

    public org.silverpeas.core.contribution.content.form.DataRecord getEmptyQuestionRecord()
    Returns an empty question record which will be filled with the question form.

  - ### getQuestion

    public org.silverpeas.core.workflow.api.instance.Question getQuestion(String questionId)
    get the question with the given id
    Parameters:
      `questionId` - question id
    Returns:
      the found question

  - ### getQuestionRecord

    public org.silverpeas.core.contribution.content.form.DataRecord getQuestionRecord(String questionId)
    Returns an empty question record which will be filled with the question form.

  - ### getAssignFormOfActiveStates

    public org.silverpeas.core.contribution.content.form.Form getAssignFormOfActiveStates(org.silverpeas.core.workflow.api.instance.ProcessInstance processInstance) throws ProcessManagerException
    Gets a form with the assignation of users to roles for all the active states (for the re-affectations of some roles in the active states)
    Parameters:
      `processInstance` - the instance of the process for which the assignation form is asked.
    Returns:
      a form with for active states a field with the roles required by the state.
    Throws:
      `ProcessManagerException` - if the build of the form fails.

  - ### getAssignRecordOfActiveStates

    public org.silverpeas.core.contribution.content.form.DataRecord getAssignRecordOfActiveStates(org.silverpeas.core.workflow.api.instance.ProcessInstance processInstance)
    Gets the assignation data of the users working on the active states (for the re-affectations of some roles in the active states).
    Parameters:
      `processInstance` - the instance of the process for which the assignation data is asked.
    Returns:
      a data record with all the assignation of the working users to the different roles of each active states. Each field of the record is a mapping between a role in an active state to a working user.

  - ### reassignInActiveStates

    public void reassignInActiveStates(org.silverpeas.core.workflow.api.instance.ProcessInstance processInstance, org.silverpeas.core.contribution.content.form.DataRecord data) throws ProcessManagerException
    Reassign the roles in the active states of the specified process instance to the users defined in the given assignation data.
    Parameters:
      `processInstance` - the instance of the process in which the reassignation will be operated
      `data` - the record data in which are defined the assignation of the working users to the different roles of each active states. Each field of the record should be a mapping between a role in an active state to a working user.
    Throws:
      `ProcessManagerException` - if the reassignation failed.

  - ### replaceInAllAssignedStates

    public void replaceInAllAssignedStates(String userId, String substituteId) throws ProcessManagerException
    Replaces the specified user by the other one in all the states of the current process instances. All the roles assigned to the user in all the state in each process instance are reassigned to the specified substitute. So, the constraint is the substitute must have the ability to play the same roles as the given user. Otherwise, an exception is thrown.
    Parameters:
      `userId` - the unique identifier of the user to replace.
      `substituteId` - the unique identifier of the user that will substitute the above user.
    Throws:
      `ProcessManagerException` - if an error occurs while performing the substitution.

  - ### createProcessInstance

    public String createProcessInstance(org.silverpeas.core.contribution.content.form.DataRecord data, boolean isDraft, boolean firstTimeSaved) throws ProcessManagerException
    Create a new process instance with the filled form.
    Parameters:
      `data` - the form data
      `isDraft` - true if form has just been saved as draft
      `firstTimeSaved` - true if form is saved as draft for the first time
    Throws:
      `ProcessManagerException`

  - ### getTasks

    public org.silverpeas.core.workflow.api.task.Task[] getTasks() throws ProcessManagerException
    Get all tasks assigned for current user on current process instance
    Throws:
      `ProcessManagerException`

  - ### getDeleteAction

    public String[] getDeleteAction()
    Search for a hypothetical action of kind "delete", allowed for the current user with the given role
    Returns:
      an array of 3 Strings { action name, state name, action label }, an empty array if no action found

  - ### getTask

    public org.silverpeas.core.workflow.api.task.Task getTask(String stateName) throws ProcessManagerException
    Returns the named task.
    Throws:
      `ProcessManagerException`

  - ### getPresentationForm

    public org.silverpeas.core.contribution.content.form.Form getPresentationForm(String name) throws ProcessManagerException
    Returns the named form (Read only). Throws an exception if the form is unknown.
    Throws:
      `ProcessManagerException`

  - ### getActionForm

    public org.silverpeas.core.contribution.content.form.Form getActionForm(String actionName) throws ProcessManagerException
    Returns the form associated to the named action. Returns null if this action has no form. Throws an exception if the action is unknown.
    Throws:
      `ProcessManagerException`

  - ### getActionRecord

    public org.silverpeas.core.contribution.content.form.DataRecord getActionRecord(String actionName) throws ProcessManagerException
    Returns a new DataRecord filled with the folder data and which will be completed by the action form.
    Throws:
      `ProcessManagerException`

  - ### processAction

    public void processAction(String stateName, String actionName, org.silverpeas.core.contribution.content.form.DataRecord data, boolean isDraft, boolean isFirstTimeSaved) throws ProcessManagerException
    Create a new history step instance with the filled form.
    Throws:
      `ProcessManagerException`

  - ### getStep

    public org.silverpeas.core.workflow.api.instance.HistoryStep getStep(String stepId)
    Returns the required step

  - ### processQuestion

    public void processQuestion(String stepId, String state, org.silverpeas.core.contribution.content.form.DataRecord data) throws ProcessManagerException
    Send the question as a QuestionEvent to the workflowEngine.
    Throws:
      `ProcessManagerException`

  - ### processResponse

    public void processResponse(String questionId, org.silverpeas.core.contribution.content.form.DataRecord data) throws ProcessManagerException
    Send the answer as a ResponseEvent to the workflowEngine.
    Throws:
      `ProcessManagerException`

  - ### getLockingUsers

    public List<LockVO> getLockingUsers() throws ProcessManagerException
    Get locking users list
    Throws:
      `ProcessManagerException` - if an error occurs.

  - ### lock

    public void lock(String stateName) throws ProcessManagerException
    Lock the current instance for current user and given state
    Parameters:
      `stateName` - state name
    Throws:
      `ProcessManagerException`

  - ### unlock

    public void unlock(String userId, String stateName) throws ProcessManagerException
    Un-Lock the current instance for given user and given state
    Parameters:
      `userId` - user identifier.
      `stateName` - state name.
    Throws:
      `ProcessManagerException`

  - ### unlock

    public void unlock(String stateName) throws ProcessManagerException
    Un-Lock the current instance for current user and given state
    Parameters:
      `stateName` - state name
    Throws:
      `ProcessManagerException`

  - ### getSteps

    public List<StepVO> getSteps(String strEnlightedStep) throws ProcessManagerException
    Throws:
      `ProcessManagerException`

  - ### getSortedHistorySteps

    public org.silverpeas.core.workflow.api.instance.HistoryStep[] getSortedHistorySteps(boolean ascending)

  - ### getStepActor

    public String getStepActor(org.silverpeas.core.workflow.api.instance.HistoryStep step)
    Get the list of actors in History Step of current process instance
    Returns:
      an array of string containing actors full name

  - ### getStepSubstitute

    public String getStepSubstitute(org.silverpeas.core.workflow.api.instance.HistoryStep step)

  - ### getStepAction

    public String getStepAction(org.silverpeas.core.workflow.api.instance.HistoryStep step)
    Get the list of actions in History Step of current process instance
    Returns:
      an array of string containing actions names

  - ### getStepForm

    public org.silverpeas.core.contribution.content.form.Form getStepForm(org.silverpeas.core.workflow.api.instance.HistoryStep step) throws ProcessManagerException
    Returns the form used to display the i-th step. Returns null if the step is unknown.
    Throws:
      `ProcessManagerException` - if an error occurs

  - ### getSavedStep

    public org.silverpeas.core.workflow.api.instance.HistoryStep getSavedStep() throws ProcessManagerException
    Get step saved by given user id.
    Throws:
      `ProcessManagerException` - if an error occurs.

  - ### getSavedStepRecord

    public org.silverpeas.core.contribution.content.form.DataRecord getSavedStepRecord(org.silverpeas.core.workflow.api.instance.HistoryStep savedStep) throws ProcessManagerException
    Get step data record saved.
    Throws:
      `ProcessManagerException` - if an error occurs.

  - ### getState

    public org.silverpeas.core.workflow.api.model.State getState(org.silverpeas.core.workflow.api.instance.ProcessInstance processInstance, String stateName) throws ProcessManagerException
    Get the state with the given name in the specified process instance.
    Parameters:
      `processInstance` - the process in which the state is defined
      `stateName` - state name
    Returns:
      the `State` instance corresponding to the asked name.
    Throws:
      `ProcessManagerException` - if the state cannot be got.

  - ### getAction

    public org.silverpeas.core.workflow.api.model.Action getAction(String actionName)
    Get the named action
    Parameters:
      `actionName` - action name
    Returns:
      action

  - ### hasPendingQuestions

    public boolean hasPendingQuestions()
    Tests if there is some question for current user in current processInstance
    Returns:
      true if there is one or more question

  - ### getUserSettingsForm

    public org.silverpeas.core.contribution.content.form.Form getUserSettingsForm() throws ProcessManagerException
    Returns the form to fill user settings
    Throws:
      `ProcessManagerException`

  - ### getEmptyUserSettingsRecord

    public org.silverpeas.core.contribution.content.form.DataRecord getEmptyUserSettingsRecord() throws ProcessManagerException
    Returns an empty date record which will be filled with the user settings form.
    Throws:
      `ProcessManagerException`

  - ### getUserSettingsRecord

    public org.silverpeas.core.contribution.content.form.DataRecord getUserSettingsRecord() throws ProcessManagerException
    Returns an empty data record which will be filled with the user settings form.
    Throws:
      `ProcessManagerException`

  - ### saveUserSettings

    public void saveUserSettings(org.silverpeas.core.contribution.content.form.DataRecord data) throws ProcessManagerException
    Save the user settings which have been filled with the user settings form.
    Throws:
      `ProcessManagerException`

  - ### getCurrentFilter

    public ProcessFilter getCurrentFilter() throws ProcessManagerException
    Returns the current ProcessFilter.
    Throws:
      `ProcessManagerException`

  - ### clearFilter

    public void clearFilter()

  - ### removeProcess

    public void removeProcess(String processId) throws ProcessManagerException
    Remove process instance with given id
    Throws:
      `ProcessManagerException`

  - ### getProcessInstanceErrors

    public org.silverpeas.core.workflow.api.error.WorkflowError[] getProcessInstanceErrors(String processId)
    Get all the errors occurred while processing the current process instance

  - ### isUserSettingsOK

    public boolean isUserSettingsOK()
    Returns true if : the user settings are correct

  - ### hasUserSettings

    public boolean hasUserSettings()
    Returns true if : the model has any user settings.

  - ### isVersionControlled

    public boolean isVersionControlled()

  - ### isAttachmentTabEnabled

    public boolean isAttachmentTabEnabled()

  - ### isProcessIdVisible

    public boolean isProcessIdVisible()

  - ### isViewReturn

    public boolean isViewReturn()

  - ### exportListAsCSV

    public org.silverpeas.core.web.export.ExportCSVBuilder exportListAsCSV() throws ProcessManagerException
    Throws:
      `ProcessManagerException`

  - ### isCurrentUserIsLockingUser

    public boolean isCurrentUserIsLockingUser()
    Is current user is part of the locking users for current process instance ?
    Returns:
      true is current user is part of the locking users for current process instance

  - ### setResumingInstance

    public void setResumingInstance(boolean isResumingInstance)

  - ### isResumingInstance

    public boolean isResumingInstance()

  - ### getCurrentTokenId

    public String getCurrentTokenId()
    Get the current tokenId. Token id prevents users to use several windows with same session.
    Returns:
      the current token id

  - ### setCurrentTokenId

    public void setCurrentTokenId(String newTokenId)
    Set the current tokenId. Token id prevents users to use several windows with same session.
    Parameters:
      `newTokenId` - the current token id

  - ### getNbEntriesAboutQuestions

    public int getNbEntriesAboutQuestions()

  - ### getCurrentAndNextUserReplacementsAsIncumbent

    public List<org.silverpeas.core.workflow.api.user.Replacement<?>> getCurrentAndNextUserReplacementsAsIncumbent()
    Gets current and next replacements at date of day in which the current user can be replaced in the workflow.
    Returns:
      a list of possible replacements.

  - ### getCurrentRoleLabel

    public String getCurrentRoleLabel()