[rt-users] Source of new ticket: Web or email?

Kenneth Crocker KFCrocker at lbl.gov
Thu Feb 15 17:57:20 EST 2007


Stephen,


	Thanks for looking at this. Originally, the following code put the 
subject info into CF "Description" and it worked:

#
#----------------------------------------------------------------------------
# Custom condition: none
#----------------------------------------------------------------------------
# Custom action preparation code:

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

$cf_obj = RT::CustomField->new($RT::SystemUser);
$cf_name = "Description";
$cf_value = $self->TicketObj->Subject();

$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, );
return 1;

	However, I modified it (see earlier code) to do this only if it was an 
E_mail ticket. I have the condition set to "OnCreate" and the action as 
"User Defined" and the code in the custom action preparation area. Upon 
execution, the ticket is created via E_mail but the description is 
blank, whereas before it was the same as the subject. I have not 
accessed the logs (another department and they are busy) so I'll try 
that next, maybe I'll get a clue there. Thanks again.

Kenn
LBNL

Stephen Turner wrote:
> At Thursday 2/15/2007 01:42 PM, Kenneth Crocker wrote:
>> To all,
>>
>>
>>         I am trying to determine if a ticket is being created via 
>> E_mail and if so move the subject to a custom field named 
>> "Description". I tried to use this code as follows:
>>
>> #----------------------------------------------------------------------------
>> # Custom condition: none
>> #----------------------------------------------------------------------------
>> # Custom action preparation code:
>>
>> my $trans;
>> my $msgattr;
>> my $cf_obj;
>> my $cf_name;
>> my $cf_value;
>>
>> # set description
>>
>> $cf_obj = RT::CustomField->new($RT::SystemUser);
>> $cf_name = "Description";
>> $cf_value = $self->TicketObj->Subject();
>> $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, );
>>
>> # determine source of transaction
>>
>> $trans = $self->TransactionObj;
>> return 0 unless $trans->Type eq "Create";
>> $msgattr = $trans->Message->First;
>> return 0 unless $msgattr;
>> return 1 if $msgattr->GetHeader('Received');
>> return 0;
>>
>>
>>         It isn't working for me. Can anyone find the problem in my 
>> code? Thanks.
> 
> 
> Kenn,
> 
> The code looks correct. In what way is it not working? Do you see 
> anything in the RT log? Have you tried putting logging statements in the 
> code to see how far it's getting? Did you remember to set the condition 
> to 'User Defined' in the scrip definition?
> 
> Steve



More information about the rt-users mailing list