[rt-users] Wierd result

Kenneth Crocker KFCrocker at lbl.gov
Tue May 8 12:05:02 EDT 2007


Stephan,


	Thanks for answering. You're right, too confusing. I was originaling 
looking to key off a CF change. I re-thought my condition code and 
decide to just key off the status change.Now I have:

return ($self->TransactionObj->Type eq "Status" &&
         $self->TransactionObj->NewValue eq "pending rv");
return 0;

	and that works OK. I am still getting an extra template so I'll look at 
my other scrips.
	Also, I am not getting a change to a CF in the process. The code is:

my $cf_obj;
my $cf_name;
my $cf_value;

$cf_obj = RT::CustomField->new($RT::SystemUser);
$cf_name = "Work-Status";
$cf_value = "Pending Decision";
$RT::Logger->debug( $self . " cf_value = ". $cf_value . "\n" );
$cf_obj->LoadByName( Name => $cf_name );
$RT::Logger->debug( "Loa
ded \$cf_obj->Name = ". $cf_obj->Name() ."\n" );
$cf_obj->AddValueForObject( Object=>$self->TicketObj, Content=>$cf_value, );

	Any ideas?  Thanks.


Kenn
LBNL

Stephen Turner wrote:
> At Tuesday 5/8/2007 01:14 AM, Kenneth Crocker wrote:
>> To all,
>>
>>         I  have created the following scrip/conditions:
>>
>>         Condition: User Defined
>>         Action: Notify AdminCc's, Cc's, Requestors
>>         Template: Reviewed (new template created as well)
>>
>>         Custom Condition:
>>
>>         # condition execution on ticket status and Custom Field value
>>
>>         return ($self->TicketObj->Status eq "new" &&
>>                 $self->Ticket->FirstCustomFieldValue('Approval-Status')
>>                 eq "Reviewing Request");
>>         return 0;
>>
>>         Custom Action Preparation Code: none
>>
>>         Custom Action Cleanup code:
>>
>>         # set new status for work-status
>>
>>         my $cf_obj;
>>         my $cf_name;
>>         my $cf_value;
>>
>>         $cf_obj = RT::CustomField->new($RT::SystemUser);
>>         $cf_name = "Work-Status";
>>         $cf_value = "Pending Decision";
>>         $RT::Logger->debug( $self . " cf_value = ". $cf_value . "\n" );
>>         $cf_obj->LoadByName( Name => $cf_name );
>>         $RT::Logger->debug( "Loaded \$cf_obj->Name = ". 
>> $cf_obj->Name()                 ."\n" );
>>         $cf_obj->AddValueForObject( 
>> Object=>$self->TicketObj,           Content=>$cf_value, );
>>
>>         # set new status for ticket
>>
>>         $RT::Logger->debug( $self->TicketObj->SetStatus("pending rv");
>>
>>
>>         I have also added the new ticket status value in my RT 
>> Configuration.
>>
>>         My problem is 1; I get a template sent out that I did not ask 
>> for (I get new owner like for an owner change).
>>         2; the ticket status doesn't get changed.
>>
>>         Any ideas?  Thanks.
>>
>> Kenn
>> LBNL
> 
> 
> Hi Kenn,
> 
> One question - what action in RT are you hoping will trigger this scrip?
> 
> Re the two problems:
> 
> 1) The unasked-for template email must be generated by a different scrip 
> - there's no way this scrip could use a template other than the one you 
> specified.
> 
> 2) The custom condition code seems problematic - it doesn't check for 
> transaction type, which means it will return 1 for ANY ticket 
> transaction for a ticket with status = new and custom field = your 
> value. Is that what you want, or do you want to capture a CF change?
> 
> Also, by trying to change status in the scrip action, you may be running 
> into the problem with whatever status value was on the screen overriding 
> your scrip change.
> 
> Hope this is helpful,
> Steve
> _______________________________________________
> 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