[rt-users] Automatic assignment of tickets.

Jason A. Smith smithj4 at bnl.gov
Thu Oct 12 00:05:07 EDT 2006


On Wed, 2006-10-11 at 16:21, Steve Finkelstein wrote:
> Is it possible at all to debug the code somehow? It's tough to debug
> as I'm not able to get any output back from RT. If there is somewhere
> I can enable logs for this, that'd be great. Here's my latest revision
> with Stephen's suggestions. I'll pin point the line which causes the
> code to fail. If I remove it, it assigns the ticket to whoever last
> corresponds. However, I need it to not assign based if two individual
> users make a correspondance. Those users are "foo" and "bar". 
> 
> my $Actor = $self->TransactionObj->CreatorObj->Name;
> 
> return 1 if ( $Actor == "foo" || $Actor == "bar"); # This is the line
> that's causing the Scrip to fail. No one gets assigned a ticket. 

I think your problem is the numerical equivalence operators (==).  You
are comparing strings so you should either use the string equivalent, eq
or a regex test with =~.  The above expression will probably always
return true (depending on the value of $Actor) so the scrip never goes
beyond this line.

> return 1 unless $self->TicketObj->Owner == $RT::Nobody->id;
> $RT::Logger->info("Auto assign ticket #". $self->TicketObj->id ." to
> user #". $Actor );
> my ($status, $msg) = $self->TicketObj->SetOwner( $Actor ); 
> unless ( $status ) {
>     $RT::Logger->error( "Impossible to assign the ticket to $Actor:
> $msg" );
>     return undef;
> }
> return 1;
> 
> Thanks again everyone for your help.
> 
> -- Steve
> On 10/11/06, Stephen Turner <sturner at mit.edu> wrote:
>                 Hi all,
>         
>                 I'm trying to automatically assign tickets whenever
>         someone either
>         
>                 a) comments a ticket or alternatively,
>                 b) responds to a ticket
>         
>                 The conditions are that the current owner is Nobody
>         and the user 
>         cannot be user 'X' (my supervisor for instance, might post
>         comments on a
>         ticket first, but he's the boss and we want to exclude him
>         from getting
>         ownership.)  Here's the Scrip I put together thus far. If
>         anyone can shed 
>         some light, that'd be great!
>         
>                 PS: If there is a better forum for me to post this on,
>         I'd be more
>         than happy to not waste any of your bandwidth and go there.
>         
>                 Description: Ticket Auto Assign 
>                 Condition: On Comment (I'm not sure how to get On
>         Comment AND On
>         reply at the same time? Need two different Scrips?)
>                 Action: User Defined
>                 Template: Global Template: Transaction (I'm not sure
>         what this does, 
>         need to look it up on the Wiki)
>                 Stage: Disabled (No idea what this one does either ..)
>                 Custom Condition:
>                 Custom Action Preparation Code:
>         
>                 my $notOwner = "billybob"; # I don't want billybob to
>         get assigned 
>         any tickets no matter if he replies first
>                 my $Actor = $self->TransactionObj->Creator;
>         
>                 return 1 unless $self->TicketObj->Owner ==
>         $RT::Nobody->id;
>                 $RT::Logger->info("Auto assign ticket #".
>         $self->TicketObj->id ." to 
>         user #". $Actor );
>                 my ($status, $msg) = $self->TicketObj->SetOwner(
>         $Actor ) unless
>         $Actor == $notOwner;
>                 unless ( $status ) {
>                     $RT::Logger->error( "Impossible to assign the
>         ticket to $Actor: 
>         $msg" );
>                     return undef;
>                 }
>                 return 1;
>                 Custom action cleanup code: return 1;
>         
>                 This doesn't look to do the trick. Any suggestions
>         again, would be
>         more than appreciated. 
>         
>                 Thanks all!
>                 --
>                 Steve
>         
>         ------------------------------------------
>         Hi Steve,
>         
>         This is exactly the right forum!
>         
>         You don't mention what's actually happening - in what way is
>         this failing? 
>         Are there error messages in the RT log when this scrip is
>         activated? Or does
>         it just silently not do what you want?
>         
>         To have the scrip respond to either a comment or a reply, you
>         could use a
>         custom/user-defined condition that checks the transaction type
>         - relevant 
>         values are 'Comment' and 'Correspond'.
>         
>         For scrips that don't need to send email, you should use the
>         Blank template.
>         
>         I did notice one thing in the code: "unless $Actor ==
>         $notOwner". This won't
>         work, as $Actor is an Id number whereas $notOwner is a user
>         name (string).
>         You can get the user name of the "actor" by doing
>         $self->TransactionObj->CreatorObj->Name.
>         
>         Good luck,
>         Steve
>         
>         ----------------------------------------
>         Stephen Turner
>         Senior Programmer/Analyst - Client Support Services
>         MIT Information Services and Technology (IS&T)
>         
>         
>         
>         
>         
> 
> 
> 
> ______________________________________________________________________
> 
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
> 
> Community help: http://wiki.bestpractical.com
> Commercial support: sales at bestpractical.com
> 
> 
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
> Buy a copy at http://rtbook.bestpractical.com



More information about the rt-users mailing list