[rt-users] Solved: Problem calling a custom scrip
Lander, Scott
slander at hearstsc.com
Tue Sep 15 11:39:20 EDT 2009
After realizing my scrip was indeed being called (although not obvious from the original logs) I turned to the template.
With the following template, it all works.
Note, the ===Create-Ticket: line, and the ENDOFCONTENT lines are important, and the order of the lines seems to matter somewhat - IE, in the order shown on the RT-ESSENTIALS book, it wouldn't work for me... Also, note that the Owner line refers to the ID of the owner, which may not be the email of the owner, depending on your system.
Template:
===Create-Ticket: manager-approval
Subject: Approval of {$Tickets{'TOP'}->Subject}
Depended-On-By: TOP
Queue: ___Approvals
Type: approval
Owner: SLANDER
Refers-To: {$Tickets{'TOP'}->Id()}
Content : Please review and approve this request.
ENDOFCONTENT
________________________________
From: Lander, Scott
Sent: Tuesday, September 15, 2009 7:52 AM
To: Lander, Scott; 'rt-users at lists.bestpractical.com'
Subject: RE: Problem calling a custom scrip - Update, but, still stuck.
I changed my scrip to be:
if ($self->TransactionObj->Type ne "Create") {
$RT::Logger->info( "> Not a Create \n" );
return 0; # This is an update transaction
}
my $ticket = $self->TicketObj;
my $CustomFields = $ticket->QueueObj->TicketCustomFields();
while (my $CustomField = $CustomFields->Next()) {
my $nam = $CustomField->Name;
my $val = $self->TicketObj->FirstCustomFieldValue($nam);
$RT::Logger->info( "> CustomField Name: $nam \n" );
$RT::Logger->info( "> CustomField Value: $val \n" );
if ($val =~ /YES/){
$RT::Logger->info( "> This is a change control \n" );
return 1;
}
}
$RT::Logger->info( "> Default 0 exit \n" );
return 0;
And, now I see in the logs;
[Tue Sep 15 04:34:13 2009] [info]: > CustomField Name: Business Unit ((eval 1579):12)
[Tue Sep 15 04:34:13 2009] [info]: > CustomField Value: Charlotte ((eval 1579):13)
[Tue Sep 15 04:34:13 2009] [info]: > CustomField Name: Change Control ((eval 1579):12)
[Tue Sep 15 04:34:13 2009] [info]: > CustomField Value: YES ((eval 1579):13)
[Tue Sep 15 04:34:13 2009] [info]: > This is a change control ((eval 1579):16)
[Tue Sep 15 04:34:13 2009] [info]: <rt-3.8.4-3172-1252989253-875.246-3-0 at hearstsc.com<mailto:rt-3.8.4-3172-1252989253-875.246-3-0 at hearstsc.com>> #246/34573 - Scrip 3 On Create Autoreply To Requestors (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:302)
So, by scrip is being called, but, no tickets are being created;
The scrip settings are;
Condition: User Defined (as above)
Action : Create Tickets
Template : Monitor:Approval
Stage : TransactionCreate
The only other part to this that I know of is the Template. Other then the template, is there anything else I need to do to auto create the approval tickets?
Here is my template;
Subject: Approval of { $Tickets{'TOP'}->Subject() }
Queue: ___Approvals
Type : approval
Owner : slander at hearstsc.com<mailto:slander at hearstsc.com>
Content : Please review and approve this request.
Depended-On-By : TOP
________________________________
From: rt-users-bounces at lists.bestpractical.com [mailto:rt-users-bounces at lists.bestpractical.com] On Behalf Of Lander, Scott
Sent: Monday, September 14, 2009 5:20 PM
To: 'rt-users at lists.bestpractical.com'
Subject: [rt-users] Problem calling a custom scrip
All,
In 3.8.4, I am attempting to set up an approval queue. The idea is that if a Custom Field named "Change Control" is set to value 'YES" then a new ticket will be created to gather the required approval.
This is in queue "Monitoring".
So, in the queue I have a Scrip: Monitor:approval, with a User Defined condition, Action is Create Tickets, Template is Monitor:Approval, Stage TransactionComplete.
My Custom Condition originally was:
if ($self->TransactionObj->Type ne "Create") {
return 0; # This is an update transaction
}
my $CustomFields = $ticket->QueueObj->TicketCustomFields();
while (my $CustomField = $CustomFields->Next()) {
if ($self->TicketObj->FirstCustomFieldValue('Change Control') =~ /Yes/i) {
return 1;
}
return 0;
When that failed to do anything, I just changed it to "return 1;".
My template is:
Subject: Approval of { $Tickets{'TOP'}->Subject() }
Queue: ___Approvals
Type : approval
Owner : slander at hearstsc.com
Content : Please review and approve this request.
Depended-On-By : TOP
When I create a ticket and select YES for my CF, I see this in my log; (note, my custom scrip is #84)
[Mon Sep 14 21:30:07 2009] [info]: <rt-3.8.4-3173-1252963807-747.239-3-0 at hearstsc.com> #239/34524 - Scrip 3 On Create Autoreply To Requestors (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:302)
[Mon Sep 14 21:30:07 2009] [info]: <rt-3.8.4-3173-1252963807-747.239-3-0 at hearstsc.com> sent To: slander at hearstsc.com (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:333)
[Mon Sep 14 21:30:07 2009] [info]: <rt-3.8.4-3173-1252963807-1595.239-4-0 at hearstsc.com> #239/34524 - Scrip 4 On Create Notify AdminCcs (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:302)
[Mon Sep 14 21:30:07 2009] [info]: <rt-3.8.4-3173-1252963807-1595.239-4-0 at hearstsc.com> No recipients found. Not sending. (/opt/rt3/bin/../lib/RT/Interface/Email.pm:338)
[Mon Sep 14 21:30:07 2009] [info]: <rt-3.8.4-3173-1252963807-1456.239-82-0 at hearstsc.com> #239/34524 - Scrip 82 On Create Notify CCs (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:302)
[Mon Sep 14 21:30:07 2009] [info]: <rt-3.8.4-3173-1252963807-1456.239-82-0 at hearstsc.com> sent Cc: slander at hearstsc.com (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:333)
[Mon Sep 14 21:30:07 2009] [info]: Ticket 239 created in queue 'Monitoring' by SLANDER (/opt/rt3/bin/../lib/RT/Ticket_Overlay.pm:667)
Can anyone see my mistake? Or, am I going about this wrong?
------------------------------------------------------------------------------------
This e-mail message is intended only for the personal use of the recipient(s) named above. If you are not an intended recipient, you may not review, copy or distribute this message. If you have received this communication in error, please notify the Hearst Service Center (cadmin at hearstsc.com) immediately by email and delete the original message.
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
This e-mail message is intended only for the personal use of the recipient(s) named above. If you are not an intended recipient, you may not review, copy or distribute this message. If you have received this communication in error, please notify the Hearst Service Center (cadmin at hearstsc.com) immediately by email and delete the original message.
------------------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20090915/30a379a6/attachment.htm>
More information about the rt-users
mailing list