Mailing List Archive

Owner not showing in search results?
Hi all,
We have an odd problem. I've put a script in place that sets the requestor
of a ticket to be its owner, and that works perfectly when viewing a
ticket--the owner is shown as the requestor. The problem is that search
results show most tickets as being owned by nobody, but if you click a
ticket, you see the owner has actually been set as expected. It's just
search results that don't want to show the owner.

I found this script on the Wiki, and don't know enough about RT's internals
to say if it does everything it should. Does anyone see any possible
problems with it that would cause the issue with search results?


# get actor ID
my $Actor = $self->TransactionObj->Creator;
#if actor is RT_SystemUser then get out of here
return 1 if $Actor == $RT::SystemUser->id;
#prevents a ticket being assigned to an unprivileged user, comment out if
you want this
return 1 unless $self->TransactionObj->CreatorObj->Privileged;
#get out unless ticket owner is nobody
return 1 unless $self->TicketObj->Owner == $RT::Nobody->id;
#try to change owner
$RT::Logger->info("Auto assign ticket #". $self->TicketObj->id ." to user
#". $Actor );
my ($status, $msg) = $self->TicketObj->_Set(Field => 'Owner', Value =>
$Actor, RecordTransaction => 0);
unless( $status ) {
$RT::Logger->error( "Impossible to assign the ticket to $Actor: $msg" );
return undef;
}

return 1;

--
Alex Hall
Automatic Distributors, IT department
ahall@autodist.com
Re: Owner not showing in search results? [ In reply to ]
Hi Alex,

What is the Format-String of your search? (It’s under the advanced tab, when you edit the search)

The scrip looks fine.

Cheers,
Vinzenz
Vinzenz Sinapius
Information Technology | Informationstechnik

tracetronic GmbH
Stuttgarter Str. 3
01189 DRESDEN
GERMANY

Phone: +49 351 205768-167
Fax: +49 351 205768-999
E-mail: vinzenz.sinapius@tracetronic.de<mailto:vinzenz.sinapius@tracetronic.de>

Head Office | Hauptsitz: Stuttgarter Str. 3, 01189 DRESDEN, GERMANY
Managing Directors | Geschäftsführer: Dr.-Ing. Rocco Deutschmann, Dr.-Ing. Peter Strähle
Registration Court | Registergericht: Amtsgericht Dresden, HRB 23 086


Von: rt-users [mailto:rt-users-bounces@lists.bestpractical.com] Im Auftrag von Alex Hall
Gesendet: Freitag, 18. November 2016 14:29
An: rt-users <rt-users@lists.bestpractical.com>
Betreff: [rt-users] Owner not showing in search results?

Hi all,
We have an odd problem. I've put a script in place that sets the requestor of a ticket to be its owner, and that works perfectly when viewing a ticket--the owner is shown as the requestor. The problem is that search results show most tickets as being owned by nobody, but if you click a ticket, you see the owner has actually been set as expected. It's just search results that don't want to show the owner.

I found this script on the Wiki, and don't know enough about RT's internals to say if it does everything it should. Does anyone see any possible problems with it that would cause the issue with search results?


# get actor ID
my $Actor = $self->TransactionObj->Creator;
#if actor is RT_SystemUser then get out of here
return 1 if $Actor == $RT::SystemUser->id;
#prevents a ticket being assigned to an unprivileged user, comment out if you want this
return 1 unless $self->TransactionObj->CreatorObj->Privileged;
#get out unless ticket owner is nobody
return 1 unless $self->TicketObj->Owner == $RT::Nobody->id;
#try to change owner
$RT::Logger->info("Auto assign ticket #". $self->TicketObj->id ." to user #". $Actor );
my ($status, $msg) = $self->TicketObj->_Set(Field => 'Owner', Value => $Actor, RecordTransaction => 0);
unless( $status ) {
$RT::Logger->error( "Impossible to assign the ticket to $Actor: $msg" );
return undef;
}

return 1;

--
Alex Hall
Automatic Distributors, IT department
ahall@autodist.com<mailto:ahall@autodist.com>
Re: Owner not showing in search results? [ In reply to ]
We always leave it at the default. I did a search for "queue:technology",
and here's the format it uses:

'<b><a
href="__WebPath__/Ticket/Display.html?id=__id__">__id__</a></b>/TITLE:#',
'<b><a
href="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a></b>/TITLE:Subject',
Status,
QueueName,
Owner,
Priority,
'__NEWLINE__',
'__NBSP__',
'<small>__Requestors__</small>',
'<small>__CreatedRelative__</small>',
'<small>__ToldRelative__</small>',
'<small>__LastUpdatedRelative__</small>',
'<small>__TimeLeft__</small>'

On Fri, Nov 18, 2016 at 9:03 AM, Sinapius, Vinzenz <
Vinzenz.Sinapius@tracetronic.de> wrote:

> Hi Alex,
>
>
>
> What is the Format-String of your search? (It’s under the advanced tab,
> when you edit the search)
>
>
>
> The scrip looks fine.
>
>
>
> Cheers,
>
> Vinzenz
>
> Vinzenz Sinapius
> Information Technology | Informationstechnik
>
> *trace**tronic* GmbH
> Stuttgarter Str. 3
> 01189 DRESDEN
> GERMANY
>
> Phone: +49 351 205768-167
> Fax: +49 351 205768-999
> E-mail: vinzenz.sinapius@tracetronic.de
>
> Head Office | Hauptsitz: Stuttgarter Str. 3, 01189 DRESDEN, GERMANY
> Managing Directors | Geschäftsführer: Dr.-Ing. Rocco Deutschmann, Dr.-Ing.
> Peter Strähle
> Registration Court | Registergericht: Amtsgericht Dresden, HRB 23 086
>
>
>
> *Von:* rt-users [mailto:rt-users-bounces@lists.bestpractical.com] *Im
> Auftrag von *Alex Hall
> *Gesendet:* Freitag, 18. November 2016 14:29
> *An:* rt-users <rt-users@lists.bestpractical.com>
> *Betreff:* [rt-users] Owner not showing in search results?
>
>
>
> Hi all,
>
> We have an odd problem. I've put a script in place that sets the requestor
> of a ticket to be its owner, and that works perfectly when viewing a
> ticket--the owner is shown as the requestor. The problem is that search
> results show most tickets as being owned by nobody, but if you click a
> ticket, you see the owner has actually been set as expected. It's just
> search results that don't want to show the owner.
>
> I found this script on the Wiki, and don't know enough about RT's
> internals to say if it does everything it should. Does anyone see any
> possible problems with it that would cause the issue with search results?
>
>
> # get actor ID
> my $Actor = $self->TransactionObj->Creator;
> #if actor is RT_SystemUser then get out of here
> return 1 if $Actor == $RT::SystemUser->id;
> #prevents a ticket being assigned to an unprivileged user, comment out if
> you want this
> return 1 unless $self->TransactionObj->CreatorObj->Privileged;
> #get out unless ticket owner is nobody
> return 1 unless $self->TicketObj->Owner == $RT::Nobody->id;
> #try to change owner
> $RT::Logger->info("Auto assign ticket #". $self->TicketObj->id ." to user
> #". $Actor );
> my ($status, $msg) = $self->TicketObj->_Set(Field => 'Owner', Value =>
> $Actor, RecordTransaction => 0);
> unless( $status ) {
> $RT::Logger->error( "Impossible to assign the ticket to $Actor: $msg"
> );
> return undef;
> }
>
> return 1;
>
>
> --
>
> Alex Hall
>
> Automatic Distributors, IT department
>
> ahall@autodist.com
>
> ---------
> RT 4.4 and RTIR training sessions, and a new workshop day!
> https://bestpractical.com/training
> * Los Angeles - January 9-11 2017
>



--
Alex Hall
Automatic Distributors, IT department
ahall@autodist.com
Re: Owner not showing in search results? [ In reply to ]
I just wondered if anyone had any more thoughts on this problem. We just
set up email dashboards, and they're doing the same thing search results
do; owners are often set to 'nobody', but if you go into the ticket, the
real owner is shown. Since dashboards and searches use the same display, or
seem to, I'm not surprised. But seeing that reminded me that this is still
a problem we'd like to get fixed if possible. As I mentioned before, I've
made no changes to the search results pages, and the problem appears to be
when the owner is set via our script to auto-assign the requestor as the
owner. The owner is set correctly if you view the ticket, but not if that
ticket appears in a search results page. Thanks.

On Fri, Nov 18, 2016 at 9:18 AM, Alex Hall <ahall@autodist.com> wrote:

> We always leave it at the default. I did a search for "queue:technology",
> and here's the format it uses:
>
> '<b><a href="__WebPath__/Ticket/Display.html?id=__id__">__id__
> </a></b>/TITLE:#',
> '<b><a href="__WebPath__/Ticket/Display.html?id=__id__">__
> Subject__</a></b>/TITLE:Subject',
> Status,
> QueueName,
> Owner,
> Priority,
> '__NEWLINE__',
> '__NBSP__',
> '<small>__Requestors__</small>',
> '<small>__CreatedRelative__</small>',
> '<small>__ToldRelative__</small>',
> '<small>__LastUpdatedRelative__</small>',
> '<small>__TimeLeft__</small>'
>
> On Fri, Nov 18, 2016 at 9:03 AM, Sinapius, Vinzenz <
> Vinzenz.Sinapius@tracetronic.de> wrote:
>
>> Hi Alex,
>>
>>
>>
>> What is the Format-String of your search? (It’s under the advanced tab,
>> when you edit the search)
>>
>>
>>
>> The scrip looks fine.
>>
>>
>>
>> Cheers,
>>
>> Vinzenz
>>
>> Vinzenz Sinapius
>> Information Technology | Informationstechnik
>>
>> *trace**tronic* GmbH
>> Stuttgarter Str. 3
>> 01189 DRESDEN
>> GERMANY
>>
>> Phone: +49 351 205768-167
>> Fax: +49 351 205768-999
>> E-mail: vinzenz.sinapius@tracetronic.de
>>
>> Head Office | Hauptsitz: Stuttgarter Str. 3, 01189 DRESDEN, GERMANY
>> Managing Directors | Geschäftsführer: Dr.-Ing. Rocco Deutschmann,
>> Dr.-Ing. Peter Strähle
>> Registration Court | Registergericht: Amtsgericht Dresden, HRB 23 086
>>
>>
>>
>> *Von:* rt-users [mailto:rt-users-bounces@lists.bestpractical.com] *Im
>> Auftrag von *Alex Hall
>> *Gesendet:* Freitag, 18. November 2016 14:29
>> *An:* rt-users <rt-users@lists.bestpractical.com>
>> *Betreff:* [rt-users] Owner not showing in search results?
>>
>>
>>
>> Hi all,
>>
>> We have an odd problem. I've put a script in place that sets the
>> requestor of a ticket to be its owner, and that works perfectly when
>> viewing a ticket--the owner is shown as the requestor. The problem is that
>> search results show most tickets as being owned by nobody, but if you click
>> a ticket, you see the owner has actually been set as expected. It's just
>> search results that don't want to show the owner.
>>
>> I found this script on the Wiki, and don't know enough about RT's
>> internals to say if it does everything it should. Does anyone see any
>> possible problems with it that would cause the issue with search results?
>>
>>
>> # get actor ID
>> my $Actor = $self->TransactionObj->Creator;
>> #if actor is RT_SystemUser then get out of here
>> return 1 if $Actor == $RT::SystemUser->id;
>> #prevents a ticket being assigned to an unprivileged user, comment out if
>> you want this
>> return 1 unless $self->TransactionObj->CreatorObj->Privileged;
>> #get out unless ticket owner is nobody
>> return 1 unless $self->TicketObj->Owner == $RT::Nobody->id;
>> #try to change owner
>> $RT::Logger->info("Auto assign ticket #". $self->TicketObj->id ." to user
>> #". $Actor );
>> my ($status, $msg) = $self->TicketObj->_Set(Field => 'Owner', Value =>
>> $Actor, RecordTransaction => 0);
>> unless( $status ) {
>> $RT::Logger->error( "Impossible to assign the ticket to $Actor: $msg"
>> );
>> return undef;
>> }
>>
>> return 1;
>>
>>
>> --
>>
>> Alex Hall
>>
>> Automatic Distributors, IT department
>>
>> ahall@autodist.com
>>
>> ---------
>> RT 4.4 and RTIR training sessions, and a new workshop day!
>> https://bestpractical.com/training
>> * Los Angeles - January 9-11 2017
>>
>
>
>
> --
> Alex Hall
> Automatic Distributors, IT department
> ahall@autodist.com
>



--
Alex Hall
Automatic Distributors, IT department
ahall@autodist.com
Re: Owner not showing in search results? [ In reply to ]
Hi Alex,

You do not record your transaction in your scrip. That means that the
system does not know that a change has been made and to invalidate the
caches. You will either need to record it or live with the result.

Regards,
Ken

On Mon, Nov 28, 2016 at 11:12:00AM -0500, Alex Hall wrote:
> >> my ($status, $msg) = $self->TicketObj->_Set(Field => 'Owner', Value =>
> >> $Actor, RecordTransaction => 0);

This should be 1, not 0 to record the transaction and that should flush
the cached info.

---------
RT 4.4 and RTIR training sessions, and a new workshop day! https://bestpractical.com/training
* Los Angeles - January 9-11 2017
Re: Owner not showing in search results? [ In reply to ]
Thanks, I didn't know that would happen. I did that to suppress the email notification; we want users notified if their tickets change owners, but only if that change is NOT from "nobody" to themselves.

I just updated the script to record the transaction. It worked, because I got the email I wanted suppressed, and the owner still changed. Oddly, "nobody" is still the owner when I search for my ticket, though. Should I flush a cache or something? Mason cache wouldn't have anything to do with this, would it?
> On Nov 28, 2016, at 11:18, Kenneth Marshall <ktm@rice.edu> wrote:
>
> Hi Alex,
>
> You do not record your transaction in your scrip. That means that the
> system does not know that a change has been made and to invalidate the
> caches. You will either need to record it or live with the result.
>
> Regards,
> Ken
>
> On Mon, Nov 28, 2016 at 11:12:00AM -0500, Alex Hall wrote:
>>>> my ($status, $msg) = $self->TicketObj->_Set(Field => 'Owner', Value =>
>>>> $Actor, RecordTransaction => 0);
>
> This should be 1, not 0 to record the transaction and that should flush
> the cached info.
>

---------
RT 4.4 and RTIR training sessions, and a new workshop day! https://bestpractical.com/training
* Los Angeles - January 9-11 2017
Re: Owner not showing in search results? [ In reply to ]
On Mon, Nov 28, 2016 at 11:32:36AM -0500, Alex Hall wrote:
> Thanks, I didn't know that would happen. I did that to suppress the email notification; we want users notified if their tickets change owners, but only if that change is NOT from "nobody" to themselves.
>
> I just updated the script to record the transaction. It worked, because I got the email I wanted suppressed, and the owner still changed. Oddly, "nobody" is still the owner when I search for my ticket, though. Should I flush a cache or something? Mason cache wouldn't have anything to do with this, would it?

Hi Alex,

Well, that is not what I would have expected to happen. I do not know enough
about the DB queries that are being run to generate the search results. Probably,
my next step would be to look at the actual query and see where the incorrect
results are being produced. I am not much help because we use PostgreSQL as
the DB and not MySQL. Sorry, I cannot be of more assistance.

Regards,
Ken
---------
RT 4.4 and RTIR training sessions, and a new workshop day! https://bestpractical.com/training
* Los Angeles - January 9-11 2017
Re: Owner not showing in search results? [ In reply to ]
On Mon, Nov 28, 2016 at 11:41 AM, Kenneth Marshall <ktm@rice.edu> wrote:

> On Mon, Nov 28, 2016 at 11:32:36AM -0500, Alex Hall wrote:
> > Thanks, I didn't know that would happen. I did that to suppress the
> email notification; we want users notified if their tickets change owners,
> but only if that change is NOT from "nobody" to themselves.
> >
> > I just updated the script to record the transaction. It worked, because
> I got the email I wanted suppressed, and the owner still changed. Oddly,
> "nobody" is still the owner when I search for my ticket, though. Should I
> flush a cache or something? Mason cache wouldn't have anything to do with
> this, would it?
>
> Hi Alex,
>
> Well, that is not what I would have expected to happen. I do not know
> enough
> about the DB queries that are being run to generate the search results.
> Probably,
> my next step would be to look at the actual query and see where the
> incorrect
> results are being produced. I am not much help because we use PostgreSQL as
> the DB and not MySQL. Sorry, I cannot be of more assistance.
>

How do I view the actual query being used? Is there a way to get RT to
store it, or some other trick? Thanks.

>
> Regards,
> Ken
>



--
Alex Hall
Automatic Distributors, IT department
ahall@autodist.com
Re: Owner not showing in search results? [ In reply to ]
Never mind the SQL logging question, I got it. Something really weird: in
the ticket insertion, I see no owner value at all. Here it is:

INSERT INTO Tickets
(Resolved, Priority, Starts, Creator, InitialPriority, SLA, Created,
LastUpdatedBy, Type, Queue, LastUpdated, Started, Due, Subject,
FinalPriority, Status)
VALUES ('1970-01-01 00:00:00', '1', '1970-01-01 00:00:00', '28', '1', NULL,
'2017-01-05 22:51:29', '28', 'ticket', '5', '2017-01-05 22:51:29',
'1970-01-01 00:00:00', '2017-01-07 22:51:29', 'Test', '50', 'new')

Of course, I see nothing for the custom field I set either. Still, why
would owner not be set in the initial ticket insertion? Later, I see this
insertion, for some reason:

INSERT INTO Groups
(Instance, LastUpdated, Name, Created, LastUpdatedBy, Domain, Description,
id, Creator)
VALUES ('1164', '2017-01-05 22:51:29', 'Owner', '2017-01-05 22:51:29',
'28', 'RT::Ticket-Role', NULL, '4856', '28')

I have no idea what that's about. I have to run, so there may be more in
the log file I'll get to tomorrow. But what's going on here, and could this
explain why owners don't show in search results but they do in ticket
displays? Thanks.



On Thu, Jan 5, 2017 at 1:40 PM, Alex Hall <ahall@autodist.com> wrote:

>
>
> On Mon, Nov 28, 2016 at 11:41 AM, Kenneth Marshall <ktm@rice.edu> wrote:
>
>> On Mon, Nov 28, 2016 at 11:32:36AM -0500, Alex Hall wrote:
>> > Thanks, I didn't know that would happen. I did that to suppress the
>> email notification; we want users notified if their tickets change owners,
>> but only if that change is NOT from "nobody" to themselves.
>> >
>> > I just updated the script to record the transaction. It worked, because
>> I got the email I wanted suppressed, and the owner still changed. Oddly,
>> "nobody" is still the owner when I search for my ticket, though. Should I
>> flush a cache or something? Mason cache wouldn't have anything to do with
>> this, would it?
>>
>> Hi Alex,
>>
>> Well, that is not what I would have expected to happen. I do not know
>> enough
>> about the DB queries that are being run to generate the search results.
>> Probably,
>> my next step would be to look at the actual query and see where the
>> incorrect
>> results are being produced. I am not much help because we use PostgreSQL
>> as
>> the DB and not MySQL. Sorry, I cannot be of more assistance.
>>
>
> How do I view the actual query being used? Is there a way to get RT to
> store it, or some other trick? Thanks.
>
>>
>> Regards,
>> Ken
>>
>
>
>
> --
> Alex Hall
> Automatic Distributors, IT department
> ahall@autodist.com
>



--
Alex Hall
Automatic Distributors, IT department
ahall@autodist.com