Scrip-Generation: OnOwnerChange --> Change Queue to one of the owner is granted to see

Hey!

I have the following problem:
If a ticket has been taken the owner AND the queue should change
automatically. The queue should be one of those the owner is granted to see.
Not every user is granted to see each queue. “Supporter A” for example is
granted to see his queue “Development”. If Supporter A takes a ticket, the
queue should also change to Development. If an owner has rights to see more
than one queue, i want to specifiy which queue it should be by my own
hardcoded in the scrip (due to the fact, that this would only happen to
three users, its not much work to do that.)

So what i need is to find out:

Who is the new owner of the ticket?
Is the owner = Supporter A, Supporter B or Supporter C
If yes:
If Supporter A:
Change Queue to “Queue 1”;
If Supporter B:
and so on

If no:
Get the queue the owner is granted to see
Change queue to this queue.

I started without any knowledge about perl with the following scrip:

#Get the new Owner of the ticket
my $Owner = $self->TicketObj->Owner;

#Here i tried to get the Owners Queue but I will get the Tickets Queue and
thats wrong.
///my $Queue = $self->TicketObj->QueueObj->Name;

#Set the Queue to $Queue
my ($status, $msg) = $TicketObj->SetQueue ( $Queue );
unless ( $status ) {
die “Error: $msg”;
}

Maybe someone can help me.

Thx
Best regards
Tommy
View this message in context: http://www.nabble.com/Scrip-Generation%3A-OnOwnerChange--->-Change-Queue-to-one-of-the-owner-is-granted-to-see-tp23593199p23593199.html

The easiest way is to use a perl hash:

my %map = (
‘user name A’ => ‘queue name’,
‘user name B’ => ‘queue name’,

);

Then you do something like this:

my $owner_name = $self->TicketObj->OwnerObj->Name;
my $new_queue_name = $map{ $owner_name };
unless ( $new_queue_name ) {
$RT::Logger->error(“No owner map for user $owner_name”);
return 0;
}

my ($status, $msg) = $self->TicketObj->SetQueue( $new_queue_name );
unless ( $status ) {
$RT::Logger->error(“Couldn’t set queue to ‘$new_queue_name’ of a
ticket #”. $self->TicketObj->id . “: $msg”);
return 0;
}

I don’t remember exactly if SetQueue method supports names, but
looking at your progress I think you can find way to load Queue by
name and get its id.On Mon, May 18, 2009 at 12:29 PM, tommy0660 flucht@wyeth.com wrote:

Hey!

I have the following problem:
If a ticket has been taken the owner AND the queue should change
automatically. The queue should be one of those the owner is granted to see.
Not every user is granted to see each queue. “Supporter A” for example is
granted to see his queue “Development”. If Supporter A takes a ticket, the
queue should also change to Development. If an owner has rights to see more
than one queue, i want to specifiy which queue it should be by my own
hardcoded in the scrip (due to the fact, that this would only happen to
three users, its not much work to do that.)

So what i need is to find out:

Who is the new owner of the ticket?
Is the owner = Supporter A, Supporter B or Supporter C
If yes:
If Supporter A:
Change Queue to “Queue 1”;
If Supporter B:
and so on

If no:
Get the queue the owner is granted to see
Change queue to this queue.

I started without any knowledge about perl with the following scrip:

#Get the new Owner of the ticket
my $Owner = $self->TicketObj->Owner;

#Here i tried to get the Owners Queue but I will get the Tickets Queue and
thats wrong.
///my $Queue = $self->TicketObj->QueueObj->Name;

#Set the Queue to $Queue
my ($status, $msg) = $TicketObj->SetQueue ( $Queue );
unless ( $status ) {
die “Error: $msg”;
}

Maybe someone can help me.

Thx
Best regards
Tommy

View this message in context: http://www.nabble.com/Scrip-Generation%3A-OnOwnerChange--->-Change-Queue-to-one-of-the-owner-is-granted-to-see-tp23593199p23593199.html
Sent from the Request Tracker - User mailing list archive at Nabble.com.


http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

Best regards, Ruslan.

It works great with queue names as you coded it bellow!

Thanks for your help!!

Best regards,
Tommy!

Ruslan Zakirov ruslan.zakirov@gmail.com 2009-05-20 23:10:43 >>>

The easiest way is to use a perl hash:

my %map = (
‘user name A’ => ‘queue name’,
‘user name B’ => ‘queue name’,

);

Then you do something like this:

my $owner_name = $self->TicketObj->OwnerObj->Name;
my $new_queue_name = $map{ $owner_name };
unless ( $new_queue_name ) {
$RT::Logger->error(“No owner map for user $owner_name”);
return 0;
}

my ($status, $msg) = $self->TicketObj->SetQueue( $new_queue_name );
unless ( $status ) {
$RT::Logger->error(“Couldn’t set queue to ‘$new_queue_name’ of a
ticket #”. $self->TicketObj->id . “: $msg”);
return 0;
}

I don’t remember exactly if SetQueue method supports names, but
looking at your progress I think you can find way to load Queue by
name and get its id.On Mon, May 18, 2009 at 12:29 PM, tommy0660 flucht@wyeth.com wrote:

Hey!

I have the following problem:
If a ticket has been taken the owner AND the queue should change
automatically. The queue should be one of those the owner is granted to see.
Not every user is granted to see each queue. “Supporter A” for example is
granted to see his queue “Development”. If Supporter A takes a ticket, the
queue should also change to Development. If an owner has rights to see more
than one queue, i want to specifiy which queue it should be by my own
hardcoded in the scrip (due to the fact, that this would only happen to
three users, its not much work to do that.)

So what i need is to find out:

Who is the new owner of the ticket?
Is the owner = Supporter A, Supporter B or Supporter C
If yes:
If Supporter A:
Change Queue to “Queue 1”;
If Supporter B:
and so on

If no:
Get the queue the owner is granted to see
Change queue to this queue.

I started without any knowledge about perl with the following scrip:

#Get the new Owner of the ticket
my $Owner = $self->TicketObj->Owner;

#Here i tried to get the Owners Queue but I will get the Tickets Queue and
thats wrong.
///my $Queue = $self->TicketObj->QueueObj->Name;

#Set the Queue to $Queue
my ($status, $msg) = $TicketObj->SetQueue ( $Queue );
unless ( $status ) {
die “Error: $msg”;
}

Maybe someone can help me.

Thx
Best regards
Tommy

View this message in context: http://www.nabble.com/Scrip-Generation%3A-OnOwnerChange--->-Change-Queue-to-one-of-the-owner-is-granted-to-see-tp23593199p23593199.html
Sent from the Request Tracker - User mailing list archive at Nabble.com.


http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

Best regards, Ruslan.