org.imixs.workflow.jee.ejb
Class WorkflowService

java.lang.Object
  extended by org.imixs.workflow.jee.ejb.WorkflowService
All Implemented Interfaces:
org.imixs.workflow.ExtendedWorkflowContext, WorkflowServiceRemote, org.imixs.workflow.WorkflowContext, org.imixs.workflow.WorkflowManager

@DeclareRoles(value={"org.imixs.ACCESSLEVEL.NOACCESS","org.imixs.ACCESSLEVEL.READERACCESS","org.imixs.ACCESSLEVEL.AUTHORACCESS","org.imixs.ACCESSLEVEL.EDITORACCESS","org.imixs.ACCESSLEVEL.MANAGERACCESS"})
@RolesAllowed(value={"org.imixs.ACCESSLEVEL.NOACCESS","org.imixs.ACCESSLEVEL.READERACCESS","org.imixs.ACCESSLEVEL.AUTHORACCESS","org.imixs.ACCESSLEVEL.EDITORACCESS","org.imixs.ACCESSLEVEL.MANAGERACCESS"})
public class WorkflowService
extends java.lang.Object
implements org.imixs.workflow.WorkflowManager, org.imixs.workflow.ExtendedWorkflowContext, WorkflowServiceRemote

The WorkflowService is the JEE Implementation for the Imixs Workflow Core API. This interface acts as a service facade and supports basic methods to create, process and access workitems. The Interface extends the core api interface org.imixs.workflow.WorkflowManager with getter methods to fetch collections of workitems.

Author:
rsoika

Field Summary
static int SORT_ORDER_CREATED_ASC
           
static int SORT_ORDER_CREATED_DESC
           
static int SORT_ORDER_MODIFIED_ASC
           
static int SORT_ORDER_MODIFIED_DESC
           
 
Constructor Summary
WorkflowService()
           
 
Method Summary
 EntityService getEntityService()
          This method returns an instance of the Imixs JEE EntityService used by the WorkflowManager Implementation.
 org.imixs.workflow.ExtendedModel getExtendedModel()
           
 int getLogLevel()
          Workflow Context
 org.imixs.workflow.Model getModel()
          This Method returns the modelManager Instance.
 ModelService getModelService()
          This method returns an instance of the Imixs JEE ModelService used by the WorkflowManager Implementation.
 java.lang.Object getSessionContext()
           
 java.lang.String getUserName()
          Obtain the java.security.Principal that identifies the caller and returns the name of this principal.
 java.util.List<java.lang.String> getUserNameList()
          This method returns a list of user names, roles and application groups the caller belongs to.
 org.imixs.workflow.ItemCollection getWorkItem(java.lang.String uniqueid)
          This method loads a Workitem with the corresponding uniqueid
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkList()
          Returns the Worklist for the current user
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkList(int startpos, int count, java.lang.String type, int sortorder)
          Returns a collection of workItems belonging to current user.
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByAuthor(java.lang.String name)
          Returns the worklist by author for the current user
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByAuthor(java.lang.String name, int startpos, int count, java.lang.String type, int sortorder)
          Returns a collection of workItems belonging to a specified username.
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByCreator(java.lang.String name, int startpos, int count, java.lang.String type, int sortorder)
          Returns a collection of workitems created by a specified user (namCreator).
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByGroup(java.lang.String name, int startpos, int count, java.lang.String type, int sortorder)
           
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByOwner(java.lang.String name, int startpos, int count, java.lang.String type, int sortorder)
          Returns a collection of workitems containing a namOwner property belonging to a specified username.
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByProcessID(int aid, int startpos, int count, java.lang.String type, int sortorder)
          Returns a collection of workitems belonging to a specified $processID defined by the workflow model.
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByRef(java.lang.String aref)
          Returns a collection of workitems belonging to a specified workitem identified by the attribute $UniqueIDRef.
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByRef(java.lang.String aref, int startpos, int count, java.lang.String type, int sortorder)
          Returns a collection of workitems belonging to a specified workitem identified by the attribute $UniqueIDRef.
 java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByWriteAccess(int startpos, int count, java.lang.String type, int sortorder)
          Returns a collection of workitems where the current user has a writeAccess.
 boolean isUserInRole(java.lang.String rolename)
          Test if the caller has a given security role.
 org.imixs.workflow.ItemCollection processWorkItem(org.imixs.workflow.ItemCollection workitem)
          processes a workItem.
 void removeWorkItem(org.imixs.workflow.ItemCollection aworkitem)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SORT_ORDER_CREATED_DESC

