To all,

This should be a real good test of our understanding of how a scrip can change a Custom Field. I have two scrips that are alomost exactly alike; difference being the value being put into the SAME CF. The actions are as follows:

First scrip action;

# set new Work-Status value

my $ticket = $self->TicketObj;
my $cf_obj = RT::CustomField->new($RT::SystemUser);
my $cf_name = "Work-Status";
my $cf_value = "Investigating Request";

$cf_obj->LoadByName( Name => $cf_name );
$RT::Logger->debug( "Loaded \$cf_obj->Name = ". $cf_obj->Name() ."\n" );
$cf_obj->AddValueForObject( Object=>$ticket, Content=>$cf_value, );

# set new Ticket Status value

$ticket->SetStatus("rq approvd");
return 1;

Second scrip action;

# set new Work-Status value

my $ticket = $self->TicketObj;
my $cf_obj = RT::CustomField->new($RT::SystemUser);
my $cf_name = "Work-Status";
my $cf_value = "Estimating Effort";

$cf_obj->LoadByName( Name => $cf_name );
$RT::Logger->debug( "Loaded \$cf_obj->Name = ". $cf_obj->Name() ."\n" );
$cf_obj->AddValueForObject( Object=>$ticket, Content=>$cf_value, );
return 1;

I have checked the DataBase after executing both og these and in the case of the first one, the value I inserted was there in the OBJECTCUSTOMFIELDVALUES with the Disabled value as 0. In the case of the second one, the value I inserted was there as well, but the Disabled value was 1, followed by another record for the same CF and the value was reverted to what it was before my scrip ran and the disabled value was 0.

So, why is this happening. Same user (me) with superuser rights modify the same CF in the same ticket in the same Queue and in the first instance, all is well, in the second, my change is reverted with the database indicating that my change was disabled and it's reversion being enabled (that, of course, makes sense if my change is gonna be rejected).

Anyone out there with any brilliant clues? I realise that the first scrip is also changin the Ticket Status, but that should not have this effect. Oh, also, the CF is a "ticket" CF and is set for "select 1 value" and both values are valid choices. Hope this tantalises someone.


Kenn
LBNL
_______________________________________________
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

Reply via email to