com.groiss.wf
Interface RemoteWfEngine

All Superinterfaces:
java.rmi.Remote
All Known Subinterfaces:
WfEngine

public interface RemoteWfEngine
extends java.rmi.Remote

This interface encapsulates the functionality of the @enterprise workflow engine. An object implementing this interface can be created on the server or the client.

Most methods have an implicit user parameter. This is initialized as the ThreadPrincipal from the ThreadContext when the WfEngine object is created.


Field Summary
static short INVISIBLE
           
static short MUST
           
static short NO_ADDDEL
           
static short READ_ONLY
           
static short READ_WRITE
           
static short TEXT
           
 
Method Summary
 void abort(ProcessInstance process)
          Abort a process.
 void abort(ProcessInstance process, java.lang.String comment)
          Abort a process and add a DMSNote with a generated Subject and a given comment.
 void abortParforSiblings(ActivityInstance parfor)
          Abort the running siblings of the current parfor instances.
 void abortSiblings(ActivityInstance join)
          Abort the siblings of the par branch.
 void addAgent(ActivityInstance ai, Agent a, OrgUnit ou, DMSNote note)
          Add an agent which receives the process after the current agent
 void addParforInstances(java.lang.String stepid, ActivityInstance previous)
          Start additional parfor branches for the given step.
 void archive(ProcessInstance process)
          Archive a process.
 ActivityInstance changeAgent(ActivityInstance ai, Agent a, OrgUnit ou, java.lang.String comment)
          Give the activity instance to another agent.
 void closePredecessor(ActivityInstance ai)
          If the predecessor of ai was not finished completely (is in status WAITING) and the necessary action is done now (for example setting the agent for ai) this method will complete it.
 ActivityInstance copyTo(ActivityInstance ai, User u)
          Send a copy to another user.
 ProcessInstance createProcessInstance(ProcessDefinition p, User u, OrgUnit d, java.util.Date duedate, java.lang.String id)
          Create a process instance.
 ProcessInstance createProcessInstance(ProcessDefinition p, User u, OrgUnit d, java.util.Date duedate, java.lang.String id, DMSForm f)
          Create a process instance.
 void finish(ActivityInstance ai)
          Finsh an activity, the engine starts the next step.
 void finishChoice(ActivityInstance ai)
          Finishs a choice branch, abort the other branches.
 java.util.List<ActivityInstance> getActiveTasks(ProcessInstance process)
          Get the list of active activities of a process instance.
 java.util.List<ActivityInstance> getActiveTasks(ProcessInstance process, User u)
          Get the list of active activities of a process instance assigned to a user.
 java.util.List<ActivityInstance> getActivities(java.lang.String condition)
          Find the activity instances with a given condition.
 ActivityInstance getActivityInstance(long oid)
          Find a activity instance from the given oid.
 java.util.List<ActivityInstance> getActivityInstances(ProcessInstance process)
          Get the list of all direct activity instances of a process instance.
 java.util.List<ActivityInstance> getActivityInstances(ProcessInstance process, java.lang.String steplabel)
          Get the list of direct activity instances of a particular step in a process.
 java.util.List<? extends ActivityInstance> getAllInteractiveTasks(ProcessInstance process)
          Get the list of ALL active, interactive activities of a process instance.
 java.util.List<java.util.List<ActivityInstance>> getChoiceSteps(ActivityInstance ai)
          Use this method to get the possible choice branches when the process execution reaches a choice.
 ActivityInstance getContext()
          Return the current activity instance.
 java.util.List<DMSObject> getDocuments(ProcessInstance process)
          Get the list of DMS objects (e.g.
 java.util.Map<java.lang.String,java.lang.Short> getFieldModes(ActivityInstance ai, DMSForm f)
          Get field modes for form fields
 java.util.Map<java.lang.String,java.lang.Short> getFieldModes(ActivityInstance ai, DMSForm form, DMSForm mainform, java.lang.String id)
          Get field modes for form fields and subforms
 DMSForm getForm(ProcessInstance pi, java.lang.String name)
          Get a form of a process.
 java.util.List<DMSForm> getForms(ProcessInstance process)
          Get the forms of a process.
 PersistentVersion getFormVersion(DMSForm form, ActivityInstance ai)
          Returns the version of the passed form in the context of the passed activity instance
 ProcessInstance getMainProcess(ActivityInstance ai)
          Get the root of the activity instance tree
 java.util.List<DMSNote> getNotes(ProcessInstance process)
          Get the notes to a process instances
 ProcessInstance getParent(ActivityInstance ai)
          Get the process instance of the given activity instance.
 ProcessInstance getProcess(DMSForm f)
          Find the process instance where the given form is attached.
 ProcessInstance getProcess(long oid)
          Find a process instance from the given oid.
 ProcessInstance getProcess(java.lang.String id)
          Find a process instance from the given id.
 ProcessDefinition getProcessDefinition(java.lang.String id)
          Find a process definition with the given id and status=active, if more than one is found, the process definition with the highest version number is returned.
 ProcessDefinition getProcessDefinition(java.lang.String id, int version)
          Find a process definition with the given id and version.
 java.util.List<ProcessInstance> getProcesses(java.lang.String condition)
          Find the process instances with a given condition.
 ProcessInstance getProcessFromForm(long formoid)
          Find a process instance from the oid of a form.
 java.util.List<ActivityInstance> getRoleSuspensionList(Application a)
          Get the role suspension list of the current user.
 java.util.List<ActivityInstance> getRoleWorklist(Application a)
          Get the role worklist of the current user.
 java.lang.String getServerProperty(java.lang.String prop)
          Returns a property from the server
 java.util.List<Pair<ProcessDefinition,java.util.List<OrgUnit>>> getStartableProcesses(Application appl)
          List the process definitions of the given application, which are startable for the user.
 RemoteStore getStore()
          Return the underlying store.
 java.util.List<ActivityInstance> getSuspensionList(Application a)
          Get the personal suspension list of the current user.
 java.util.List<Suspension> getSuspensions(ActivityInstance ai)
          Find out when and how the activity instance was in the suspension list.
 Task getTask(java.lang.String id)
          Find a task with the given id and status=active, if more than one is found, the task with the highest version number is returned.
 Task getTask(java.lang.String id, int version)
          Find a task with the given id and version.
 User getUser()
          Get the user.
 java.util.List<ActivityInstance> getWaitingList(Application a)
          Get the list of waiting activities of the current user.
 java.util.List<ActivityInstance> getWorklist(Application a, boolean withRepr)
          Get the worklist of the current user.
 ActivityInstance goBack(ActivityInstance ai, ActivityInstance ai2, java.lang.String comment)
          Go back to a previous step.
 void goBackToLastInteractive(ActivityInstance ai, java.lang.String comment)
           
 void gotoTask(ActivityInstance ai, java.lang.String stepname, Agent ag, OrgUnit ou, java.lang.String comment)
          Goto another task.
 void gotoTask(ProcessInstance process, java.lang.String taskid, Agent ag, java.lang.String comment)
          Deprecated. the methodbehaves unpredictabe when more than one activity instance of the process is active and when the task appears more than once in the process definition.
 boolean hasDocuments(ProcessInstance process)
          Has the process documents attached?
 boolean hasNotes(ProcessInstance process)
          Has the process notes attached?
 boolean hasSeen(ActivityInstance ai)
          Returns true if the ActivityInstance has been seen by the current user.
 java.util.List<PersistentVersion> listFormVersions(ActivityInstance ai)
          Returns a list of form versions (at most one for each process form) which were made in the context of the passed activity instance.
 java.util.List<ActivityInstance> listPredecessors(ActivityInstance ai)
          Return the list of predecessor steps of an activity instance.
 java.util.List<Pair<ActivityInstance,java.util.List<ActivityInstance>>> listPreviousSteps(ActivityInstance ai)
          List the previous steps of the process (possible go back targets).
 java.util.List<ProcessDefinition> listProcessDefinitions(Application appl)
          List the process definitions of the given application
 java.util.List<ActivityInstance> listSuccessors(ActivityInstance ai)
          Return the list of successor steps of an activity instance.
 ActivityInstance makeBranch(ProcessInstance process, Task t, Agent a, OrgUnit d)
          Insert a new step to the running process.
 void makeBranch(ProcessInstance process, Task t, Agent a, OrgUnit d, java.util.List forms)
          Deprecated. use method without form argument
 ActivityInstance makeVersion(ActivityInstance ai, java.lang.String desc, boolean withDocs)
          Versions the passed activity instance, the process forms and the documents (optional) and returns a new activity instance which is a copy of the passed one.
 void reactivate(ProcessInstance process)
          Reactivate a process.
 void reactivate(ProcessInstance process, java.lang.String comment)
          Reactivate a process.
 void reactivateAndTake(ProcessInstance process, java.lang.String comment)
          Reactivate a process and take the reactivated tasks.
 void refreshWLCache(User u)
          Refresh the organizational data in the WorklistCache for a particular user.
 void refreshWLCacheOrgData()
          Refresh the organizational data in the worklist cache.
 void seeAgain(ActivityInstance ai)
          Move the activity instance from the suspension list to the worklist.
 void seeLater(ActivityInstance ai, java.util.Date d)
          Move the activity instance from the worklist to the suspension list.
 void seeLater(ActivityInstance ai, java.util.Date d, java.lang.String description)
          Move the activity instance from the worklist to the suspension list.
 void setAgent(ActivityInstance ai, Agent a)
          Give the activity instance to another agent.
 void setCheckedOut(ActivityInstance ai, boolean state)
          Set the activityInstance as checcked out or in (i.e.
 void setContext(ActivityInstance ai)
           
 void setDescription(ActivityInstance ai, java.lang.String descr)
          Set the description of an activity instance.
 void setDuedate(ActivityInstance ai, java.util.Date d)
          Set the duedate of the activity instance.
 void setFinished(ActivityInstance ai)
          Set the status of the activity instance to FINISHED.
 void setId(ProcessInstance pi, java.lang.String s)
          Set the id of the process instance.
 void setOrgUnit(ActivityInstance ai, OrgUnit d)
          Change the organizational unit of a process.
 void setPriority(ProcessInstance pi, int priority)
          Set the priority of the process instance.
 void setSeen(ActivityInstance ai, boolean seen)
          Set the given ActivityInstance to seen/unseen for the current user.
 void setStepAgent(ActivityInstance ai, Agent a)
          Set the step-agent of the activity instance to another agent.
 void setSubject(ProcessInstance process)
          Set the subject of the process instance according to the definition in the process definition.
 void setSubjectToString(ProcessInstance process, java.lang.String str)
          Set the subject of the process instance o the given string value.
 void setUser(User u)
          Set the user.
 void start(ProcessInstance pi)
          Start a process instance, which was previously created, but not started.
 ProcessInstance startProcess(ProcessDefinition p, User u, OrgUnit d, java.util.Date duedate, java.lang.String id)
          Start a process.
 ProcessInstance startProcess(ProcessDefinition p, User u, OrgUnit d, java.util.Date duedate, java.lang.String id, DMSForm f)
          Start a process.
 ActivityInstance take(ActivityInstance ai)
          Take an activity: move it from the role-worklist to the worklist.
 ActivityInstance untake(ActivityInstance ai)
          Put back an activity: move it from the worklist to the role-worklist.
 void updateForm(DMSForm f)
          Update the form (make the changes persistent).
 

Field Detail

INVISIBLE

static final short INVISIBLE
See Also:
Constant Field Values

READ_ONLY

static final short READ_ONLY
See Also:
Constant Field Values

READ_WRITE

static final short READ_WRITE
See Also:
Constant Field Values

TEXT

static final short TEXT
See Also:
Constant Field Values

MUST

static final short MUST
See Also:
Constant Field Values

NO_ADDDEL

static final short NO_ADDDEL
See Also:
Constant Field Values
Method Detail

setUser

void setUser(User u)
             throws java.rmi.RemoteException
Set the user.

Parameters:
u - a user
Throws:
java.rmi.RemoteException

getUser

User getUser()
             throws java.rmi.RemoteException
Get the user.

Returns:
the user that is used for all engine operations.
Throws:
java.rmi.RemoteException

getStore

RemoteStore getStore()
                     throws java.rmi.RemoteException
Return the underlying store.

Returns:
a store object
Throws:
java.rmi.RemoteException

getProcessDefinition

ProcessDefinition getProcessDefinition(java.lang.String id)
                                       throws java.rmi.RemoteException
Find a process definition with the given id and status=active, if more than one is found, the process definition with the highest version number is returned.

Parameters:
id - the id of the process
Returns:
a process definition
Throws:
java.rmi.RemoteException

getProcessDefinition

ProcessDefinition getProcessDefinition(java.lang.String id,
                                       int version)
                                       throws java.rmi.RemoteException
Find a process definition with the given id and version.

Parameters:
id - the id of the process
version - the version of the process
Returns:
a process definition
Throws:
java.rmi.RemoteException

listProcessDefinitions

java.util.List<ProcessDefinition> listProcessDefinitions(Application appl)
                                                         throws java.rmi.RemoteException
List the process definitions of the given application

Parameters:
appl - the application
Returns:
a list of ProcessDefinition objects
Throws:
java.rmi.RemoteException

getStartableProcesses

java.util.List<Pair<ProcessDefinition,java.util.List<OrgUnit>>> getStartableProcesses(Application appl)
                                                                                      throws java.rmi.RemoteException
List the process definitions of the given application, which are startable for the user. A process is startable, if it is active and the agent of the first step is either the user or a role the user has.

Returns:
the list of pairs of processes and lists of OrgUnits
Throws:
java.rmi.RemoteException

getTask

Task getTask(java.lang.String id)
             throws java.rmi.RemoteException
Find a task with the given id and status=active, if more than one is found, the task with the highest version number is returned.

Parameters:
id - the id of the task
Returns:
a task, null if no task has the given id
Throws:
java.rmi.RemoteException

getTask

Task getTask(java.lang.String id,
             int version)
             throws java.rmi.RemoteException
Find a task with the given id and version.

Parameters:
id - the id of the task
version - the version of the task
Returns:
a task
Throws:
java.rmi.RemoteException

startProcess

ProcessInstance startProcess(ProcessDefinition p,
                             User u,
                             OrgUnit d,
                             java.util.Date duedate,
                             java.lang.String id)
                             throws java.rmi.RemoteException
Start a process. ProcessDefinition and OrgUnit must not be null.

Parameters:
p - the process definition
u - the user
d - the org. unit
duedate - the duedate
id - the id of the process instance
Returns:
the process instance
Throws:
java.rmi.RemoteException

startProcess

ProcessInstance startProcess(ProcessDefinition p,
                             User u,
                             OrgUnit d,
                             java.util.Date duedate,
                             java.lang.String id,
                             DMSForm f)
                             throws java.rmi.RemoteException
Start a process. ProcessDefinition and OrgUnit must not be null. The form must be already in the database.

Parameters:
p - the process definition
u - the user
d - the org. unit
duedate - the duedate
id - the id of the process instance
f - a form
Returns:
the process instance
Throws:
java.rmi.RemoteException

createProcessInstance

ProcessInstance createProcessInstance(ProcessDefinition p,
                                      User u,
                                      OrgUnit d,
                                      java.util.Date duedate,
                                      java.lang.String id)
                                      throws java.rmi.RemoteException
Create a process instance. ProcessDefinition and OrgUnit must not be null. The process instance waits at the begin step until this activityinstance will be finished explicitely, or until start(pi) is called.

Parameters:
p - the process definition
u - the user
d - the org. unit
duedate - the duedate
id - the id of the process instance
Returns:
the process instance
Throws:
java.rmi.RemoteException

createProcessInstance

ProcessInstance createProcessInstance(ProcessDefinition p,
                                      User u,
                                      OrgUnit d,
                                      java.util.Date duedate,
                                      java.lang.String id,
                                      DMSForm f)
                                      throws java.rmi.RemoteException
Create a process instance. ProcessDefinition and OrgUnit must not be null. The process instance waits at the begin step until this activityinstance will be finished explicitely, or until start(pi) is called.

Parameters:
p - the process definition
u - the user
d - the org. unit
duedate - the duedate
id - the id of the process instance
f - a form
Returns:
the process instance
Throws:
java.rmi.RemoteException

start

void start(ProcessInstance pi)
           throws java.rmi.RemoteException
Start a process instance, which was previously created, but not started.

Parameters:
pi - the process instance to start
Throws:
java.lang.Exception
java.rmi.RemoteException

getWorklist

java.util.List<ActivityInstance> getWorklist(Application a,
                                             boolean withRepr)
                                             throws java.rmi.RemoteException
Get the worklist of the current user.

Parameters:
a - the application, if null return work items for all applications
withRepr - if true add the work items assigned to persons the user substitutes.
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getWaitingList

java.util.List<ActivityInstance> getWaitingList(Application a)
                                                throws java.rmi.RemoteException
Get the list of waiting activities of the current user.

Parameters:
a - the application, if null return waiting items for all applications
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getRoleWorklist

java.util.List<ActivityInstance> getRoleWorklist(Application a)
                                                 throws java.rmi.RemoteException
Get the role worklist of the current user.

Parameters:
a - the application, if null return work items for all applications
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getSuspensionList

java.util.List<ActivityInstance> getSuspensionList(Application a)
                                                   throws java.rmi.RemoteException
Get the personal suspension list of the current user.

Parameters:
a - the application, if null return work items for all applications
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getRoleSuspensionList

java.util.List<ActivityInstance> getRoleSuspensionList(Application a)
                                                       throws java.rmi.RemoteException
Get the role suspension list of the current user.

Parameters:
a - the application, if null return work items for all applications
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getProcess

ProcessInstance getProcess(java.lang.String id)
                           throws java.rmi.RemoteException
Find a process instance from the given id.

Parameters:
id - the process instance id
Returns:
the process instance
Throws:
java.rmi.RemoteException

getProcess

ProcessInstance getProcess(long oid)
                           throws java.rmi.RemoteException
Find a process instance from the given oid.

Parameters:
oid - the process instance oid
Returns:
the process instance
Throws:
java.rmi.RemoteException

getProcessFromForm

ProcessInstance getProcessFromForm(long formoid)
                                   throws java.rmi.RemoteException
Find a process instance from the oid of a form.

Parameters:
formoid - the oid of a process form
Returns:
the process instance
Throws:
java.rmi.RemoteException

getActivityInstance

ActivityInstance getActivityInstance(long oid)
                                     throws java.rmi.RemoteException
Find a activity instance from the given oid.

Parameters:
oid - the activity instance oid
Returns:
the process instance
Throws:
java.rmi.RemoteException

getProcess

ProcessInstance getProcess(DMSForm f)
                           throws java.rmi.RemoteException
Find the process instance where the given form is attached. The method returns a process if and only if the form is a process form. It returns null for subforms.

Parameters:
f - the form
Returns:
the process instance
Throws:
java.rmi.RemoteException

getProcesses

java.util.List<ProcessInstance> getProcesses(java.lang.String condition)
                                             throws java.rmi.RemoteException
Find the process instances with a given condition.

Parameters:
condition - a SQL where clause
Returns:
a list of process instances
Throws:
java.rmi.RemoteException

getActivities

java.util.List<ActivityInstance> getActivities(java.lang.String condition)
                                               throws java.rmi.RemoteException
Find the activity instances with a given condition.

Parameters:
condition - a SQL where clause
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getAllInteractiveTasks

java.util.List<? extends ActivityInstance> getAllInteractiveTasks(ProcessInstance process)
                                                                  throws java.rmi.RemoteException
Get the list of ALL active, interactive activities of a process instance. ATTENTION: this method returns all interactive (Type =ActivityInstance.TASK) ActivityInstances of the given ProcessInstance, even ALL children of ActivityInstance.PAR, ActivityInstance.PARFOR and ActivityInstance.SCOPE will be returned

Parameters:
process - the process instance
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getActiveTasks

java.util.List<ActivityInstance> getActiveTasks(ProcessInstance process)
                                                throws java.rmi.RemoteException
Get the list of active activities of a process instance. ATTENTION: this method returns all types of ActivityInstance, but doesn't return ALL ActivityInstances of the given ProcessInstance. children of ActivityInstance.PAR, ActivityInstance.PARFOR and ActivityInstance.SCOPE will not be returned

Parameters:
process - the process instance
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getActiveTasks

java.util.List<ActivityInstance> getActiveTasks(ProcessInstance process,
                                                User u)
                                                throws java.rmi.RemoteException
Get the list of active activities of a process instance assigned to a user. ATTENTION: this method returns all types of ActivityInstance, but doesn't return ALL ActivityInstances of the given ProcessInstance. children of ActivityInstance.PAR, ActivityInstance.PARFOR and ActivityInstance.SCOPE will not be returned

Parameters:
u - the user
process - the process instance
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getActivityInstances

java.util.List<ActivityInstance> getActivityInstances(ProcessInstance process)
                                                      throws java.rmi.RemoteException
Get the list of all direct activity instances of a process instance.

ATTENTION: this method doesn't return ALL ActivityInstances of the given ProcessInstance. children of ActivityInstance.PROCESS, ActivityInstance.PARFOR and ActivityInstance.SCOPE will not be returned

Parameters:
process - the process instance
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getActivityInstances

java.util.List<ActivityInstance> getActivityInstances(ProcessInstance process,
                                                      java.lang.String steplabel)
                                                      throws java.rmi.RemoteException
Get the list of direct activity instances of a particular step in a process.

ATTENTION: this method doesn't return ALL ActivityInstances of the given ProcessInstance. children of ActivityInstance.PROCESS, ActivityInstance.PARFOR and ActivityInstance.SCOPE will not be returned

Parameters:
process - the process instance
steplabel - the label of the step
Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

getDocuments

java.util.List<DMSObject> getDocuments(ProcessInstance process)
                                       throws java.rmi.RemoteException
Get the list of DMS objects (e.g. documents, folders) attached to a process.

Parameters:
process - the process instance
Returns:
a list of DMSObject
Throws:
java.rmi.RemoteException

getForm

DMSForm getForm(ProcessInstance pi,
                java.lang.String name)
                throws java.rmi.RemoteException
Get a form of a process.

Parameters:
pi - the process instance
Returns:
the form
Throws:
java.rmi.RemoteException

getForms

java.util.List<DMSForm> getForms(ProcessInstance process)
                                 throws java.rmi.RemoteException
Get the forms of a process.

Parameters:
process - the process instance
Returns:
the forms (DMSForm objects)
Throws:
java.rmi.RemoteException

getMainProcess

ProcessInstance getMainProcess(ActivityInstance ai)
                               throws java.rmi.RemoteException
Get the root of the activity instance tree

Parameters:
ai - an activity instance
Returns:
the process instance of the main process of the given activity instance.
Throws:
java.rmi.RemoteException

getParent

ProcessInstance getParent(ActivityInstance ai)
                          throws java.rmi.RemoteException
Get the process instance of the given activity instance.

Parameters:
ai - an activity instance
Returns:
the process instance
Throws:
java.rmi.RemoteException

getNotes

java.util.List<DMSNote> getNotes(ProcessInstance process)
                                 throws java.rmi.RemoteException
Get the notes to a process instances

Parameters:
process - a process instance
Returns:
a list of notes (DMSNote objects)
Throws:
java.rmi.RemoteException

hasDocuments

boolean hasDocuments(ProcessInstance process)
                     throws java.rmi.RemoteException
Has the process documents attached?

Parameters:
process - a process instance
Returns:
true if documents are present
Throws:
java.rmi.RemoteException

hasNotes

boolean hasNotes(ProcessInstance process)
                 throws java.rmi.RemoteException
Has the process notes attached?

Parameters:
process - a process instance
Returns:
true if notes are present
Throws:
java.rmi.RemoteException

getFieldModes

java.util.Map<java.lang.String,java.lang.Short> getFieldModes(ActivityInstance ai,
                                                              DMSForm f)
                                                              throws java.rmi.RemoteException
Get field modes for form fields

Parameters:
ai - an activity instance
f - the form
Returns:
A map where the keys are the attribute names, the values are INVISIBLE, READ_ONLY, and READ_WRITE as short objects
Throws:
java.rmi.RemoteException

getFieldModes

java.util.Map<java.lang.String,java.lang.Short> getFieldModes(ActivityInstance ai,
                                                              DMSForm form,
                                                              DMSForm mainform,
                                                              java.lang.String id)
                                                              throws java.rmi.RemoteException
Get field modes for form fields and subforms

Parameters:
ai - activity instance
form - form or sub form, may be null if mainform is set
mainform - main form, may be null if form is already contain mainform
id - subform relation id
Returns:
Map of FormFieldMode2 objects
Throws:
java.rmi.RemoteException

getSuspensions

java.util.List<Suspension> getSuspensions(ActivityInstance ai)
                                          throws java.rmi.RemoteException
Find out when and how the activity instance was in the suspension list.

Parameters:
ai -
Returns:
a list of Suspensions
Throws:
java.rmi.RemoteException

take

ActivityInstance take(ActivityInstance ai)
                      throws java.rmi.RemoteException
Take an activity: move it from the role-worklist to the worklist.

Parameters:
ai - an activity instance
Returns:
the activity instance now active, this may be the same as as the parameter but can alos be another object
Throws:
java.rmi.RemoteException

finish

void finish(ActivityInstance ai)
            throws java.rmi.RemoteException
Finsh an activity, the engine starts the next step.

Parameters:
ai - an activity instance
Throws:
java.rmi.RemoteException

getChoiceSteps

java.util.List<java.util.List<ActivityInstance>> getChoiceSteps(ActivityInstance ai)
                                                                throws java.rmi.RemoteException
Use this method to get the possible choice branches when the process execution reaches a choice. The method returns a list of lists, each inner list contains the choice branches belonging to one choice.

Parameters:
ai -
Returns:
a list of lists of ActivityInstances
Throws:
java.rmi.RemoteException

finishChoice

void finishChoice(ActivityInstance ai)
                  throws java.rmi.RemoteException
Finishs a choice branch, abort the other branches.

Parameters:
ai - the choice step on the branch you want to follows
Throws:
java.rmi.RemoteException

closePredecessor

void closePredecessor(ActivityInstance ai)
                      throws java.rmi.RemoteException
If the predecessor of ai was not finished completely (is in status WAITING) and the necessary action is done now (for example setting the agent for ai) this method will complete it. If the predecessor is in another state it does nothing.

Parameters:
ai -
Throws:
java.rmi.RemoteException

listPreviousSteps

java.util.List<Pair<ActivityInstance,java.util.List<ActivityInstance>>> listPreviousSteps(ActivityInstance ai)
                                                                                          throws java.rmi.RemoteException
List the previous steps of the process (possible go back targets).

Parameters:
ai - current activity instance
Returns:
a list of Pairs. The first element of the pair is a previous activity instance, the second is a list of activities that must be aborted when going back to this step (for example siblings in a parallelism).
Throws:
java.rmi.RemoteException

goBack

ActivityInstance goBack(ActivityInstance ai,
                        ActivityInstance ai2,
                        java.lang.String comment)
                        throws java.rmi.RemoteException
Go back to a previous step. A clone of the given previous activity instance of this process instance is created, the comment is added to the new activity.

Parameters:
ai - an activity instance
ai2 - a finished activity instance
comment - a comment
Returns:
the activity instance now active
Throws:
java.rmi.RemoteException

untake

ActivityInstance untake(ActivityInstance ai)
                        throws java.rmi.RemoteException
Put back an activity: move it from the worklist to the role-worklist.

Parameters:
ai - an activity instance
Returns:
the activity instance now active
Throws:
java.rmi.RemoteException

seeLater

void seeLater(ActivityInstance ai,
              java.util.Date d)
              throws java.rmi.RemoteException
Move the activity instance from the worklist to the suspension list.

Parameters:
ai - an activity instance
d - the date, when the item should reappear in the worklist
Throws:
java.rmi.RemoteException

seeLater

void seeLater(ActivityInstance ai,
              java.util.Date d,
              java.lang.String description)
              throws java.rmi.RemoteException
Move the activity instance from the worklist to the suspension list.

Parameters:
ai - an activity instance
d - the date, when the item should reappear in the worklist
description - an optional comment
Throws:
java.rmi.RemoteException

seeAgain

void seeAgain(ActivityInstance ai)
              throws java.rmi.RemoteException
Move the activity instance from the suspension list to the worklist.

Parameters:
ai - an activity instance
Throws:
java.rmi.RemoteException

setAgent

void setAgent(ActivityInstance ai,
              Agent a)
              throws java.rmi.RemoteException
Give the activity instance to another agent. Please note that this method does not set the step agent (which is needed e.g. for untake operation)!

Parameters:
ai - an activity instance
a - an agent (user or role)
Throws:
java.rmi.RemoteException

changeAgent

ActivityInstance changeAgent(ActivityInstance ai,
                             Agent a,
                             OrgUnit ou,
                             java.lang.String comment)
                             throws java.rmi.RemoteException
Give the activity instance to another agent. Change is visible in process history

Parameters:
ai - an activity instance
a - an agent (user or role)
ou - an org-unit, may be null
comment - optional comment to the next agent
Throws:
java.rmi.RemoteException

setStepAgent

void setStepAgent(ActivityInstance ai,
                  Agent a)
                  throws java.rmi.RemoteException
Set the step-agent of the activity instance to another agent. This is the agent where a untake of the activity instance

Parameters:
ai - an activity instance
a - an agent (user or role)
Throws:
java.rmi.RemoteException

gotoTask

@Deprecated
void gotoTask(ProcessInstance process,
                         java.lang.String taskid,
                         Agent ag,
                         java.lang.String comment)
              throws java.rmi.RemoteException
Deprecated. the methodbehaves unpredictabe when more than one activity instance of the process is active and when the task appears more than once in the process definition.

Goto another task. The process flow leaves the defined route and jumps to the given task. The id of the task, an agent and a comment is given.

Parameters:
process - an processinstance instance
taskid - id of a task
ag - an agent (user or role)
comment - a comment string
Throws:
java.rmi.RemoteException

gotoTask

void gotoTask(ActivityInstance ai,
              java.lang.String stepname,
              Agent ag,
              OrgUnit ou,
              java.lang.String comment)
              throws java.rmi.RemoteException
Goto another task. The process flow leaves the defined route and jumps to the given task.

Parameters:
ai - an activity instance
stepname - the name of a step to jump to, set the name in the process definition (editor or WDL).
ag - an agent (user or role), may be null
ou - the org.unit (may be null)
comment - a comment string
Throws:
java.rmi.RemoteException

copyTo

ActivityInstance copyTo(ActivityInstance ai,
                        User u)
                        throws java.rmi.RemoteException
Send a copy to another user.

Parameters:
ai - an activity instance
u - a user
Returns:
the copy activity instance
Throws:
java.rmi.RemoteException

makeBranch

@Deprecated
void makeBranch(ProcessInstance process,
                           Task t,
                           Agent a,
                           OrgUnit d,
                           java.util.List forms)
                throws java.rmi.RemoteException
Deprecated. use method without form argument

Insert a new step - subprocess or task - to the running process. The step is added as a branch and can be completed independent of the process.

Throws:
java.rmi.RemoteException

makeBranch

ActivityInstance makeBranch(ProcessInstance process,
                            Task t,
                            Agent a,
                            OrgUnit d)
                            throws java.rmi.RemoteException
Insert a new step to the running process. The step is added as a branch and can be completed independent of the process.

Parameters:
process - instance of the process
t - a task assigned to the process
a - a user or role
d - an optional department
Throws:
java.rmi.RemoteException

addParforInstances

void addParforInstances(java.lang.String stepid,
                        ActivityInstance previous)
                        throws java.rmi.RemoteException
Start additional parfor branches for the given step. Branches are only started if there are already running branches.

Parameters:
stepid - the id of the parfor step
previous - an activity instance of the same process instance
Throws:
java.lang.Exception
java.rmi.RemoteException

setOrgUnit

void setOrgUnit(ActivityInstance ai,
                OrgUnit d)
                throws java.rmi.RemoteException
Change the organizational unit of a process.

Parameters:
ai - an activity instance
d - the OrgUnit
Throws:
java.rmi.RemoteException

setDescription

void setDescription(ActivityInstance ai,
                    java.lang.String descr)
                    throws java.rmi.RemoteException
Set the description of an activity instance.

Parameters:
ai - an activity instance
descr - the new desription
Throws:
java.rmi.RemoteException

setSubject

void setSubject(ProcessInstance process)
                throws java.rmi.RemoteException
Set the subject of the process instance according to the definition in the process definition.

Parameters:
process - the process instance
Throws:
java.rmi.RemoteException

setSubjectToString

void setSubjectToString(ProcessInstance process,
                        java.lang.String str)
                        throws java.rmi.RemoteException
Set the subject of the process instance o the given string value.

Parameters:
process - the process instance
str - the new subject
Throws:
java.rmi.RemoteException

updateForm

void updateForm(DMSForm f)
                throws java.rmi.RemoteException
Update the form (make the changes persistent).

Parameters:
f - the form
Throws:
java.rmi.RemoteException

setDuedate

void setDuedate(ActivityInstance ai,
                java.util.Date d)
                throws java.rmi.RemoteException
Set the duedate of the activity instance.

Parameters:
ai - an activity instance
d - the new due date
Throws:
java.rmi.RemoteException

setId

void setId(ProcessInstance pi,
           java.lang.String s)
           throws java.rmi.RemoteException
Set the id of the process instance.

Parameters:
pi - a process instance
s - the new id
Throws:
java.rmi.RemoteException

setPriority

void setPriority(ProcessInstance pi,
                 int priority)
                 throws java.rmi.RemoteException
Set the priority of the process instance.

Parameters:
pi - a process instance
priority - the new priority, two digit integer, starting with 0 (means lowest priority).
Throws:
java.rmi.RemoteException

abort

void abort(ProcessInstance process)
           throws java.rmi.RemoteException
Abort a process.

Parameters:
process - the process instance
Throws:
java.rmi.RemoteException

reactivate

void reactivate(ProcessInstance process)
                throws java.rmi.RemoteException
Reactivate a process.

Parameters:
process - the process instance
Throws:
java.rmi.RemoteException

archive

void archive(ProcessInstance process)
             throws java.rmi.RemoteException
Archive a process. Remove it from the database.

Parameters:
process - the process instance
Throws:
java.rmi.RemoteException

abort

void abort(ProcessInstance process,
           java.lang.String comment)
           throws java.rmi.RemoteException
Abort a process and add a DMSNote with a generated Subject and a given comment.

Parameters:
process - the process instance
comment - a comment, why the process is aborted
Throws:
java.rmi.RemoteException

reactivate

void reactivate(ProcessInstance process,
                java.lang.String comment)
                throws java.rmi.RemoteException
Reactivate a process.

Parameters:
process - the process instance
comment - a comment, why the process is reactivated
Throws:
java.rmi.RemoteException

reactivateAndTake

void reactivateAndTake(ProcessInstance process,
                       java.lang.String comment)
                       throws java.rmi.RemoteException
Reactivate a process and take the reactivated tasks.

Parameters:
process - the process instance
comment - a comment, why the process is reactivated
Throws:
java.rmi.RemoteException

getContext

ActivityInstance getContext()
                            throws java.rmi.RemoteException
Return the current activity instance. This method returns a non-null value when called from a postcondition, preprocessing, compensation method of a task of from a system step or a condition in a process definition.

Returns:
an activity instance
Throws:
java.rmi.RemoteException

setContext

void setContext(ActivityInstance ai)
                throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

getServerProperty

java.lang.String getServerProperty(java.lang.String prop)
                                   throws java.rmi.RemoteException
Returns a property from the server

Returns:
the property, null if the property is unknown.
Throws:
java.rmi.RemoteException

listSuccessors

java.util.List<ActivityInstance> listSuccessors(ActivityInstance ai)
                                                throws java.rmi.RemoteException
Return the list of successor steps of an activity instance.

Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

listPredecessors

java.util.List<ActivityInstance> listPredecessors(ActivityInstance ai)
                                                  throws java.rmi.RemoteException
Return the list of predecessor steps of an activity instance.

Returns:
a list of activity instances
Throws:
java.rmi.RemoteException

addAgent

void addAgent(ActivityInstance ai,
              Agent a,
              OrgUnit ou,
              DMSNote note)
              throws java.rmi.RemoteException
Add an agent which receives the process after the current agent

Parameters:
ai - the activity instance
a - a user or role
ou - an organizational unit, if null the ou of the previous activity instance is used
note - an (optional) note to the agent of the activity
Throws:
java.rmi.RemoteException

setCheckedOut

void setCheckedOut(ActivityInstance ai,
                   boolean state)
                   throws java.rmi.RemoteException
Set the activityInstance as checcked out or in (i.e. is on mobile server)

Parameters:
state - if true we check it out
ai - the activity instance
Throws:
java.rmi.RemoteException

goBackToLastInteractive

void goBackToLastInteractive(ActivityInstance ai,
                             java.lang.String comment)
                             throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

makeVersion

ActivityInstance makeVersion(ActivityInstance ai,
                             java.lang.String desc,
                             boolean withDocs)
                             throws java.rmi.RemoteException
Versions the passed activity instance, the process forms and the documents (optional) and returns a new activity instance which is a copy of the passed one.

Parameters:
ai - the activity instance to version
desc - a comment for this version
withDocs - if true all the documents are also versioned
Returns:
the new activity instance
Throws:
java.rmi.RemoteException

refreshWLCacheOrgData

void refreshWLCacheOrgData()
                           throws java.rmi.RemoteException
Refresh the organizational data in the worklist cache.

Throws:
java.rmi.RemoteException

refreshWLCache

void refreshWLCache(User u)
                    throws java.rmi.RemoteException
Refresh the organizational data in the WorklistCache for a particular user.

Parameters:
u - - the user
Throws:
java.rmi.RemoteException

setFinished

void setFinished(ActivityInstance ai)
                 throws java.rmi.RemoteException
Set the status of the activity instance to FINISHED. This method should be used only in the expressions in an andjoin or end parfor node. In case of parfor set the state of the parent of the current activity instance. In both cases if you set the state to finished the engine will continue the process after the parallelism.

Parameters:
ai - the activity instance to be finished
Throws:
java.rmi.RemoteException

abortSiblings

void abortSiblings(ActivityInstance join)
                   throws java.rmi.RemoteException
Abort the siblings of the par branch. The activity instance must be an instance of the andjoin node. Note that you must assure that the process continues after the andjoin, you can do this by calling wfEngine.setFinished(join) - otherwise the process will hang in the andjoin

Parameters:
join -
Throws:
java.rmi.RemoteException

abortParforSiblings

void abortParforSiblings(ActivityInstance parfor)
                         throws java.rmi.RemoteException
Abort the running siblings of the current parfor instances. Note that you must assure that the process continues after the parfor, you can do this by calling wfEngine.setFinished(parfor) - otherwise the process will hang in the end parfor node

Parameters:
parfor - an instance of the parfor step (a parent of an activityinstance inside the parfor)
Throws:
java.rmi.RemoteException

setSeen

void setSeen(ActivityInstance ai,
             boolean seen)
             throws java.rmi.RemoteException
Set the given ActivityInstance to seen/unseen for the current user.

Throws:
java.rmi.RemoteException

hasSeen

boolean hasSeen(ActivityInstance ai)
                throws java.rmi.RemoteException
Returns true if the ActivityInstance has been seen by the current user.

Throws:
java.rmi.RemoteException

getFormVersion

PersistentVersion getFormVersion(DMSForm form,
                                 ActivityInstance ai)
                                 throws java.rmi.RemoteException
Returns the version of the passed form in the context of the passed activity instance

Parameters:
form - the form which version is wanted
ai - the activity instance determining the context of the version
Returns:
the requested version or null if there is no such version
Throws:
java.rmi.RemoteException

listFormVersions

java.util.List<PersistentVersion> listFormVersions(ActivityInstance ai)
                                                   throws java.rmi.RemoteException
Returns a list of form versions (at most one for each process form) which were made in the context of the passed activity instance.

Parameters:
ai - the activity instance determining the context of the versions
Returns:
the requested versions or an empty list if there are no such versions
Throws:
java.rmi.RemoteException


@enterprise 8.0.22989 Copyright © 2001-2017 Groiss Informatics GmbH. All Rights Reserved.