[rt-users] Scrip to create multiple child tickets
Jennifer Koermer
JKoermer at prg.com
Tue Mar 9 12:28:51 EST 2010
Jonathan,
I'm playing with a similar problem. Somewhere on this list I found the
code that allows you to create the child tickets as a custom scrip
action.
I'm using the following to create my approval tickets. The custom file
Approvers is a comma-delmited list of email addresses. A ticket is
create for each e-mail address in the list. Should be able to modify
this to work for your situation. I haven't figured out how to add the
date, a custom field, or content with this method....
Alterntively, you could create a separate scrip with a different custom
condition for each client custom field value.
Here is what I did:
Scrip Configuration:
Condition: User Defined or As Required
Action: User Defined
Template: Global template: Blank
Stage: Transaction Create
my $queue_name = '___Approvals';
my $cf_Approver = 'Approvers';
my $override_approver = 'emailaddress at domain.com';
my $ticket = $self->TicketObj;
my $req_addr = $self->TicketObj->RequestorAddresses;
my $approvers_list = $ticket->FirstCustomFieldValue($cf_Approver);
my @approvers_array = split(',',$approvers_list);
my $child_ticket = RT::Ticket->new ( $RT::SystemUser );
$RT::Logger->info( "> Scrip #74 - Number of approvers: @approvers_array
\n" );
foreach my $approver (@approvers_array) {
my $required = @required_array[$int];
$RT::Logger->info( "> Scrip #74 - Ticket for Approver $approver\n" );
$RT::Logger->info( "> Scrip #74 - Required Status $required\n" );
my ($child_id, $child_transobj, $errormsg ) =
$child_ticket->Create(
Queue => $queue_name ,
Subject => "Approval for ticket: " . $ticket->id . " - " .
$ticket->Subject,
Cc => $override_approver,
RefersTo => $ticket->id ,
DependedOnBy => $ticket->id ,
Type => "approval" ,
Reqestor => $req_addr,
Owner => $approver,
AdminCc => $approver,
);
unless ( $child_id ) {
$RT::Logger->debug(">>Error : ". $errormsg);
return undef ;
}
}
return 1;
Hi everyone,
I have a Select Multiple custom field called 'Client'. I want my scrip
to
create a child ticket for each client selected. So far, my scrip works,
but
only creates 1 child ticket, no matter how many clients are selected.
Here
is my current scrip:
RT 3.6.5
Description: Create multiple child tix
Condition: User Defined
Action: Create Tickets
Template: Custom Template: Create multiple child tickets
Stage: Transaction Create
Custom condition:
if ($self->TransactionObj->Type ne 'Create' &&
$self->TicketObj->FirstCustomFieldValue('Client') eq 'client1) {
return 1;
}
if ($self->TransactionObj->Type ne 'Create' &&
$self->TicketObj->FirstCustomFieldValue('Client') eq 'client2') {
return 1;
}
return 0;
Here is the Template code:
===Create-Ticket: client
Subject: {$Tickets{'TOP'}->Subject}
({$Tickets{'TOP'}->FirstCustomFieldValue('Client')})
Depended-On-By: {$Tickets{'TOP'}->Id()}
Owner: testuser
Queue: Client Issues
Content: This ticket has been auto-created.
ENDOFCONTENT
Is there anyone that can help me identify why only 1 child ticket is
being
created, and not multiple? I obviously have limited skills here, so any
help would be greatly appreciated! Please please help!
Thanks so much!
Jonathan
More information about the rt-users
mailing list