Gene,

Thanks a bunch! I'll try it in a couple days and let you know. thanks again for the great help.

Kenn
LBNL

Gene LeDuc wrote:
Kenn, here's the condition code from one of my scrips that triggers when CF 'DMCA State' changes to 'TNS_Restore''. This uses TransactionCreate, not Batch.

{ ### Testing CF triggers
  my $Transaction = $self->TransactionObj;
  my $Ticket = $self->TicketObj;
  my $val = $Transaction->Type eq "CustomField"
         && $Transaction->Field == get_custom_id('DMCA State')
         && $Transaction->NewValue eq 'TNS Restore';
  return $val;

  ### Returns custom field ID number from Name
  ### usage: $id = get_custom_id($name);
  sub get_custom_id {
    my $target_name = $_[0];
    my $cf = RT::CustomField->new($RT::SystemUser);
    $cf->LoadByNameAndQueue(Name=>$target_name, Queue=>$Ticket->QueueObj);
    return $cf->id if $cf;
    return undef;
  }
}

Then my Prep code would be something like:
### Sets status to 'rejected'
my $Ticket = $self->TicketObj;
$Ticket->SetStatus('rejected');

Hope this helps you,
Gene

At 12:45 PM 5/10/2007, Kenneth Crocker wrote:
Gene,

You're hints were helpful, thank you. Now I am discovering that what I really want to do is automatically change the ticket status based on a particular CF being change to a certain value. I'm no Perl guru. I have read alot about TransactionBatch, so I know I have to enable that, but I'm not sure how to approach evaluating a single CF or even how to get it to be evaluated before sending a notification and changing the status. Any help here would be greatly appreciated. Thanks in advance.

Kenn
LBNL

Gene LeDuc wrote:
Hi Kenn,
In addition to what Steve pointed out, I think you have an error in your condition code. The second term of
                $self->Ticket->FirstCustomFieldValue('Approval-Status')
should probably be TicketObj instead of Ticket.
Something I started doing with my scrips to avoid making Ticket/TicketObj mistakes when jumping between scrips and templates is I always start my scrips off with the following 2 lines:
  my $Ticket = $self->TicketObj;
  my $Transaction = $self->TransactionObj;
Now I can just copy code snippets between templates and scrips without having to change any of the Transaction or Ticket references (for instance, ticket status is $Ticket->Status whether it's in a scrip or template). This is especially handy when I have subroutines that I use in both scrips and templates. Plus I never get the $self->Ticket or $self->$TicketObj errors anymore.
Gene
At 10:14 PM 5/7/2007, 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
_______________________________________________
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


--
Gene LeDuc, GSEC
Security Analyst
San Diego State University

_______________________________________________
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