public static final int SORT_ORDER_CREATED_DESC
See Also:
Constant Field Values

SORT_ORDER_CREATED_ASC

public static final int SORT_ORDER_CREATED_ASC
See Also:
Constant Field Values

SORT_ORDER_MODIFIED_DESC

public static final int SORT_ORDER_MODIFIED_DESC
See Also:
Constant Field Values

SORT_ORDER_MODIFIED_ASC

public static final int SORT_ORDER_MODIFIED_ASC
See Also:
Constant Field Values
Constructor Detail

WorkflowService

public WorkflowService()
Method Detail

getWorkItem

public org.imixs.workflow.ItemCollection getWorkItem(java.lang.String uniqueid)
This method loads a Workitem with the corresponding uniqueid

Specified by:
getWorkItem in interface WorkflowServiceRemote
Specified by:
getWorkItem in interface org.imixs.workflow.WorkflowManager

getWorkList

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkList(int startpos,
                                                                           int count,
                                                                           java.lang.String type,
                                                                           int sortorder)
Returns a collection of workItems belonging to current user. The method returns only workitems where the current user has read access.

Specified by:
getWorkList in interface WorkflowServiceRemote
Parameters:
startpos - = optional start position
count - = optional count - default = -1
type - = defines the type property of the workitems to be returnd. can be null
sortorder - = defines sortorder (SORT_ORDER_CREATED_DESC = 0 SORT_ORDER_CREATED_ASC = 1 SORT_ORDER_MODIFIED_DESC = 2 SORT_ORDER_MODIFIED_ASC = 3)
Returns:
List of workitems

getWorkList

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkList()
Returns the Worklist for the current user

Specified by:
getWorkList in interface WorkflowServiceRemote
Specified by:
getWorkList in interface org.imixs.workflow.WorkflowManager

getWorkListByAuthor

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByAuthor(java.lang.String name,
                                                                                   int startpos,
                                                                                   int count,
                                                                                   java.lang.String type,
                                                                                   int sortorder)
Returns a collection of workItems belonging to a specified username. The name is a username or role contained in the $WriteAccess attribute of the workItem. The method returns only workitems the call has sufficient read access for.

Specified by:
getWorkListByAuthor in interface WorkflowServiceRemote
Parameters:
name - = username or role contained in $writeAccess - if null current username will be used
startpos - = optional start position
count - = optional count - default = -1
type - = defines the type property of the workitems to be returnd. can be null
sortorder - = defines sortorder (SORT_ORDER_CREATED_DESC = 0 SORT_ORDER_CREATED_ASC = 1 SORT_ORDER_MODIFIED_DESC = 2 SORT_ORDER_MODIFIED_ASC = 3)
Returns:
List of workitems

getWorkListByAuthor

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByAuthor(java.lang.String name)
Returns the worklist by author for the current user

Specified by:
getWorkListByAuthor in interface WorkflowServiceRemote
Parameters:
name -
Returns:

getWorkListByCreator

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByCreator(java.lang.String name,
                                                                                    int startpos,
                                                                                    int count,
                                                                                    java.lang.String type,
                                                                                    int sortorder)
Returns a collection of workitems created by a specified user (namCreator). The behaivor is simmilar to the method getWorkList.

