[rt-users] Question on custom scrip condition

Ken Crocker kfcrocker at lbl.gov
Tue Jun 23 11:55:59 EDT 2009


Kevin,

You can get the Id thus:
 my $Corresponder = $self->TransactionObj->CreatorObj->PrincipalId;
and you can check if it is nobody against "$RT::Nobody->Id".
Maybe someone else on the list can help you with the check for "privileged.

As for why an Email goes out or not, that depends on:

   1. valid scrip condition & action
   2. valid UserID as recipient (must be privileged and has rights to
      queue sending out Email).


Kenn
LBNL

On 6/22/2009 4:16 PM, Kevin Gagel wrote:
> Yeah, I hadn't considered that. But in that case then it shouldn't try 
> to send the email. So it'll need a check for the owner and if the 
> owner is not nobody then send the message. Still, I don't know how to 
> do either of those checks, for the owner and then to ensure it sends 
> an email.
>
> Any pointers?
>
>
> Kevin W. Gagel
> Network Administrator
> Local 5448
> My blog:
> http://mail.cnc.bc.ca/blogs/gagel
> My shared files:
> http://mail.cnc.bc.ca/users/gagel
>
>
> --- Original message ---
> Subject: Re: [rt-users] Question on custom scrip condition
> From: Ken Crocker <kfcrocker at lbl.gov>
> To: Kevin Gagel <gagel at cnc.bc.ca>
> Cc: <RT-Users at lists.bestpractical.com>
> Date: 22/06/2009 3:24 PM
>
> Kevin,
>
> What if the ticket is created WITHOUT an owner?
>
> Kenn
> LBNL
>
> On 6/22/2009 2:57 PM, Kevin Gagel wrote:
>> Thanks Ken for the script. I've altered Ken's script to this:
>> my $trans = $self->TransactionObj;
>> my $ticket = $self->TicketObj;
>> if  ($trans->Type eq 'CustomField')
>>     {my $cf = new RT::CustomField($RT::SystemUser);
>>         $cf->LoadByName(Queue => $ticket->QueueObj->id,
>>          Name => 'Urgency');
>>      return 0 unless $cf->id;
>>      if  ($trans->Field == $cf->id && $trans->NewValue eq 'URGENT')
>>           {
>>           $RT::Logger->debug('.');
>>           $RT::Logger->debug('It is an URGENT ticket so send the 
>> owner a message.');
>>           $RT::Logger->debug('.');
>>           return 1;
>>           }
>>      else
>>         {
>>         $RT::Logger->debug('.');
>>         $RT::Logger->debug('Fell through the check and into the else.');
>>         $RT::Logger->debug('.');
>>         }
>>     }
>>
>> return 0;
>> ===================================================
>> The debug output shows it is doing what's expected but I am not 
>> receiving an email. The debug output indicates that no recipients 
>> were found. So... How do I correct that?
>> I want the owner of the ticket to be notified by email if a ticket is 
>> created with an URGENT status or if the status changes to URGENT.
>>
>> Actual debug output:
>> [Mon Jun 22 21:51:02 2009] [debug]: Setting deferred recipients for 
>> attribute creation (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:689)
>> [Mon Jun 22 21:51:02 2009] [debug]: Working on mailfield Bcc; 
>> recipients are  (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:650)
>> [Mon Jun 22 21:51:02 2009] [debug]: Subject: [Email Issue: #165] 
>> URGENT: URGENT
>> From: "Kevin W. Gagel via RT" rt\@XXXXXX.bc.ca
>> Reply-To: rt\@XXXXXX.bc.ca
>> Message-ID: <rt-3.8.2-19683-1245707462-1931.165-12-0 at CNC IT Services>
>> Precedence: bulk
>> X-RT-Loop-Prevention: CNC's Ticket System
>> RT-Ticket: CNC's Ticket System #165
>> Managed-by: RT 3.8.2 (http://www.bestpractical.com/rt/)
>> RT-Originator: gagel at XXXXXX.bc.ca
>> MIME-Version: 1.0
>> Content-Transfer-Encoding: 8bit
>> Content-Type: text/plain; charset="utf-8"
>> X-RT-Original-Encoding: utf-8 
>> (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:657)
>> [Mon Jun 22 21:51:02 2009] [debug]: Removing deferred recipients from 
>> Bcc: line (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:680)
>> [Mon Jun 22 21:51:02 2009] [debug]: Setting deferred recipients for 
>> attribute creation (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:689)
>> [Mon Jun 22 21:51:02 2009] [debug]: No recipients found for deferred 
>> delivery on transaction #2236 
>> (/opt/rt3/bin/../lib/RT/Action/SendEmail.pm:702)
>>
>>
>> Kevin W. Gagel
>> Network Administrator
>> Local 5448
>> My blog:
>> http://mail.cnc.bc.ca/blogs/gagel
>> My shared files:
>> http://mail.cnc.bc.ca/users/gagel
>>
>>
>> --- Original message ---
>> Subject: Re: [rt-users] Question on custom scrip condition
>> From: Ken Crocker <kfcrocker at lbl.gov>
>> To: Kevin Gagel <gagel at cnc.bc.ca>
>> Cc: RT Users <RT-Users at lists.bestpractical.com>
>> Date: 16/06/2009 3:56 PM
>>
>> Kevin,
>>
>>
>> Here's one we use for when the development step of a ticket (CF 
>> "Work-State") is changed to "Review Approved":
>>
>> # condition execution on CF Review Process
>>
>> my $trans = $self->TransactionObj;
>> my $ticket = $self->TicketObj;
>>
>> if  ($trans->Type eq 'CustomField')
>>     {my $cf = new RT::CustomField($RT::SystemUser);
>>         $cf->LoadByName(Queue => $ticket->QueueObj->id,
>>          Name => "Work-State");
>>      return 0 unless $cf->id; 
>>      if  ($trans->Field == $cf->id &&
>>           $trans->NewValue eq "Review Complete-Approved")
>>           {
>>            return 1;
>>           }
>>     }
>>
>> return 0;
>>
>> Just plug in your CF name and value you want and you're set. Hope 
>> this helps.
>>
>> Kenn
>> LBNL
>>
>> On 6/16/2009 2:53 PM, Kevin Gagel wrote:
>>> My users don't want to use priorities so they've had me create 4 
>>> levelsfor urgency. They only want to be notified by email on an item 
>>> that hasthe highest urgency level set. So I want to setup a custom 
>>> conditionthat tests for that level and then sends an email to the 
>>> user if thatspecific level is set.
>>>
>>> So, I have a custom field of "Urgency" which can have a value of 
>>> URGENT, High, Medium, Low, or Project.
>>> I have the template made already for the email to be sent out and 
>>> thescrip configured for it. I just don't know how to write the 
>>> customcondition to put into the scrip. How do I write the condition 
>>> to test for "URGENT" and indicate the action to send the email?
>>>
>>> All the references I'm finding in the RT Essentials have me a bit 
>>> confused, am I supposed to right a new module to make this scrip or 
>>> can I just add the perl code to the condition (not that I know what 
>>> code I have to enter just yet).
>>>
>>> Kevin W. Gagel
>>> Network Administrator
>>> Local 5448
>>> My blog:
>>> http://mail.cnc.bc.ca/blogs/gagel
>>> My shared files:
>>> http://mail.cnc.bc.ca/users/gagel
>>>
>>>
>>>  
>>> ------------------------------------------------------------------------
>>>  
>>> _______________________________________________ 
>>> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users 
>>>  
>>> Community help: http://wiki.bestpractical.com 
>>> Commercial support: sales at bestpractical.com 
>>>  
>>>  
>>> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
>>> Buy a copy at http://rtbook.bestpractical.com
>>  
>> ------------------------------------------------------------------------
>>  
>> _______________________________________________ 
>> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users 
>>  
>> Community help: http://wiki.bestpractical.com 
>> Commercial support: sales at bestpractical.com 
>>  
>>  
>> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
>> Buy a copy at http://rtbook.bestpractical.com
> ------------------------------------------------------------------------
>
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
>
> Community help: http://wiki.bestpractical.com
> Commercial support: sales at bestpractical.com
>
>
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
> Buy a copy at http://rtbook.bestpractical.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20090623/10fafcd8/attachment.htm>


More information about the rt-users mailing list