Hi Gene, hi list,
I've tried out what you said, but nothing different is happening. I can
understand the logic and what the scrip does, so I tried some changes on
the custom commit action, but with no results.
How could I debug this scrip? I could start trying to do some other
changes and writing new scrips, but for any change, I don't actually see
any results at all. Maybe i'm forgetting something, like "activating"
the scrip or something like that.
Any ideas or anywhere to look up?
Thanks again!
Mario Gomide
Gene LeDuc escreveu:
Hi Mario,
What you want to do can be done in RT with an OnStatusChange scrip
that checks $self->TransactionObj->OldValue and
$self->TransactionObj->NewValue. If the values don't meet your
criteria, change the status back to the OldValue. I've never used
custom status values, so if they require unusual handling then this
might not work. If they work like standard status values, something
like this should do the trick:
Condition: User Defined
Action: User Defined
Template: Global blank
Custom condition:
{ ### true if transaction is a status change
my $Transaction = $self->TransactionObj;
my $val = $Transaction->Type eq "Status";
return $val;
}
Custom prep action:
return 1;
Custom commit action:
### Check to make sure new status value makes sense
my $Transaction = $self->TransactionObj;
my $Ticket = $self->TicketObj;
my $Old = $Transaction->OldValue;
my $New = $Transaction->NewValue;
if ($Old eq "X" && ! ($New eq "Y" || $New eq "Z")) {
$Ticket->_Set(Field=>"Status", Value=>$Old, RecordTransaction=>0);
}
return 1;
I just typed this in without confirming that it works as-is, so there
might be something off in the syntax, but here's what it's doing:
1. Fire the scrip if there's been a status change
2. See if the old value was "X" and the new value is not "Y" or "Z".
If so...
3. Set the status back to the old value without creating a
transaction (so scrips don't fire again)
Since you have a specific list of allowed changes ("Y" and "Z") you
don't have to concern yourself with "A".
Regards,
Gene
At 09:56 AM 7/6/2007, Mario Gomide wrote:
Hello list,
I am trying to set RT to work allowing or denying certain custom
statuses.
For example, I have the "X" custom status and whenever a ticket has
this status, the next status can only be "Y" or "Z", but it cannot be
"A".
I read the foruns and I'm still not sure if it can be done by crating
scrips or by modifying Ticket_Overlay.pm (or any other file).
Actually, I've started creating scripconditions that check the
current status, but now I have to create the scripactions that
compare the next status with the active status, and then it will take
some action: if it isn't a possible status change, then go back and
warn. If it is a possible status change, go ahead and change.
Has anyone tried to do this? Is there any other easier way? Is there
something done, like forcing the status changes?
Thanks a lot!
Any suggestions are welcome!
Mario Gomide
_______________________________________________
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]
Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
Buy a copy at http://rtbook.bestpractical.com
_______________________________________________
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]
Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
Buy a copy at http://rtbook.bestpractical.com