Section II – Functional Modules > Queue Interface > Functions Bottom of Page
| Genesys 8.0 SCXML Technical Reference
< Object Model Parameter Elements >

## Functions

#### _genesys.FMname.reserveTarget

When the `<submit>` action returns a ready target, the target is always blocked by the functional module during some time in seconds (the value of the platform's transition_time configuration option). The reserveTarget function allows you to override such behavior and change the time interval or even cancel it entirely (time parameter = 0). During the time the target is reserved, the functional module does not distribute any interactions to the target as specified by the target parameter, which is the result of the `<submit>` action. This function can be used in cases where a target may have additional conditions (except a Stat Server–reported not-ready state) that should prevent the target from being selected as a valid target. This blocking time will be applied to all `<submit>` action resulting targets until it is changed again by this function.

void _genesys.FMname.reserveTarget(ixnid, target, time)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has the value "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- target: STRING which can be a variable or a constant — This is the name of the target to be reserved in the target DN format.
- time: STRING which can be a variable or a constant — This is the time interval in seconds to reserve this target for (exclude from target selection process). A value of zero (0) will reserve the target indefinitely.

Returns: void

#### _genesys.FMname.cCTExtractTargets

This function produces a list of targets in "possible target" format from the supplied arguments and stores target DN information associated to each target for subsequent use in number translation of type [TARGET.CCTN]. These are maintained for the life of the session by the functional module and can be used for any interaction associated with session.

This function supports these target types:

- Agent (A)
- Place (P)
- Agent Group (AG)
- Place Group (PG)

targets _genesys.FMname.cCTExtractTargets(ixnid, statserver, input)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- statserver: STRING which can be a variable or a constant — This parameter is used as the location attribute for each of the targets listed in the output.
- input: STRING which can be a variable or a constant — This parameter must have the following key/value list of the form: TargetID1.TargetType1:Value1|...|TargetIDN.TargetTypeN:ValueN with no spaces in the list.

Returns: targets: STRING–The result of the function is a string of the form: TargetID1@StatServer.TargetType1,...,TargetIDN@StatServer.TargetTypeN . Thus, in the targets listed in the result are separated by commas and contain no spaces.

#### _genesys.FMname.checkAgentState

This function instructs the functional module for the associated session (across all associated interactions) as to whether to take into account the state of an Agent, Place, Agent Group, or Place Group as reported by Stat Server or to look only for free DNs belonging to the Agent, Place, or Agent Group. For example, _genesys.FMname.checkAgentState(false) makes it possible to route a voice interaction to an agent that Stat Server reports as not ready. If agent capacity rules are set, this function has no effect

(as the Genesys Agent Capacity model does not use agent state). To allow an agent to receive multiple voice interactions, this function must be false. However, the side effect is that the functional module distributes interactions so as to occupy all DNs of Agent A before considering Agent B. When this function is set to false, or the function _genesys.FMname.useAgentState is used, the functional module does not apply the verification_time configuration option to agents, but still applies it to agent DNs.

void _genesys.FMname.checkAgentState(ixnid, check)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- check: BOOLEAN which can be a variable or a constant — This parameter identifies whether the functional module should use the agent state from StatServer or not.

Returns: void

#### _genesys.FMname.clearThresholds

This function invalidates all thresholds previously set by `<submit>` actions for a given interaction. As a result, the functional module now considers all targets that were previously affected by `<submit>` actions as unconditionally ready for routing.

void _genesys.FMname.clearThresholds(ixnid)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).

Returns: void

#### _genesys.FMname.countSkillInGroup

This function determines the number of agents with a skill set or statistical parameters that satisfy the indicated skill expression. It returns the number of the agents belonging to the agent group based on the defined skill expression. You can also just specify a Stat Server and a skill expression without specifying an Agent Group. However, a skill expression and a Stat Server must be specified. The Stat Server is used to query the content of the provided Agent Group (real or virtual).

total _genesys.FMname.countSkillInGroup(ixnid, statserver, group, sexpr)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- statserver: STRING which can be a variable or a constant — This parameter is optional. This parameter is the name of the Stat Server containing information on the agents for this function. If not supplied, the Stat Server used will be the one defined by the default_stat_server configuration option of the platform.
- group: STRING which can be a variable or a constant — This parameter is the agent group for the Stat Server that this function checks against. It can either be an Agent Group name or a list of comma-separated list of Agents, Agent Groups, Places, or Place Groups. Agents are included in this group either by placing the agent name from the Persons folder into the Agent Groups folder or defining a virtual group using a skill expression within the Annex tab of the Agent Group object.
- sexpr: STRING which can be a variable or a constant — This parameter defines the skill expression used to evaluate the agents. It can use skills, variables, numeric constants, and statistics to filter out agents based on their state. The statistic name in a skill expression can be any agent statistic used in the function SData. It must be written in the format: $(statistic). This ability to use statistics in a skill expression allows you to conduct queries based on a statistic. For example, if you want to query the number of agents with a Spanish skill of at least 5 who are logged in, the expression would be as follows: `Spanish&gt;=5 &amp; $(StatAgentsLoggedIn)=1`.

Returns: total: NUMBER — The result of the function is an integer which represents the number of agents that meet the critieria of the skill expression.

