[rt-users] Can I use % wildcard within Query Builder on QUEUES?

Sally Ainsley sally.ainsley at lifecycle-software.com
Tue Sep 29 12:01:51 EDT 2015


Hi Matt and Byron

Many thanks for your input I think I have a work around.

I tried the LIKE option in the Advanced button at the top of the page but I get the horrid red  "Couldn't parse query" error that Matt described in the email trail.
So for some reason whilst LIKE works with Fields like Requestor.EmailAddress field (as per Byron's email)  it does not work on QUEUE.

I have therefore reviewed the options within the QUERY BUILDER where 'matches' is a drop down option.  
There is a long list of fields where this would work (not just REQUESTOR) and one of these is QueueAdminCC.

So what I have done is created a Test User in RT and put this Test User as the QueueAdminCC for my Queues which have a name with "UAT "in them.  

I can then write Queries with the QUERY BUILDER or the ADVANCED BUTTON that include [QueueCc.Name LIKE 'test'] as one of the rules to get all my UAT Queues

This is not ideal but I can now write queries to select several queues that I will not need to update each time we add a new Queue - I will simply update our internal instructions so that when new Queues are set up them up with the Test user in the QueueAdminCC field.

Many thanks

Sally


-----Original Message-----
From: Bryon Baker [mailto:bbaker at copesan.com] 
Sent: 29 September 2015 16:38
To: Sally Ainsley <sally.ainsley at lifecycle-software.com>; 'Matt Zagrabelny' <mzagrabe at d.umn.edu>; 'rt-users' <rt-users at lists.bestpractical.com>
Subject: RE: [rt-users] Can I use % wildcard within Query Builder on QUEUES?

Hello Sally and Mat
The like phrase works you just need to use the "Advanced" button at top of page.  At that point you can type in the phrase you would like.

I use this phrase in reports because I do not want the data in my calculations.

Requestor.EmailAddress Not Like '%DAEMON%'

Thanks
Bryon Baker
Network Operations Manager
Copesan - Specialists in Pest Solutions
800-267-3726  •  262-783-6261 ext. 2296
bbaker at copesan.com
www.copesan.com
"Servicing North America with Local Care"

-----Original Message-----
From: rt-users [mailto:rt-users-bounces at lists.bestpractical.com] On Behalf Of Sally Ainsley
Sent: Tuesday, September 29, 2015 10:32 AM
To: 'Matt Zagrabelny'; 'rt-users'
Subject: Re: [rt-users] Can I use % wildcard within Query Builder on QUEUES?

Thanks Matt  for prompt response

I was hoping to do something in the Query Builder as I would need to secure some technical resource internally to go down the perl route as I don't have the knowledge for perl.  

I got the same error as you below when I tried the LIKE operator.  Perhaps LIKE doesn’t work on the QUEUE field for some reason.


Sally Ainsley | Lifecycle Software | T: 01635 553427

-----Original Message-----
From: Matt Zagrabelny [mailto:mzagrabe at d.umn.edu]
Sent: 29 September 2015 16:27
To: sally.ainsley at lifecycle-software.com; rt-users <rt-users at lists.bestpractical.com>
Subject: Fwd: [rt-users] Can I use % wildcard within Query Builder on QUEUES?

On Tue, Sep 29, 2015 at 10:05 AM, Sally Ainsley <sally.ainsley at lifecycle-software.com> wrote:
> Dear All
>
>
>
> I have a range of queries I am trying to create in QUERY BUILDER where 
> I want to include or exclude a list of QUEUES.
>
>
>
> E.g.
>
> QUEUE NAME 1 = BLUE
>
> QUEUE NAME 2 = BLUE -UAT
>
> QUEUE NAME 3 = RED
>
> QUEUE NAME 2 = RED-UAT
>
>
>
> I would like to be able to include or exclude QUEUES with the letters “UAT”
> within them.
>
>
>
> Using the ADVANCED option of the QUERY BUILDER I have tried:
>
>
>
> a)      Queue = '_%UAT'   or    Queue! = '_%UAT'
>
> b)      Queue = ’%UAT’ or        Queue! = '%UAT'
>
>
>
> I have also tried to use MATCHES or LIKE instead of ‘=’ but I cannot 
> get any of this to work.

If it were to work, "LIKE" would be the operator. However, I don't think it will work.

If you look at the Search Builder page, there is only "is" and "isn't"
in the drop down for building the Queue predicate.

I just tried it with LIKE and got the following error:

[error]: Couldn't parse query: Invalid Operation: LIKE for Queue at /opt/rt4/sbin/../lib/RT/Tickets.pm line 368.

That said, depending on what your final needs are you could write some supporting perl to achieve a similar effect:

# Not tested...
my @matching_queues = ();
my $Queues = RT::Queues->new($session{CurrentUser});
while (my $Queue = $Queues->next) {
    if ($Queue->Name =~ /UAT$/) {
        push @matching_queues, $Queue->Name;
    }
}

my $sql =
    join ' OR ',
    map { "Queue = '$_'" },
    @matching_queues,
;

my $Tickets = RT::Tickets->new($session{CurrentUser});
$Tickets->FromSQL($sql);
# end of untested code.

Perhaps that would help.

-m





More information about the rt-users mailing list