Genesys CTI User Forum

Genesys CTI User Forum => Genesys CTI Technical Discussion => Topic started by: mark on June 20, 2007, 02:13:02 PM

Title: Use of wildcards in VAG scripts
Post by: mark on June 20, 2007, 02:13:02 PM
Does any one know if wildcards can be used in a VAG script?

For example, we have 17 skills that start "IFA_", I need the VAG to gather all people that have atleast one of these skills (and one or two other skills). I have tried using >?<!"£$%^&*()_+:@~{}<>?,./;'#[]=-, with no positive result!

It seems that any character is a valid character when creating a skill, leaving none for wildcards?

Any help would be appreciated, as it will save me some time now and in the future :]

Mark
Title: Re: Use of wildcards in VAG scripts
Post by: mark on June 20, 2007, 02:18:40 PM
I can search for skills using * as a wildcard (and ? for single chars), but not use these in a script!

Mark
Title: Re: Use of wildcards in VAG scripts
Post by: René on June 20, 2007, 02:24:01 PM
Sorry Mark, but no wildcards are supported in VAG scripts :(

R.
Title: Re: Use of wildcards in VAG scripts
Post by: mark on June 20, 2007, 02:58:11 PM
Thanks René,

I was guessing that was going to be the case, given that any char can be used within a skill name itself!
Nevermind :/

Mark
Title: Re: Use of wildcards in VAG scripts
Post by: elwan on July 25, 2007, 06:30:09 AM
[quote author=René link=topic=2320.msg8505#msg8505 date=1182349441]
Sorry Mark, but no wildcards are supported in VAG scripts :(

R.
[/quote]

Hi René,
You can use ~ . For example, ~SkillExists, meaning the get the agents that doesn't have the skill.
Hope this helps.
Title: Re: Use of wildcards in VAG scripts
Post by: S on July 26, 2007, 04:38:37 PM
have u tried creating a agent group with script as "Skill("abc") >= 1 & Skill("abc") <= 10 | Skill("DEF") >= 1 & Skill("DEF") <= 10"...
well then.. it would be long to include all those 17 skills...
but then atleast u have all in one group... whenever u are adding new skill, add it to script too...

not sure, you are looking for anything like this...
Title: Re: Use of wildcards in VAG scripts
Post by: mark on July 26, 2007, 05:48:31 PM
[quote author=s link=topic=2320.msg8872#msg8872 date=1185467917]
have u tried creating a agent group with script as "Skill("abc") >= 1 & Skill("abc") <= 10 | Skill("DEF") >= 1 & Skill("DEF") <= 10"...
well then.. it would be long to include all those 17 skills...
but then atleast u have all in one group... whenever u are adding new skill, add it to script too...

not sure, you are looking for anything like this...
[/quote]

Unfortunately the skill names are all over 12 chars, with ever increasing skills to be added, it would reach the char limit. It also would mean a manual process of adding any new skills. The object is to be as automated as possible.
Title: Re: Use of wildcards in VAG scripts
Post by: Kevin S on July 26, 2007, 06:36:32 PM
Wild thought here -
I know the VAGs have another option - buiilt based on being logged in to an ACD Queue.
Though I know this would not work for agents who could log into only one queue, if you supported Multiple Queue assignments, you might be able to get creative with this. 
It may be ugly, but...
Title: Re: Use of wildcards in VAG scripts
Post by: René on July 26, 2007, 07:15:58 PM
Thanks for your suggestion but I consider mentioned as logical expressions not wildcards. So I have to persist on my claim  ;) that no wildcards are supported for VAG.
Title: Re: Use of wildcards in VAG scripts
Post by: cavagnaro on July 26, 2007, 07:32:51 PM
But about:

Create a SP that will return all your skills (sql filtering passed as a parameter) as you wish directly from Genesys DB
on IRD create a DB object that will retrieve this as variables
use this variables as target objects

May work, or i'm thinking bad?
Title: Re: Use of wildcards in VAG scripts
Post by: mark on July 26, 2007, 09:03:40 PM
[quote author=Kevin S link=topic=2320.msg8874#msg8874 date=1185474992]
Wild thought here -
I know the VAGs have another option - buiilt based on being logged in to an ACD Queue.
Though I know this would not work for agents who could log into only one queue, if you supported Multiple Queue assignments, you might be able to get creative with this. 
It may be ugly, but...
[/quote]

There is the LoggedIn function yes, however, as we are using GAD at the moment, it would mean another box that the agents would manually need to fill in (yes it does remember entries, but over 9 servers and with Citrix refreshes done often, it would still mean manual input from agents) the queue (albeit a non routing one).
When we move into a better desktop and single sign on, its a possibility, however, it does mean that the VAG only shows logged in people. I have a feeling that there might be some historical reporting wanted on the VAG, like average %age of logged in agents.

Good suggestion again :]
Title: Re: Use of wildcards in VAG scripts
Post by: victor on July 27, 2007, 05:57:23 AM
Ok, it sounds weird, but:

1. LoggedIn function
        +: easy to implement
        -: forces all agents to login into the same queue

2. using SkillExist()& SkillExist()
        +: simplest way
        -: total number of characters limitation and needs to be updated every time

3. writing directly to CME
        +: character limit problem resolved
        -: will not take effect until reboot of configserver

4. having URS do a database dip to retrieve the skills (routing problem only)
        +: no need to worry updating strategies if number of skills are increased
        - : requires some SQL skills

considering all the limitations, I would go with (4). I would write a simple SELECT stored procedure that would dip into CME DB and look into cfg_skills table and retrieve all the skills starting with IFA* and then return a long target string consisting of "SkillExists()&SkillExists() which would then be used by SelectDN. This would take care of targetting.

For reporting, I would just make sure that agent has a ROUTING skill and a reporting skill and define one VAG with reporting skill.

For example, since you are using IFA*, you might as well add "IFA" skill to all the agents and then get reporting from that. Yes, it means that you would need add a second skill to all agents that start with "IFA" but it can be easily done either manually or through an SQL-script. Tell me if you want me to write one for you.  all new agents then would need to have reporting skill "IFA" as well, but it should be simple.





   
Title: Re: Use of wildcards in VAG scripts
Post by: mark on July 27, 2007, 09:05:18 AM
[quote author=victor link=topic=2320.msg8886#msg8886 date=1185515843]

For reporting, I would just make sure that agent has a ROUTING skill and a reporting skill and define one VAG with reporting skill.

For example, since you are using IFA*, you might as well add "IFA" skill to all the agents and then get reporting from that. Yes, it means that you would need add a second skill to all agents that start with "IFA" but it can be easily done either manually or through an SQL-script. Tell me if you want me to write one for you.  all new agents then would need to have reporting skill "IFA" as well, but it should be simple.

     
[/quote]

Essentially, this is how I am getting around the problem for the moment, but again, it needs someone to add skills and manage them. Team Managers have access to change skills in CME, which means they can see that it is not a normal skill and delete it (yes this happens even when we tell them to leave reporting skills alone!).

Mark
Title: Re: Use of wildcards in VAG scripts
Post by: Kevin S on August 13, 2007, 05:03:37 PM
I know the topic is Wildcards for VAG scripts, but I noticed that there is now a flag in Stat Server 7.5 that permits wildcards in filters.

=====
filters-allow-wildcards-in-values

Specifies whether Stat Server accepts the wild-card characters * and ? in the
<value> argument of PairExist functions in filters. If set to yes, Stat Server
interprets these characters as wildcards. If set to no, Stat Server interprets
these as literal characters. Prior to 7.5, Stat Server interpreted a <value>
argument of “*” as any string and “*”, embedded within a string, as a literal
character.
For example, Stat Server interprets the PairExist(KY1, “Mr.*”) function in
one of two ways depending on the value of the filters-allow-wildcards-in-
values option:
• As a function whose filter returns any statistic where the values for KY1
begin with Mr., if the value of this option is set to yes.
• As a function whose filter returns only those statistics where the value for
KY1 is equivalent to the four characters Mr.* if the value of this option is
set to no.
Stat Server interprets the PairExist(KY2, “*”) filter as one where KY2 is
equal to any number of characters regardless of the value of this option.
Default Value: no
Valid Values: no, yes
Changes Take Effect: When Stat Server is restarted
Title: Re: Use of wildcards in VAG scripts
Post by: cavagnaro on August 13, 2007, 05:37:06 PM
as far as i know this is available at least sinde StatServer 7.0...right?
Title: Re: Use of wildcards in VAG scripts
Post by: René on August 13, 2007, 06:34:29 PM
Cavagnaro,

Based on the documentation and release notes the option "filters-allow-wildcards-in-values" was added in version 7.5.

René
Title: Re: Use of wildcards in VAG scripts
Post by: cavagnaro on August 13, 2007, 08:03:48 PM
I believe that was launched in order to restrict the use of wildcards on filters, not to implement them as they were available. Maybe some data containing * and don't using it as a filter was the problem and fixed  with this option.

From statserver 7.0 users guide:

Use the wildcard character “*” (asterisk) in place of the value in filter
functions. PairExists(“Key”,”*”) would return 1 for true if any key-value
pair exists where the key equals “Key”, regardless of the value of that pair.
Title: Re: Use of wildcards in VAG scripts
Post by: cavagnaro on August 13, 2007, 08:39:01 PM
Oh ok my bad, you were talking more about the statserver option not the wildcard feature itself.
Sorry
Title: Re: Use of wildcards in VAG scripts
Post by: Kevin S on August 13, 2007, 09:18:25 PM
According to the description, the wildcard option was previously available, but it matched ANY instance.

This option permits you to get narrow it down to a subset.
For example, in the original posting, Mark was looking to use for any skillset starting with "IFA_".
Prior to 7.5, using PairExists("MySkill", "*") would give you any existence of MySkill. If it was used as part of a string - for example, PairExists("Password", "A*terisk") - it would take the * as a literal character within the string and not as a wildcard.

Post-7.5, you could do PairExists("MySkill", "IFA_*") to match anything starting with "IFA_", but it would not match the KVP (MySkill, "XYZ") because XYZ does not start with "IFA_"

Disclaimer: I have not tested the various permutations of what works and what doesn't - such as, would "A*terisk" match "Asterisk", "Abbterisk", "A12345terisk", etc. This is left as an exercise for the student.