#### _genesys.FMname.createSkillGroup

This function converts the provided Agent Group, Skill Expression, and StatServer into a normal target format that represents all agents belonging to the Agent Group supplied as a parameter that satisfies the logical condition given by the Skill Expression.

tlist _genesys.FMname.createSkillGroup(ixnid, statserver, group, sexpr)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- statserver: STRING which can be a variable or a constant — This parameter is optional. It contains the name of the Stat Server containing information on the agents for this function. If not supplied, the Stat Server used will be the one defined by the default_stat_server configuration option of the platform.
- group: STRING which can be a variable or a constant — This parameter is the agent group for the Stat Server that this function checks against.
- sexpr: STRING which can be a variable or a constant — This parameter defines the skill expression used to evaluate the agents. This parameter can use skills, variables, numeric constants, and statistics to filter out agents based on their state. The statistic name in a skill expression can be any agent statistic used in the function SData. It must be written in the format: $(statistic). This ability to use statistics in a skill expression allows you to conduct queries based on a statistic. For example, if you want to query the number of agents with a Spanish skill of at least 5 who are logged in, the expression would be as follows: `Spanish&gt;=5 &amp; $(StatAgentsLoggedIn)=1`.

Returns: tlist: STRING — The result of the function is a string which represents a list of targets (each target is comma-separated in the string) that meet the critieria of the skill expression.

For example, GroupName:SkillExpression@statserver.GA.

#### _genesys.FMname.excludeAgents

This function instructs the functional module not to route interactions to any agent on the

specified list of agents. This applies across all `<submit>` actions associated with the session.

prev_agents _genesys.FMname.excludeAgents(ixnid, agents)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- agents: STRING which can be a variable or a constant — This parameter is a comma-separated list of agent IDs.

Returns: prev_agents: STRING — The result of the function is a string which represents a list of previous excluded agents. Each agent ID is comma-separated in the string.

#### _genesys.FMname.extRouterError

This function is used to change the default external routing in the case of a failure to get a remote access number. This is only applicable across all interactions associated with the session when the application is using the `<submit>` action with the route attribute set to true.

