How set a default value on Custom Field when Change Owner

I made a scrip to set a value on CF when changing owner, but is not
working.
Does somebody can help me.
My code bellow:

use RT::Ticket;
use RT::CustomField;
my $Ticket = $self->TicketObj;
my $CFName = ‘Tipo de Defacement’;
my $QueueObj = $Ticket->QueueObj;
my $CFObj = RT::CustomField->new( $QueueObj->$self->CurrentUser );
$CFObj->LoadByNameAndQueue( Name => $CFName, Queue => $QueueObj->id );
$Ticket->AddCustomFieldValue( Field => $CFObj->id,
Value => “Desfiguracao de Sitio”,
RecordTransaction => 1);
Thanks.

I made a scrip to set a value on CF when changing owner, but is not
working.
Does somebody can help me.
My code bellow:

use RT::Ticket;
use RT::CustomField;
my $Ticket = $self->TicketObj;
my $CFName = ‘Tipo de Defacement’;
my $QueueObj = $Ticket->QueueObj;
my $CFObj = RT::CustomField->new( $QueueObj->$self->CurrentUser );

Have you looked in your error logs? That should always be the first step.

The line “$QueueObj->$self->CurrentUser” above, while valid Perl, is
really not at all what you want there (it’s using the value of $self as
a method name).

Either $QueueObj->CurrentUser or $self->CurrentUser is probably sufficient.

Thomas

Mauricio,

Try this:

Condition: Owner Change
Action: User-defined
Template: Global Blank
Stage: TransactionBatch

Custom Prep Code:

set the CF Default value

my $trans = $self->TransactionObj;
my $ticket = $self->TicketObj;
my $cf_obj = RT::CustomField->new($RT::SystemUser);
my $cf_name = “Tipo de Defacement”;
my $cf_value = “Desfiguracao de Sitio”;

$cf_obj->LoadByName(Name=>$cf_name);
$RT::Logger->debug(“Loaded$cf_obj->Name = “. $cf_obj->Name() .”\n”);
$ticket->AddCustomFieldValue(Field=>$cf_obj, Value=>$cf_value,
RecordTransaction=>0);

return 1;

Custom Cleanup Code:
return 1;

This works for us.

Kenn
LBNLOn Tue, Mar 1, 2011 at 5:04 AM, mauricio.leite@planalto.gov.br wrote:

I made a scrip to set a value on CF when changing owner, but is not
working.
Does somebody can help me.
My code bellow:

use RT::Ticket;
use RT::CustomField;
my $Ticket = $self->TicketObj;
my $CFName = ‘Tipo de Defacement’;
my $QueueObj = $Ticket->QueueObj;
my $CFObj = RT::CustomField->new( $QueueObj->$self->CurrentUser );
$CFObj->LoadByNameAndQueue( Name => $CFName, Queue => $QueueObj->id );
$Ticket->AddCustomFieldValue( Field => $CFObj->id,
Value => “Desfiguracao de Sitio”,
RecordTransaction => 1);
Thanks.