Assignment manager job is to return a list of user Ids which should be assigned to particular activity instance.
AssignmentManager interface has only 4 methods
There are several assignment manager implementations coming with Shark:
StandardAssignmentManager: tries to generate list of users based on ParticipantMapping and UserGroup information
HistoryRelatedAssignmentManager: reads several ext. attributes. where one can specify if activity should be assigned to the user that previously executed such activity (in the case of loops) or to the user that previously executed some other activity. If no ext. attributes. specified behaves like Standard implementation
XPDLStraightParticipantMappingAssignmentManager: returns only one user Id which is the same to the Id of the XPDL Participant
when tool activity is about to execute its tool, shark kernel gets the current value of variables specified as actual parameters (in the case actual parameter is an expression, it evaluates expression using current values of all process variables), and provides these values to a DefaultToolAgent
DefaultToolAgent reads an ext. attrib. ToolAgentClass (from Application definition) and delegates a call to appropriate tool agent specified by this attribute, which is in this sample BshToolAgent
BshToolAgent reads additional extended attribute Script, and evaluates this script using variables provided by kernel, and updates their value.
At the end, kernel reads-back the variables which type is OUT or INOUT and updates process instance variables.