void _genesys.FMname.extRouterError(ixnid, enable)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- enable: BOOLEAN which can be a variable or a constant — If this parameter is set to true, then the functional module handles an external routing failure as a routing error (according to the functional module on_route_error configuration option settings. This prevents the functional module from ignoring any error messages in response to external routing requests and stops the functional module from continuing to attempt to route based on the original remote access number. If set to false, the functional module will continue the attempt to route the call based on the original number. By default, enable is set to false.

Returns: VOID

#### _genesys.FMname.extRouteStatus

This function returns true if external routing is possible and false if not.

status _genesys.FMname.extRouteStatus(ixnid, switch)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- switch: STRING which can be a variable or a constant — This parameter is a remote location where the interaction is being routed (that is, the switch ID).

Returns: status: BOOLEAN — The result of the function is a boolean which indicates whether external routing is possible for the given media server (switch).

#### _genesys.FMname.findServiceObjective

This function returns a value that is defined in a configuration layer objective table object for a given a Service Objective, which is a unique combination of Customer Segment, Service Type, and Media Type. If the Update parameter is true, the Service Objective with Service Type and Customer Segment are automatically attached to the interaction.

value _genesys.FMname.findServiceObjective(ixnid, table, media, service, segment, update)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- table: STRING which can be a variable or a constant — This parameter is the name of the objective table in the configuration.
- media: NUMBER which can be a variable or a constant — This parameter is the desired media type in integer form.
- service: STRING which can be a variable or a constant — This parameter defines the type of service desired.
- segment: STRING which can be a variable or a constant — This parameter defines the type of customer segment desired.
- update: BOOLEAN which can be a variable or a constant — This parameter defines whether the interaction should be updated with a value as well as the properties of the service objective (media type, service type, and customer segment).

Returns: value: NUMBER — The result of the function is an integer which represents the configured value for this service objective. Zero is returned if there are any issues (unsuccessful search — no service objective defined) while processing this function.

#### _genesys.FMname.incrementPriority

This function results in incrementing the selected interaction priority by the Increment every Interval second. It affects the priority of the interaction for `<submit>` actions the interaction is already waiting for and those it may be waiting for in the future.

void _genesys.FMname.incrementPriority(ixnid, increment, interval)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have its priority incremented. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- increment: NUMBER (INTEGER) which can be a variable or a constant — This parameter is the increment by which the priority is to be adjusted.
- interval: NUMBER (INTEGER) which can be a variable or a constant — This parameter is the time interval at which the priority is to be incremented. Note: the interval cannot be less than 5 seconds.

Returns: VOID

#### _genesys.FMname.nMTExtractTargets

This function enables you to track the number of active interactions at a device that is not configured in the Configuration Database. It establishes a counter for all active interactions at the non-configured device. Using this counter, you can compare the number of active interactions to a specified threshold and stop routing interactions to the device when the threshold has been reached.

This function parses a list of targets, which is a comma-separated list of attributes produced by a database query or some outside application (an application on an application server, for example) such as `<fetch>`. Each target can be described using four attributes: Target Name, Threshold, Speaking Time, and RetryTime. These attributes are explained below:

- Target Name — This identifies the target.
- Threshold — The maximum number of interactions at the target when this target is considered to be ready. The threshold value is considered as attribute to an interaction. This function sets this attribute for each interaction it evaluates. When it is time for the interaction to be routed to the non-configured device, the functional module compares the interaction's threshold attribute to the counter. If the counter shows a value greater than the interaction's threshold attribute, the interaction is not routed until the counter's value drops below that threshold.
- Speaking Time — The functional module considers an interaction to a non-configured device to be terminated when the controlling server (for example, T-Server) reports that it has been terminated. However, if no information is received from the controlling server (for example, T-Server) in the time specified by the Speaking Time (in seconds), the functional module considers the call to be terminated.
- Retry Time — If the functional module receives an error message in response to a routing request to a non-configured device that indicates that the number of interactions at the target is different from the number the functional module believes are there, the functional module temporarily stops sending interactions to that device for the amount of time specified by this element (Retry Time). This delay enables synchronization of the number of interactions on the device with the number that the functional module believes are there.

The following is an example of input and output for this function:

    tList = _genesys.FMname.nMTExtractTargets("'1111111,10,22222,20,333333, 30'", 2, 0, 120, 2);

tList will be the following string:

    '{RStatCallsInQueue&lt;=10}1111111.DN, {RStatCallsInQueue&lt;=20}22222.DN, {RStatCallsInQueue&lt;=30}333333.DN'

#### Using the Function

Use of this function to track the number of interactions at non-configured devices usually includes:

- Setting a threshold, using the _genesys.FMname.setThresholdEx function, for every nonconfigured device that you want to include. The only threshold you can set for non-configured devices applies to the value returned by the RStatCallsInQueue statistic. Alternatively, you can set a threshold by prefixing Threshold{Statistic op value} before the target specification. When you set a threshold in this way, this function automatically augments the targets with prefixes in the indicated format. The output of this function is a comma-separated list of targets, with thresholds, that is ready to be used as a parameter of standard target-selecting functions or objects.
- Configuring the functional module to count the RStatCallsInQueue statistic for nonconfigured devices.
- Setting all the non-configured devices as targets in `<submit>` actions.

Note: The functional module has no information about the current state of the device — only the number of interactions active on it. Active interactions are considered to be the number of interactions the functional module has sent to the target, minus the number of interactions that were terminated. In addition to generating output, this function also

overwrites the default values (15 seconds and 600 seconds) for Retry Time and Speaking Time. Thresholds for non-configured devices set using the _genesys.FMname.SetThresholdEx function, for example, use the current default values for

Retry Time and Speaking Time that were set by the latest invocation of this function.

Note: Changes applied to default settings (RetryTime, Speaking Time) specified in this function work only for non-configured devices that were created after this function was used. Those non-configured devices that were created previously are not affected by any changes made using this function. If the information about the non-configured devices (numbers, threshold values) is retrieved from an outside source (for example, a database), use this function to transform the result of this query into a target list suitable for use by the `<submit>` action. In this case, the use of this function automatically sets all the specified thresholds and you do not need to call the _genesys.FMname.setThresholdEx function.

#### Setting Multiple Thresholds

You can set more than one threshold by using this function in more than one logic definition or you can use it multiple times in the same logic. In this way, you can set a different allowable number of concurrent interactions for different situations, as described below.

Note: If you use the same non-configured device in other logic definitions or in multiple places in the same logic, the functional module uses the same counter for that device. So this definition is global across the functional module.

Using NMTExtractTargets to Set Multiple Thresholds — Example:

You can set different thresholds for the same non-configured device to take account of different business conditions. For example, between 9:00 AM and 5:00 PM, an outsourcer with a nonconfigured device can handle 100 concurrent interactions. After 5:00PM, the outsourcer can handle only 50 concurrent interactions on this device.

Here is how it works:

1. Place this function in two places. You can use it twice in one logic definition or use two separate logic definitions to handle this situation, depending on what is best suited to your environment. A global counter is created for the non-configured device.
2. Using one instance of this function, set a default threshold value of 100 to be attached as an attribute to all interactions that arrive between 9:00 AM and 5:00 PM.
3. Using the other instance of the function, set a default threshold value of 50 to be attached as an attribute to all interactions that arrive between 5:00 PM and 9:00 AM.

When an interaction is ready to be routed, the interaction attribute is compared to the global counter, which is incremented or decremented to correspond to the number of active interactions on this non-configured device. If the value on the counter is greater than the interaction's Threshold attribute, the interaction is not routed until the counter's value drops below the appropriate threshold.

#### Deployment Considerations

Only one orchestration platform can send interactions to the non-monitored device. If you require multiple numbers to distribute to the same non-monitored device, align the SN-to-DN table, the network switch, and platform so that all interactions sent to a nonmonitored device are processed by the same platform. You can use a network-controlling server (for example, T-Server or a SIP Server) as the network switch. To use this function, the platform and functional module must register on a special device (called switch::) in order to receive notification from the controlling server (for example, T-Server) about the termination of interactions. If you do not register, the RStatCallsInQueue statistic is not correctly calculated for non-monitored targets. Registration is not automatic and is controlled by platform (using the call_monitoring configuration option).

tlist _genesys.FMname.nMTExtractTargets(ixnid, targets, dThreshold, dSpeakTime, dRetryTime, recordSize)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory It defines the ID of the interaction which should have its priority incremented. If this parameter has a of value "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- targets: STRING which can be a variable or a constant — This parameter is the list of comma-separated targets and their attributes. The recordSize parameter will identify how attributes are associated with a target definition.
- dThreshold: NUMBER (INTEGER) which can be a variable or a constant — This parameter is the default maximum number of interactions at the target when this target is considered to be ready. This parameter will be used for targets that do not have this attribute specified in the targets parameter.
- dSpeakTime: NUMBER (INTEGER) which can be a variable or a constant — This parameter is the default maximum amount of speak time for an interaction. If the functional module does not receive an event indicating that the interaction has terminated with in this time frame, the functional module will consider it terminated. This parameter will be used for targets that do not have this attribute specified in the targets parameter.
- dRetryTime: NUMBER (INTEGER) which can be a variable or a constant — This parameter is the default maximum amount of retry time for an interaction. If the functional module failed to route the interaction, it will wait for this amount of time before trying to route the interaction again. This parameter will be used for targets that do not have this attribute specified in the targets parameter.
- recordSize: NUMBER (INTEGER) which can be a variable or a constant — This parameter defines how many attributes are entered to describe each target. If some of the four elements listed in the following bullets [I don't see the bullets...] are absent (only Target name is mandatory) the corresponding default parameter values are used instead.

Returns: tlist: STRING — The result of the function is a string of the form: {RStatCallsInQueue&lt;=TargetThres1}TargetName1.DN....{RStatCallsInQueue&lt;=TargetThresN}TargetNameN.DN. Thus, the targets are listed in the result separated by commas and contain no spaces.

#### _genesys.FMname.onRouteError

This function allows you to specify an individual functional module reaction for every type of error. If used, this option overwrites the on_route_error configuration option for all interactions associated with the current session. In the case of an error, the functional module behaves in the following way:

- Checks if this function was executed for this type of error. If yes, then the functional module behaves as the function specifies.
- Otherwise, checks if there is a platform-defined default reaction (that is, the configuration option on_route_error) for this error. If yes, then the functional module executes this reaction.

Note: This function should ONLY be used when using the `<submit>` action with the route attribute set to true.

void _genesys.FMname.onRouteError(ixnid, type, option)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory It defines the ID of the interaction which should have its priority incremented. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- type: NUMBER (INTEGER) which can be a variable or a constant — This parameter indicates the type of error that can be encountered while trying to route an interaction.
- option: STRING which can be a variable or a constant — This parameter indicates the type of processing the functional module should perform when this type of error is encountered. These options only work for interactions routed to destinations specified in the `<submit>` actions with the route attribute set to true. The values are defined as follows:

- Delete — The Strategy_error action will be taken.
- Ignore — The Strategy_error action will be taken.
- Default — The Strategy_error action will be taken.
- Reroute — The Strategy_error action will be taken.
- try_other — The Queue functional module will resume waiting for a ready target and try to select another available target. Unlike the reroute value, for which the Queue functional module immediately attempts to reroute the interaction, for try_other the Queue functional module waits for another target, if none are available before routing the interaction. Note: Be sure that the transition_time platform configuration option has a value of 3 or higher to enable the Queue functional module to handle the try_other setting correctly.
- Strategy_ok — The Strategy_error action will be taken.
- Strategy_error — The Queue functional module will abort its current waiting for a ready target, go to error handling, and send the session an error event. (error.queue.submit with the appropriate error code).

Returns: VOID

#### _genesys.FMname.priorityTuning

The functional module always puts interactions into waiting queues according to their priorities. This function defines how the functional module handles interactions with the same priorities. By default, interactions with the same priority are ordered according to the time the interaction began to wait for some target. This applies across all `<submit>` actions.

void _genesys.FMname.priorityTuning(ixnid, useAge,usePredict, useObjective)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory It defines the ID of the interaction which should have its priority incremented. If this parameter has a value of"0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- useAge: BOOLEAN which can be a variable or a constant — This parameter defines whether the age of the interaction should be used to prioritize interactions with the same priority. If this parameter is true, the functional module uses the time the interaction was created instead of the time the interaction is placed into the waiting queue. The age of the interaction is usually the time that the associated session is started for the interaction. Setting the interaction age enables you to safely use multiple `<submit>` actions. The interaction does not lose its position in the queue, because its position is based on the age-of-interaction value, which is not affected by the `<submit>` actions. The following must be done in your logic to use this function.

- Use function _genesys.FMname.setInteractionAge() to timestamp the interaction. The age of interaction will be counted from this moment on.
- Use the function to prioritize this interaction among others in the queue according to their age.

- usePredict: BOOLEAN which can be a variable or a constant — This parameter defines if the estimated time for the interaction to be answered will be used instead of the time the interaction has waited when prioritizing interactions with the same priority. If this parameter is true, then the functional module calculates the estimated time for the interaction to be answered and will use this time instead of the time that the interaction has already waited.
- useObjective: BOOLEAN which can be a variable or a constant — This parameter defines whether an objective defined in the interaction should be used when prioritizing interactions with the same priority. If this parameter is true, then the functional module calculates the objective defined in the interaction to determine the priority of the interaction.

Returns: VOID

#### _genesys.FMname.resetAdjustment

This function cancels any adjustment that may have been set for a statistic for a given target using _genesys.FMname.setAdjustment.

void _genesys.FMname.resetAdjustment(ixnid, target, statistic)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- target: STRING which can be a variable or a constant — This parameter defines the target whose statistic adjustment is to be cleared. The string value of this parameter must be in the possible target format. See the Target Formats section for details.
- statistic: STRING which can be a variable or a constant — This parameter defines the name of the statistic for which the adjustment is to be removed.

Returns: VOID

#### _genesys.FMname.routed

This function marks the interaction as routed. When routing functions, such as `<submit>` actions with the route attribute set to true, are successfully executed, an interaction is implicitly marked as routed. This function explicitly marks the interaction as routed. This function allows the functional module to dispose of the interaction when the strategy is completed and not route the interaction to the default destination.

void _genesys.FMname.routed(ixnid)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which routing has terminated. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).

Returns: VOID

#### _genesys.FMname.selectTargets

This function removes from a list of Agent Groups, Place Groups, or Queue Targets those targets that have already received a number of calls in excess of their quota for the interval when the function is called. These types of quotas are specified in the configuration layer in the Statistical Days belonging to Statistical Tables of type Quota Table, associated with each of the Agent Groups or Place Groups. The queue is associated with that Quota Table that is associated with an Agent Group for which the queue is an origination DN. If no agent group is found, the queue is associated with the Quota Table that is associated to an Agent Group named after the alias of the queue. If an Agent Group or Place Group target on the list has no Quota Table associated with it or no Statistical Day in the table matches the current date, the target is retained in the list returned by the function: it has not exceeded its quota since no quota was set for it.

Configuring Quota Tables Associated to Groups of Agents or Places

A Quota Table is configured in the configuration layer as a Statistical Table object of Quota Table type (see the configuration layer documentation for more details on the process of configuration). The Quota Table associated with an Agent Group or a Place Group must be specified inside the Advanced properties of the group. The same Quota Table can be associated with more than one Agent Group or Place Group. The Quota Table must contain Statistical Days. Use the information about Statistical Days, but not the information about Statistical Values. The relevant values for Statistical Values are as follows: Statistical Value 1, Statistical Value 2, and Statistical Value 3 for each Interval of the day — during every interval. Value 1 is used when Quota type has a value of 0 (QuotaMin). Value 2 is used when Quota type has a value of 1 (QuotaTarget). Value 3 is used when Quota type has a value of 2 (QuotaMax). All other properties of Statistical Days are irrelevant for the purpose of setting up quotas. Note: The same Statistical Day can belong to more than one Quota Table.

tlist _genesys.FMname.selectTargets(ixnid, filter, targets)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- targets: STRING which can be a variable or a constant — This parameter is a string of comma-separated high-level Agent Groups Or Place Groups or Queue Targets (in the possible target format, see the Target Formats section for details). If this parameter has queue targets, you need to make sure that every queue for which you use this parameter is listed as an origination DN for at most one Agent Group in the configuration layer. If more than one group or queue is associated with the same table, then the interactions routed to all of them are counted together. That is, the quota is interpreted as a limit on the total number of interactions routed to groups and queues associated with the same table. Therefore, you must set up individual Quota Tables for groups and queues that you want to consider separately, even if these tables consist of the same Statistical Days.
- filter: _genesys.FMname.quotaType OBJECT which can be a variable or a constant — This parameter indicates which of the three relevant entries in the statistical day will be treated as the current quota.

Returns: tlist: STRING — The result of the function is a string of targets in the possible Target Formats that matches the quota filter criteria. However, if the function encounters a list element in a different format, it does one of the following:

- If the element is a syntactically correct target in the complete high-level format but its type is not Group of Agents or Group of Places, the target is retained in the list returned by the function.
- If the element is not a syntactically correct target in the complete high-level format, including targets with an omitted type or location, it will be dropped from the list.

#### _genesys.FMname.selectTargetsByThreshold

This function finds the best available target(s) from a list of targets by applying a statistic with a threshold comparison against the input target list. This function returns a subset of the Targets List parameter (possibly empty).

tlist _genesys.FMname.selectTargetsByThreshold(ixnid, targets, statistic, value, cond)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- targets: STRING which can be a variable or a constant — This parameter is a string of comma-separated high-level targets (in the possible target format, see the Target Formats section for details).
- statistic: STRING which can be a variable or a constant — This parameter is a statistic to be used in the comparison.
- value: NUMBER (INTEGER) which can be a variable or a constant — This parameter is the value that will be used in the comparison to see if a target meets the condition or not.
- cond: _genesys.FMname.statcond OBJECT which can be a variable or a constant — This parameter is the condition which is to be used in the comparison.

Returns: tlist: STRING — The result of the function is a string of targets in the possible Target Formats that matches the threshold filter criteria.

#### _genesys.FMname.setInteractionAge

This function overrides the default age of an interaction from a routing prespective. This function can be useful if the age of the interaction will be used for placing interactions into waiting queues. The interaction age is the time accumulated since the interaction was known by Genesys (normally set at the very first resource or device the interaction enters).

By default, the interaction age is defined by the time of the last event (for example, EventRouteRequest). However, if an interaction is going to be routed more than once (for example, if an agent transfers an interaction on a routing point for re-routing or if the Voice Callback Universal Callback Server resubmits a callback interaction to URS), the time of the last event (for example,

EventRouteRequest) is not always the best way to define interaction age.

void _genesys.FMname.setInteractionAge(ixnid, keep)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- keep: BOOLEAN which can be a variable or a constant — This parameter indicates whether the default age algorithm should be. If this parameter is true, it fixes the current interaction age so that it does not depend on subsequent routing events. If the parameter is false, it unfixes the age of interaction so it again will be defined by the moment of the last event.

Returns: VOID

#### _genesys.FMname.setAdjustment

This function enforces an adjustment of the values of a specified statistic for a particular target. The adjustment does not apply to the result of explicit Stat Server queries by the function's _genesys.statistic.sData() function. It is only used for thresholds, statistical interaction distribution, or when a statistic is supplied as an argument to the `<submit>` actions. Once set, an adjustment can be cleared by invoking the _genesys.FMname.resetAdjustment function. This applies across all interactions and the corresponding `<submit>` actions for the session.

void _genesys.FMname.setAdjustment(ixnid, target, statistic, sign, value)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- target: STRING which can be a variable or a constant — This parameter defines the target whose statistic adjustment is to be set. The string value of this parameter must be in the possible target format. See the Target Formats section for details.
- statistic: STRING which can be a variable or a constant — This parameter defines the name of the statistic which is to be adjusted.
- sign: STRING which can be a variable or a constant — This parameter defines the operation that will be applied to adjust the statistic. The following are the valid values:

- +, the value is added to the result reported by Stat Server
- -, the value is subtracted from the result reported by Stat Server
- *, the value is multiplied by the result reported by Stat Server
- /, the result reported by Stat Server is divided by value.

- value: NUMBER (FLOAT) which can be a variable or a constant — This parameter defines the value that the statistic is to be adjusted by.

Returns: VOID

#### _genesys.FMname.translationOverride

This function overrides any translation specified in configured Switch Access Codes for routing to remote targets later in the session, and instructs the functional module to use the information specified in the parameters for the purpose of number translation.

void _genesys.FMname.translationOverride(ixnid, source, destination, location, rType, DNIS, reason, extension)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- source: STRING which can be a variable or a constant — This parameter is the source device address to be used in the translation.
- destination: STRING which can be a variable or a constant — This parameter is the destination device address to be used in the translation.
- location: STRING which can be a variable or a constant — This parameter is the location of the source device to be used in the translation.
- rType: _genesys.FMname.rType Object which can be a variable or a constant — This parameter is the route type to be used in the translation.
- DNIS: STRING which can be a variable or a constant — This parameter is the DNIS to be used in the translation.
- reason: STRING which can be a variable or a constant — This parameter is the routing reason to be used in the translation.
- extension: STRING which can be a variable or a constant — This parameter is the extension information to be used in the translation.

Returns: VOID

#### _genesys.FMname.targetSelectionTuning

This function activates a configured cost-based routing solution for this session and the associated functional module objects (interactions and so on).

void _genesys.FMname.targetSelectionTuning(ixnid, useCostFactor)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- useCostFactor: BOOLEAN which can be a variable or a constant — This parameter indicates whether cost factors should be used for making routing decisions for this session and the `<submit>` actions.

Returns: VOID

#### _genesys.FMname.useAgentState

This function specifies the agent state the functional module will use instead of the default reported by Stat Server. This will apply to the entire session and all the `<submit>` actions until the next _genesys.FMname.useAgentState invocation.

To use this option you must first set up URS as follows:

- In the Annex or Options tab of the platform application, create a section called AgentStates (case sensitive).
- Within that section, create an option for every user-defined agent state. The platform can accept up to 32 options in the AgentStates section.
- For each option, specify its value in the format:

      Function[DNtype]<op1>Function[DNtype]<op1>...Function[DNtype]<op2>number(Format1expression)<op3>(Format1 expression)<op3>...

  Where:

- Function[DN type] is one of the following predefined functions:

- ready[DN type] — which returns the number of agent DNs of the specified type who are in the ready state at the current moment.
- busy [DN type] — which returns the number of agent DNs of the specified type who are in the busy state at the current moment.

  DN type for these predefined functions is the agent's DN. Types include ACDPosition, Extension, E-mail, Eaport, Cellular, Chat, Cobrowse, Fax, Voicemail, Voip, Video, and Workflow.

- op1 is an operator of either plus (+) or minus (-)
- op2 is an operator of either greater than (> — &gt;), less than (< — &lt;), or equal to (=)
- op3 is a logical operator of either or (|) or and (& — &amp;)
- multiplication (*)
- division (/)
- number is zero or any positive number to evaluate the expression

For example, the agent is defined as ready if the agent has no calls on his or her extension or position busy[extension]+busy[acdposition] = 0. An agent in this state will be considered not ready if the agent has at least one call on the extension or position. The agent will be considered ready in all other situations. So, for example, if the agent has the e-mail DN busy, the agent is still considered ready.

Important Information

- When using the UseAgentState function, whole numbers are rounded (1.25is counted as 1).
- Option values cannot contain spaces.
- If you want to use AgentStates for a backup functional module platform in addition to the primary platform, create an identical AgentStates section in the backup platform.
- When using this function, you must use lowercase DN types that do not include a "-" (hyphen). For example, use "email" instead of "E-mail".
- If function CheckAgentState is set to false, the functional module ignores any agent state, whether the default one (reported by Stat Server) or the user-defined one (as described above).
- The functional module uses integer arithmetic in its calculations, such as for agent state and skill expression evaluation. For this reason, you must always create expressions based on integer arithmetic, not floating point arithmetic.

void _genesys.FMname.useAgentState(ixnid, state)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- state: STRING which can be a variable or a constant — This parameter is the agent state that should be used instead of the default reported from Stat Server.

Returns: VOID

#### _genesys.FMname.useAgentStatistics

This function makes the functional module apply statistics for target selection at the level of individual Agents or Places even if the targets are groups of corresponding objects, such as Agent Groups or Place Groups.

This function may be used for any appropriate statistic. It can also be used for cost-based routing.

void _genesys.FMname.useAgentStatistics(ixnid, use)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- use: BOOLEAN which can be a variable or a constant — This parameter indicates whether individual agent statistics should be applied. The default is false.

Returns: VOID

#### _genesys.FMname.useCapacity

This function instructs the functional module on the condition for using configured capacity tables for computing statistical values. If OnStatError is supplied to the parameter, the functional module will compute a statistical value from statistical tables whenever an attempt to obtain the corresponding value from Stat Server results in an error. The other two options are either always use statistical tables for such values or never use them.

void _genesys.FMname.useCapacity(ixnid, use)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- use: _genesys.FMname.usecapcond OBJECT which can be a variable or a constant — This parameter indicates the method of computing statistical values.

Returns: VOID

#### _genesys.FMname.useCustomType

This function instructs the functional module on the value of a target property that the target must to have to be considered a valid target for the current session and the associated interaction and the `<submit>` actions that are being used.

void _genesys.FMname.useCustomType(ixnid, tType, property, value)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- tType: STRING which can be a variable or a constant — This parameter indicates the type of target to use. The following are the valid values:

- "Agent" — An agent target
- "DN" — A DN target
- "Place" — A Place target

- property: STRING which can be a variable or a constant — This parameter indicates which property of the target will be used. The following is where these properties are defined and found:

- "Agent" target type — The property is specified under the Switch object, inside the folder with the name of the platform application, in the Annex of the Agent Login. The functional module checks the agent type for the following targets: Agents, Agent Groups, Places, and Place Groups. For the last two targets, the agent type can be verified only if Stat Server reports the name of the agent associated with the Place in question.
- "DN" target type — The property is specified under the Switch object, inside the folder with the name of the platform application, in the Annex of the DN. The functional module checks the DN type for the following targets: Agents, Agent Groups, Places, Place Groups, Routing Points, and Queues, as well as custom DNs.
- "Place" target type — The property is specified in the Annex of Place inside the folder with the name of the platform application. The functional module checks the Place type for the following targets: Agents, Agent Groups, Places, and Place Groups.

- value: STRING which can be a variable or a constant — This parameter indicates the value of the target property which should be evaluated to determine if the target should be used for routing.

Returns: VOID

#### _genesys.FMname.useDNType

This function instructs the functional module on the type of DN to use when routing to a target. Choose the DN-based type of session and interaction being routed. This delivers various sessions and interactions to the correct DN on an agent's desktop.

Important information

- The functional module sets the default DN type from the MediaType attribute of the trigger event. This function overrides that default.

void _genesys.FMname.useDNType(ixnid, type)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- type: _genesys.FMname.resourceType OBJECT which can be a variable or a constant — This parameter indicates the type of DN target to use.

Returns: VOID

#### _genesys.FMname.useMediaType

This function instructs the functional module on the media types (for examples, voice, e-mail, or chat) that a target is associated with. In order to accept sessions and interactions of a particular media type, a target must be associated with that media type. If the interaction is not a voice interaction, the functional module sets the initial media type from the Media Type attribute of the trigger event. The UseMediaType function overrides this initial setting. The functional module can pick up for routing either the available media of an agent or a ready DN of an agent.

Important Information

- For backward compatibility, if some DN type (DNTYPE) has a corresponding media (MEDIA) associated with it (for example e-mail), then the _genesys.FMname.useMediaType function is equivalent to _genesys.FMname.useDNType function.
- This function indicates the functional module will select only Extensions or ACDPositions of the agent.

void _genesys.FMname.useMediaType(ixnid, type)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- type: _genesys.ixn.mediaType OBJECT which can be a variable or a constant — This parameter indicates the type of Media target to use. The set of valid values are from the media definitions in the configuration layer.

Returns: VOID

#### _genesys.FMname.expandGroup

This function creates a list of resources associated with a group. This list of (agent) resources can be used for the following purposes:

- To propagate a target-selecting statistic on the resource level.
- To allow the Queue functional module to handle situations in which a particular resource is a member of multiple groups and to solve related interaction-priority issues.

resourcelist _genesys.FMname.expandGroup(ixnid, group)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- group: STRING which can be a variable or a constant — This parameter is a string in the Target Format. It will be the name of an Agent Group (real or virtual) or a Place Group (groupname@location.AG or groupname@location.PG) Note: location is optional.

Returns: resourcelist: STRING — The result of the function is a string which contains a comma-separated list of Agents or Place resources belonging to the specified Agent Group or Place Group. For example, `agent1@StatServer1.A,...,agentN@StatServer1.A`

#### _genesys.FMname.getSkillInGroup

This function returns the list of the agents belonging to the Agent Group based on the defined skill expression. You can also just specify a Stat Server and a skill expression without specifying an Agent Group. However, a skill expression and a Stat Server must be specified. The Stat Server is used to query the content of the provided Agent Group (real or virtual).

resourcelist _genesys.FMname.getSkillInGroup(ixnid, statserver, group, sexpr)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- sexpr: STRING which can be a variable or a constant — This parameter defines the skill expression used to evaluate the agents. It can use skills, variables, numeric constants, and statistics to filter out agents based on their state. The statistic name in a skill expression can be any agent statistic used in the function SData. It must be written in the format: $(statistic). This ability to use statistics in a skill expression allows you to conduct queries based on a statistic. For example, if you want to query the number of agents with a Spanish skill of at least 5 who are currently logged in, the expression would be as follows: Spanish&gt;=5 &amp $(StatAgentsLoggedIn)=1.
- statserver: STRING which can be a variable or a constant — This parameter is optional. It is the name of the Stat Server containing information on the agents for this function. If not supplied, the Stat Server used will be the one defined by the default_stat_server configuration option of the platform.
- group: STRING which can be a variable or a constant — This parameter is optional. It is the agent group for the Stat Server that this function checks against. It can either be an agent group name or a list of comma-separated lists of agents, agent groups, places or place groups. Agents are included this group by either placing the agent name from the Persons folder into the Agent Groups folder or defining a virtual group using skill expression within the Annex tab of the Agent Group object.

Returns: resourcelist: String — The result of the function is a string which contains a comma-separated list of Agents or Place resources that meet the conditions of the skill expression. For example, `agent1@StatServer1.A,...,agentN@StatServer1.A`

#### _genesys.FMname.expandActivity

This function creates a list of resources associated with a workforce management activity. It is intended for use with Genesys Workforce Management. It takes as a parameter a Workforce Management Activity name (defined in the configuration layer) and returns the list of resources assigned to the Activity from the current moment up to the next CutOffTime number of seconds. If a resource assigned to the Activity in the given time interval has a break of any

kind (including assignment to another activity), that resource will not be included in the returned list.

resourcelist _genesys.FMname.expandActivity(ixnid, activity, cutoff)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).
- activity: STRING which can be a variable or a constant — This parameter is a string. It will be the name of the workforce management activity to be used.
- cutoff: NUMBER which can be a variable or a constant — This parameter is the number representing the time in seconds that a resource has to be assigned to the activity starting from the current moment in order to be considered as qualified.

