On 8/9/2011 5:28 PM, Kevin Falcone wrote:
On Tue, Aug 09, 2011 at 02:59:44PM -0400, Jeff Blaine wrote:
I'm confused and can't see that I am doing anything
wrong.  Either I *am* doing something wrong, or there's
a really bizarre bug in 3.8.10.  Surely it's the former.

Since you don't say what the condition of the Scrip is, it's hard to
know what the TransactionObj actually is, and whether or not it's
relevant.

But without knowing more about the contents of Transactions and
ObjectCustomFieldValues I'd be guessing at problems.

Not that I think it matters (because disabling this scrip
still shows Discovery Method being set somewhere at ticket
creation)... but FWIW

===================================================================

Condition: On Create
Action: User Defined
Template: Global template: Blank
Stage: TransactionCreate

===================================================================
my $requestor_address = lc($self->TicketObj->RequestorAddresses);
my $subject = lc($self->TicketObj->Subject);

my %subj2discmethod = (
    'foo rule'       => 'Foo Sensor',
    'active proxy'   => 'Proxy',
);

my $discmethodset = 0;

foreach my $key (keys %subj2discmethod) {
    if ($subject =~ $key) {
$RT::Logger->info("Subject '$subject' setting 'Discovery Method' to '$subj2discmethod{$key}'");
        my $cf = RT::CustomField->new($RT::SystemUser);
        $cf->LoadByName(Name => 'Discovery Method');
        $self->TicketObj->AddCustomFieldValue(Field => $cf,
                                      Value => $subj2discmethod{$key},
                                      RecordTransaction => 0);
        return 1;
    }
}

$RT::Logger->info("No Discovery Method set by scrip 13. No matches. Subject was '$subject' and requestor was '$requestor_address'");

my $trans = $self->TransactionObj;
my $ticket = $self->TicketObj;
my $testcf = new RT::CustomField($RT::SystemUser);

$testcf->LoadByName(Queue => $ticket->QueueObj->id, Name => "Discovery Method");
my $oldv = trim($self->TransactionObj->OldValue());
my $newv = trim($self->TransactionObj->NewValue());
$RT::Logger->info("Old value '$oldv' for Discovery Method. New value '$newv'");

return 1;
===================================================================

--------
RT Training Sessions (http://bestpractical.com/services/training.html)
*  Chicago, IL, USA  September 26 & 27, 2011
*  San Francisco, CA, USA  October 18 & 19, 2011
*  Washington DC, USA  October 31 & November 1, 2011
*  Melbourne VIC, Australia  November 28 & 29, 2011
*  Barcelona, Spain  November 28 & 29, 2011

Reply via email to