Specified by:
getWorkListByCreator in interface WorkflowServiceRemote
Parameters:
name - = username for property namCreator - if null current username will be used
startpos - = optional start position
count - = optional count - default = -1
type - = defines the type property of the workitems to be returnd. can be null
sortorder - = defines sortorder (SORT_ORDER_CREATED_DESC = 0 SORT_ORDER_CREATED_ASC = 1 SORT_ORDER_MODIFIED_DESC = 2 SORT_ORDER_MODIFIED_ASC = 3)
Returns:
List of workitems

getWorkListByOwner

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByOwner(java.lang.String name,
                                                                                  int startpos,
                                                                                  int count,
                                                                                  java.lang.String type,
                                                                                  int sortorder)
Returns a collection of workitems containing a namOwner property belonging to a specified username. The namOwner property is typical controled by the OwnerPlugin

Specified by:
getWorkListByOwner in interface WorkflowServiceRemote
Parameters:
name - = username for property namOwner - if null current username will be used
startpos - = optional start position
count - = optional count - default = -1
type - = defines the type property of the workitems to be returnd. can be null
sortorder - = defines sortorder (SORT_ORDER_CREATED_DESC = 0 SORT_ORDER_CREATED_ASC = 1 SORT_ORDER_MODIFIED_DESC = 2 SORT_ORDER_MODIFIED_ASC = 3)
Returns:
List of workitems

getWorkListByWriteAccess

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByWriteAccess(int startpos,
                                                                                        int count,
                                                                                        java.lang.String type,
                                                                                        int sortorder)
Returns a collection of workitems where the current user has a writeAccess. This means the either the username or one of the userroles is contained in the $writeaccess property

Specified by:
getWorkListByWriteAccess in interface WorkflowServiceRemote
Parameters:
startpos - = optional start position
count - = optional count - default = -1
type - = defines the type property of the workitems to be returnd. can be null
sortorder - = defines sortorder (SORT_ORDER_CREATED_DESC = 0 SORT_ORDER_CREATED_ASC = 1 SORT_ORDER_MODIFIED_DESC = 2 SORT_ORDER_MODIFIED_ASC = 3)
Returns:
List of workitems

getWorkListByGroup

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByGroup(java.lang.String name,
                                                                                  int startpos,
                                                                                  int count,
                                                                                  java.lang.String type,
                                                                                  int sortorder)
Specified by:
getWorkListByGroup in interface WorkflowServiceRemote

getWorkListByProcessID

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByProcessID(int aid,
                                                                                      int startpos,
                                                                                      int count,
                                                                                      java.lang.String type,
                                                                                      int sortorder)
Returns a collection of workitems belonging to a specified $processID defined by the workflow model. The behaivor is simmilar to the method getWorkList.

Specified by:
getWorkListByProcessID in interface WorkflowServiceRemote
Parameters:
aID - = $ProcessID for the workitems to be returned.
startpos - = optional start position
count - = optional count - default = -1
type - = defines the type property of the workitems to be returnd. can be null
sortorder - = defines sortorder (SORT_ORDER_CREATED_DESC = 0 SORT_ORDER_CREATED_ASC = 1 SORT_ORDER_MODIFIED_DESC = 2 SORT_ORDER_MODIFIED_ASC = 3)
Returns:
List of workitems

getWorkListByRef

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByRef(java.lang.String aref)
Returns a collection of workitems belonging to a specified workitem identified by the attribute $UniqueIDRef. The behavior of this method is similar to the method getWorkList.

Specified by:
getWorkListByRef in interface WorkflowServiceRemote
Parameters:
aref - A unique reference to another workitem inside a database *
Returns:
List of workitems

getWorkListByRef

public java.util.Collection<org.imixs.workflow.ItemCollection> getWorkListByRef(java.lang.String aref,
                                                                                int startpos,
                                                                                int count,
                                                                                java.lang.String type,
                                                                                int sortorder)
Returns a collection of workitems belonging to a specified workitem identified by the attribute $UniqueIDRef. The behaivor of this Mehtod is simmilar to the method getWorkList.

