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:mzagr...@d.umn.edu] 
Sent: 29 September 2015 16:27
To: sally.ains...@lifecycle-software.com; rt-users 
<rt-users@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.ains...@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

Reply via email to