Search
/
|
|
|

Process Manager Customizations

The Process Manager toolset handles much of what is necessary to setup business processes, without the need for customizations. The toolset has been built, however, to allow for customizations when necessary.

The customization framework for Process Manager is structured in the following ways.

1) Classes inherited from the EfficiencyCommon API

The two primary classes of the Process Manager toolset, EfficiencyCommon.ProcessManager.Instance and EfficiencyCommon.ProcessManager.InstanceStep are inherited into the EfficiencyCommonC.Instance and EfficiencyCommonC.InstanceStep derived classes respectfully, which are located in the \app_code folder. These classes can be customized directly, or can be used as templates for making separate customized versions of the derived classes (how to dynamically call separate customized versions of the classes is covered in the section 2.

Each derived class has a set of functions and subroutines that can override and add onto the default behaviors of the inherited classes. Below are lists of these function and subroutines.

Function/Subroutine Purpose
EfficiencyCommonC.Instance
New Constructor
Dispose Memory use disposal function
CreateNewInstance Creates a new instance of a process and saves it to the database
SetupDefaultInstanceRoles Auto-assigns process roles; this function is often customized to account for the wide variety of ways a user might be assigned into a process role.
UpdateResponseForInstanceStep Updates the status of an instance step.
CustomizedStepCompleteHandler A function that executes when an instance of a step has been completed; this function is often customized to handle specific notifications, data table updates, and other business logic.


 

Function/Subroutine Purpose
EfficiencyCommonC.InstanceStep
RetrieveFromDatabase Retrieves the InstanceStep information from the database.
InsertIntoDatabase Inserts the instance step into the database.
RunInstanceStepTextReplaces Takes a string full of placeholders, and plugs in information about the instance, instance step, and process.
ApplyFilterToOutcome Run during a Decision step, this function evaluates whether an outcome path leading from the step should be executed once the step has been completed.

 

2) Centralized methods for instantiating the Instance and InstanceStep classes

The EfficiencySpringPage class, which is inherited into every EfficiencySpring web page, contains an instance of the EfficiencyCommonC.CoreObjectFactory class. The EfficiencyCommonC.CoreObjectFactory class contains two functions for creating the EfficiencyCommonC.Instance and EfficiencyCommonC.InstanceStep objects. They can be updated in the CoreObjectLibrary.vb file, located in the \app_code folder. These functions, CreateNewInstanceObject and CreateNewInstanceStepObject, are utilized everywhere in the aspx codebase for creating Instance and InstanceStep objects. Both functions can be updated to instantiate customized versions of the classes as opposed to the standard classes. For example:

	Public Function CreateNewInstanceObject( _
	ByVal ProcessId As Long, _
	ByVal passed_objUser As EfficiencyCommon.Security.User, _
	ByVal passed_rp As ReaderProvider, _
	ByVal passed_rp1 As ReaderProvider) As EfficiencyCommon.ProcessManager.Instance

		Return New Instance(passed_objUser, passed_rp, passed_rp1, Me)

	End Function

can be updated to return a customized class in a certain scenario:

	Public Function CreateNewInstanceObject( _
	ByVal ProcessId As Long, _
	ByVal passed_objUser As EfficiencyCommon.Security.User, _
	ByVal passed_rp As ReaderProvider, _
	ByVal passed_rp1 As ReaderProvider) As EfficiencyCommon.ProcessManager.Instance
		
		If ProcessId= 11 Then
			Return New CustomizedInstanceClass(ProcessId, passed_rp, passed_rp1, Me)
		End If
		
		Return New Instance(passed_objUser, passed_rp, passed_rp1, Me)

	End Function

 


Printable Version