Does this application invoke workflows?

Topics: Architecture, Business model
Mar 1, 2007 at 1:38 PM
Note: This topic was first created as an issue (http://www.codeplex.com/LitwareHR/WorkItem/View.aspx?WorkItemId=517) and then copied as a discussion by user aschapiro.

Does this application invoke workflows?
I am trying to find where and how you invoke the workflow, defined in EvaluationProcess.cs?
Can you please point me to the right file?
Mar 1, 2007 at 1:39 PM
Edited Mar 1, 2007 at 1:40 PM
Yes, LitwareHR uses Windows Workflow Foundation (WF) to run tenant's business processes. In this case, since the module provided is a Human Resources (HR) module, they are Recruiting processes.
When the user opens a position, a new Recruiting Process (State machine workflow) begins, which keeps waiting for applicants to apply to it.


That workflow is invoked in LitwareHR.Recruiting.Services.ProcessLogic.cs, in the OpenRecruitingProcess method:

static public Guid OpenRecruitingProcess(Position position)
{
Dictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("TenantId", position.TenantId);
parameters.Add("PositionId", position.Id);
parameters.Add("Position", position);
WorkflowInstance workflowInstance = Runtime.CreateWorkflow(typeof(RecruitingProcess), parameters);
workflowInstance.Start();
RunWorkflowInScheduler(workflowInstance.InstanceId);

return workflowInstance.InstanceId;
}
Try inserting a breakpoint on the OpenRecruitingProcess code when opening a position to get more details.

When an applicant applies for that job, the RecruitingProcess gets the event, evaluates the rules configured by the tenant and based on that rules it starts a new Candidate Evaluation Process (CEP). This CEP is a sequential workflow designed by the tenant with the workflow editor provided in the private tenant site and stored in the SQL database in xaml format.

You can debug the application doing all of these to get more implementation details.

What do you think of the way LitwareHR handles the tenant's business processes?

Thanks!
Ariel Schapiro
http://staff.southworks.net/blogs/ariel