Genesys CTI User Forum
Genesys CTI User Forum => Genesys CTI Technical Discussion => Topic started 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
-
I can search for skills using * as a wildcard (and ? for single chars), but not use these in a script!
Mark
-
Sorry Mark, but no wildcards are supported in VAG scripts :(
R.
-
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
-
[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.
-
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 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.
-
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...
-
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.
-
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?
-
[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 :]
-
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.
-
[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
-
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
-
as far as i know this is available at least sinde StatServer 7.0...right?
-
Cavagnaro,
Based on the documentation and release notes the option "filters-allow-wildcards-in-values" was added in version 7.5.
René
-
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.
-
Oh ok my bad, you were talking more about the statserver option not the wildcard feature itself.
Sorry
-
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.