Specified by:
getWorkListByRef in interface WorkflowServiceRemote
Parameters:
aref - A unique reference to another workitem inside a database *
startpos - = optional start position
count - = optional count - default = -1
type - = defines the type property of the workitems to be returnd. can be null
sortorder - = defines sortorder (SORT_ORDER_CREATED_DESC = 0 SORT_ORDER_CREATED_ASC = 1 SORT_ORDER_MODIFIED_DESC = 2 SORT_ORDER_MODIFIED_ASC = 3)
Returns:
List of workitems

processWorkItem

public org.imixs.workflow.ItemCollection processWorkItem(org.imixs.workflow.ItemCollection workitem)
                                                  throws org.imixs.workflow.exceptions.AccessDeniedException,
                                                         org.imixs.workflow.exceptions.ProcessingErrorException
processes a workItem. The workitem have to provide the properties '$modelversion', '$processid' and '$activityid' The method try to load the current instance of the given workitem and compares the property $processID. If it is not equal the method throws an ProcessingErrorException.

Specified by:
processWorkItem in interface WorkflowServiceRemote
Specified by:
processWorkItem in interface org.imixs.workflow.WorkflowManager
Parameters:
workitem - - the workItem to be processed
Returns:
updated version of the processed workItem
Throws:
InvalidItemValueException - if $modelVersion did not exists or the workItem has an invalid status
org.imixs.workflow.exceptions.AccessDeniedException - if call has no write access for the given workItem
org.imixs.workflow.exceptions.ProcessingErrorException - if processing by a plugin fails

removeWorkItem

public void removeWorkItem(org.imixs.workflow.ItemCollection aworkitem)
                    throws org.imixs.workflow.exceptions.AccessDeniedException
Specified by:
removeWorkItem in interface WorkflowServiceRemote
Specified by:
removeWorkItem in interface org.imixs.workflow.WorkflowManager
Throws:
org.imixs.workflow.exceptions.AccessDeniedException

getLogLevel

public int getLogLevel()
Workflow Context

Specified by:
getLogLevel in interface WorkflowServiceRemote
Specified by:
getLogLevel in interface org.imixs.workflow.WorkflowContext

getModel

public org.imixs.workflow.Model getModel()
This Method returns the modelManager Instance. The current ModelVersion is automatically updated during the Method updateProfileEntity which is called from the processWorktiem method.

Specified by:
getModel in interface WorkflowServiceRemote
Specified by:
getModel in interface org.imixs.workflow.WorkflowContext

getExtendedModel

public org.imixs.workflow.ExtendedModel getExtendedModel()
Specified by:
getExtendedModel in interface org.imixs.workflow.ExtendedWorkflowContext

getSessionContext

public java.lang.Object getSessionContext()
Specified by:
getSessionContext in interface org.imixs.workflow.WorkflowContext

getEntityService

public EntityService getEntityService()
This method returns an instance of the Imixs JEE EntityService used by the WorkflowManager Implementation. The method can be used to access the EntityService during a Plugin call.

Returns:
EntityService
Throws:
java.lang.Exception

getModelService

public ModelService getModelService()
This method returns an instance of the Imixs JEE ModelService used by the WorkflowManager Implementation. The method can be used to access the ModelService during a Plugin call.

Specified by:
getModelService in interface WorkflowServiceRemote
Returns:
EntityService
Throws:
java.lang.Exception

getUserName

public java.lang.String getUserName()
Obtain the java.security.Principal that identifies the caller and returns the name of this principal.

Specified by:
getUserName in interface WorkflowServiceRemote
Returns:
the user name

isUserInRole

public boolean isUserInRole(java.lang.String rolename)
Test if the caller has a given security role.

Specified by:
isUserInRole in interface WorkflowServiceRemote
Parameters:
rolename -
Returns:
true if user is in role

getUserNameList

public java.util.List<java.lang.String> getUserNameList()
This method returns a list of user names, roles and application groups the caller belongs to.

Specified by:
getUserNameList in interface WorkflowServiceRemote
Returns:


Copyright © 2006-2012 Imixs Software Solutions GmbH. All Rights Reserved.