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; '[email protected]'
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]: 
<[email protected]<mailto:[email protected]>>
 #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 : [email protected]<mailto:[email protected]>
Content : Please review and approve this request.
Depended-On-By : TOP






________________________________
From: [email protected] 
[mailto:[email protected]] On Behalf Of Lander, Scott
Sent: Monday, September 14, 2009 5:20 PM
To: '[email protected]'
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 : [email protected]
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]: 
<[email protected]> #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]: 
<[email protected]> sent  To: 
[email protected] (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:333)
[Mon Sep 14 21:30:07 2009] [info]: 
<[email protected]> #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]: 
<[email protected]> No recipients found. Not 
sending. (/opt/rt3/bin/../lib/RT/Interface/Email.pm:338)
[Mon Sep 14 21:30:07 2009] [info]: 
<[email protected]> #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]: 
<[email protected]> sent  Cc: 
[email protected] (/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 ([email protected]) 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 ([email protected]) immediately by 
email and delete the original message.
------------------------------------------------------------------------------------
_______________________________________________
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