Task Methods

In this section, we discuss the task class methods. The methods are discussed in alphabetical order.

Syntax

Close(Comment)

Description

Use the Close method to close the task. Only use this method with overflowed or escalated tasks.

Note: This method does not resubmit the task. Use the Enqueue method to resubmit the task, then use this method to close it.

Parameters

Field or Control

Definition

Comments

Specify any comments you want associated with this closed task.

You can specify a null value ("") for this parameter.

Returns

None.

Syntax

Enqueue(LogicalQueueID,AgentID, Timeout, ResponseTime, Cost, Priority, MinSkill)

Description

Use the Enqueue method to add a task to the logical queue that the task was first assigned to. Every task enters the universal queue by being assigned to a logical queue.

Considerations Specifying Time

If no value (zero) is provided for the time parameters (such as Timeout or ResponseTime) the Timeout or ResponseTime properties from the task are used, respectively. This may cause the time to never occur as it creates a moving deadline. To avoid such a problem the time can be calculated for each task prior to enqueue as shown below.

Note: This logic is not included in the task's enqueue function, so as to allow you the choice for how you want your application to handle this situation.

&Utilobj = create Util();
&CurrentTask = create Task(&Task_Number);
&TimeDelta = &Utilobj.GetTimeDiff(&currenttime, &CurrentTask.EscalationTime) / 60;
&AgentAcceptTime = &Utilobj.GetTimeDiff(&CurrentTask.EnqueueTime, &CurrentTask.OverFlowTime) / 60; 
    If AddToDateTime(&currenttime, 0, 0, 0, 0, &AgentAcceptTime, 0) >= &CurrentTask.EscalationTime Then
       If &TimeDelta > 0 Then
          &AgentAcceptTime = &TimeDelta;
       Else          
/* The current time already exceeds the Escalationn time*/
       End-If;
    End-If;

Parameters

Field or Control

Definition

LogicalQueueId

Specify the logical queue that you want to add this task to, as a string. You can specify a null value ("")for this parameter. If no value is provided , the logicalQueueID that is a property of task is used.

AgentID

Specify the agent ID for this task, as a string. You can specify a null value ("")for this parameter. If you specify a null value, the task is given to any available agent. You might expect to use a null for this parameter generally, as most tasks are to be reassinged for random agent allocation. However, there may be cases where a particular agent (such as one who previously worked on this task) might be required to take this task. In this case an agentID is provided

Timeout

Specify the time out period for this task as a number of minutes. You can specify a zero for this parameter. If no value is provided, the Timeout property of the task is used.

The acceptance timeout is the period of time that an agent has to accept an assigned task (click on the flashing icon on the MultiChannel console). If the task is not accepted within this time, the task is re-enqueued.

ResponseTime

Specify the response time for this task as a number of minutes. You can specify a zero for this parameter. If no value is provided, the ResponseTime property of the task is used.

The response time refers to the when a task should be completed by in order to satisfy customer contracts (such as, a platinum customer who requires a response in one day for a email. If by the end of 24 hours the task is not completed, it is escalated or the response time is exceeded.)

Cost

Specify the cost of this task as a number. You can specify a zero for this parameter. This is the cost of the task as set by the application when the task was enqueued. If no cost is set at that time, then the default cost is used.

Priority

Specify the priority of the task as a number. One is the lowest possible priority. Higher numbers indicate high priorities. If no priority is set, the default priority for the task is used.

MinSkill

Specify the minimum skill level required to do this task, as a number. You can specify a zero for this parameter.

Returns

None.

Example

&CurrentTask = create Task(&Task_Number);
&CurrentTask.Enqueue(&CurrentTask.PhysicalQueueID, "", &AgentAcceptTime, &TaskCompleteTime, &CurrentTask.Cost, &CurrentTask.Priority, &CurrentTask.SkillLevel);

Syntax

Refresh()

Description

Use the Refresh method to refresh the task properties. If you only want to refresh the status, use the RefreshStatus method.

Parameters

None.

Returns

None.

Example

The following refreshes all the properties of the task:

&MyTask.Refresh();

Syntax

RefreshStatus()

Description

Use the RefreshStatus method to refresh only the status of the task. If you want to refresh all the task properties, use the Refresh method.

Parameters

None.

Returns

None.

Example

The following refreshes the status of the task:

&MyTask.RefreshStatus();