‏הצגת רשומות עם תוויות Assignment Manager. הצג את כל הרשומות
‏הצגת רשומות עם תוויות Assignment Manager. הצג את כל הרשומות

יום רביעי, 24 באוגוסט 2011

Dynamically Skills Refresh in AM

It is a real divine feeling to watch how Assignment Manager works. One of the joys of AM is system takes care of assigning everything you have created. But as they say, Devi-lies-in-details, issue starts when you dig deep.


Recently we were asked to implement AM for assignment of Service Request only to Logged in Employees. System should not assign SR to any employee which is not available in system.


First look of this problem seems this to be a cake walk. We created Employee availability as skill which was updated every time when he logs in our logs out of the system. But however on actual implementation we realized that skills of employees were not getting refreshed dynamically. It required "Release" button to be pressed every time in order to flush the employee skills and to update rulecache.dat file. Once again Support Web came to rescue and job was saved.


When the employees to assign are not Dynamic Candidates, AM during assignment looks into the cache for the candidate employees instead reading skills directly from the database. However with certain parameters we can achieve dynamic refresh. I will try to club all the possible ways to refresh the skills(One can definitely add more).


There are three possible ways, based on the flavour of Assignment (dynamic, batch , interactive).


1 - 'Refresh People Skills Interval(MaxSkillsAge)' Parameter - The value for this parameter should be greater than 0 seconds. This will refresh skill in specified seconds.


2 - 'Ignore Assignment Rule Code' Parameter - The value for this parameter should be set to TRUE in order to avoid cache.


The above two solutions work fine for Batch Assignment but still for dynamic assignments we were not able to assign service request properly. One reason was dynamic assignment makes use of WorkMon agent and this component doesn't have above parameters.


3 - This approach should be thoroughly tested prior implementation as it can very taxing on your system if you have large number of assignment rules. The idea is to recursively Release the assignment rules using a batch job which runs below business service.


function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{
var busobj;
var buscomp;
busobj = TheApplication().GetBusObject("Assignment");
buscomp = busobj.GetBusComp("Assignment Group");
buscomp.InvokeMethod("Release");
return (CancelOperation);
}


Disclaimer: If you have a lot of rules and data to load, it will take AsgnSrvr component some time to completely this process, which also means that AsgnSrvr will not be able to accept any incoming assignment requests during this process startup/shutdown and rulecache.dat update until the cache file is completely updated.


With the above three mechanisms one can dynamically refresh the skills or can always bank on Dynamic Candidate mechanism for smooth assignments.


Happy Assignment!!!

יום רביעי, 15 ביוני 2011

AM for life

It can be real pain for users to sit and assign requests manually when loads of requests are bombarding system at regular intervals. For them Assignment Manager(AM) comes as boon. One can leverage AM features to ease out assignment overhead either in batch mode or in dynamic mode. For those who still want to assign request manually we have interactive feature available.

In this post i am going to primarily discuss dynamic assignment, comparison methods available and components involved. Dynamic assignment primarily performs assignments of records automatically as users and server programs create records or modify existing records. It makes use of database triggers for assignment of request.

Well written rules can help us win half the battle of assignment. The Most interesting part while defining the rules is the usage of comparison method. This defines how attributes should be compared and candidate should be evaluated. There are 5 methods available .

1 - Compare to Object

This comparison method is used to filter out the records for assignment. This method checks if the record attribute matches the value specified in the rule criteria.

Example: If any service request is created with status of "Duplicate" then it should be always assigned to Particular Employee.


2 - Compare to Person/Compare to Organization

This comparison is to filter out the Potential Employee/Postion/Organization. This method checks if the Person/Organization Skills matches the value specified in the rule criteria.

Example: If any Service Request is created of High Priority then it should be assigned to employee with Skill of type "Industry" and Value "Services".



3 - Compare Object to Person/Compare Object to Organization

This comparison directly compares the record attribute with the potential Employee/Position/Organization skills. There is no Value defined in the criteria values.

Example: If any service request is created of specific Product then it should be assigned to employee with skill of type "Product" and value as given in the product associated with SR.


There are more advanced configuration options avialable involving scoring mechanism and workload distribution for more complex assignments.

Primary components involved in the Dynamic Assignment are:

1 - Generate Trigger
2 - Workflow Monitor Agent
3 - Assignment Manager

In order to run dynamic assignment we should create a Assignment Policy for the Object we need to assign. This policy should belong to a Policy Group. Create Assignment rules with criteria and potential candidates. Release the assignment rules.


Once rules are released, run "Generate Trigger" job. This will recreate triggers to be used during assignment. Now run a WorkMon task for the assignment policy group and ensure Assignment Manager component is up and running. Two key points to debug dynamic assignment are:

1 - S_ESCL_REQ table - Entry in this table suggest that triggers are properly generated

2 - WorkMon Log - WorkMon log comprehensively lists out all the steps taken during the assignment of request including rule evaulation/Candidate assignment.

Alex has already given terrific H.U.G. to AM. If used effectively AM can really ease out assignment tasks. We will discuss more on the other assignment modes in the future.

Happy Assignment!!