Returns: resourcelist: STRING — The result of the function is a string which contains a comma-separated list of agent resources belonging to the specified activity and meeting the cutoff time criteria. For example, `agent1@StatServer1.A,...,agentN@StatServer1.A` If the specified activity is not found, a null will be returned.

#### _genesys.FMname.resettreatments

This function clears the treatments associated with all outstanding `<submit>` actions associated with this session and can suspend the `<submit>` processing for the current session until the appropriate state has been reached to begin the next treatments.

void _genesys.FMname.resettreatments(ixnid)

Parameters:

- ixnid: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have this action applied. If this parameter has a value of "0", then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).

Returns: VOID

#### _genesys.FMname.setDNIS

This function replaces the DNIS of the interaction by the appropriate value. It will override any previous _genesys.FMname.setDNIS() function invocations.

Important Note: In order to get this DNIS override into the actual interaction on the controlling server (T-Server), the session- and interaction-originating event (for example, EventRouteRequest) must have had the routing type of RouteTypeOverwriteDNIS to make the change in the server. Otherwise, the override is only set within the session and its associated interaction object.

void _genesys.FMname.setDNIS(type, value, ixn)

Parameters:

- type: _genesys.voice.overwriteType OBJECT which can be a variable or a constant — This parameter defines the source of the value to set the DNIS to.
- value: STRING which can be a variable or a constant — This parameter defines the value that the DNIS is to be set to. This parameter is only valid when the type parameter is set to "UseValue".
- ixn: STRING which can be a variable or a constant — This parameter is mandatory. It defines the ID of the interaction which should have its DNIS overridden. If this parameter is not present, then this function will be applied to the main interaction (_genesys.ixn.interactions[0].g_uid).

Returns: void

Section II – Functional Modules > Queue Interface > Functions Top of Page
| Genesys 8.0 SCXML Technical Reference
< Object Model Parameter Elements >