[rt-users] notification

Kenneth Crocker kfcrocker at lbl.gov
Mon Dec 13 15:12:50 EST 2010


Kurt,

Not sure why you start the scrip with a "{" and end with one. Just start
with the "my $trans=".

Your code should be in the "Prep Action" and you should add this at the end
of the code you've got:

else {
     $to_address= "rubble";

### after the above line, the code should look like this: ####

# copy value of "To_Address" to Custom Field "Whatever you named it"

my $cf_name = "Whatever it is";

$cf_obj->LoadByName( Name => $cf_name );
$RT::Logger->debug( "Loaded \$cf_obj->Name = ". $cf_obj->Name() ."\n" );
$ticket->AddCustomFieldValue(Field=>$cf_obj, Value=>$to_address,
RecordTransaction=>0);

return 1;

Then make sure the "Cleanup Action" ends with a "return 1;" or the scrip
doesn't finish.
Also, not sure why you start the scrip with a "{" and end with one. Just
start with the "my $trans=".


The Template should refer to the value in the CF you created for the "To
Address", like this:

To: {$Ticket->FirstCustomFieldValue('To Address Value')}@4j.lane.edu
Subject: Request Titled: "{$Ticket->Subject}" is ready to Migrate or
whatever

That should do it.

Kenn
LBNL
On Mon, Dec 13, 2010 at 11:15 AM, Kurt Engle <engle at 4j.lane.edu> wrote:

> So here is the code that I am working with inside my template:
> Script:
> Condition: On Create
> Action: Notify Other Recipients
> Template:  My Notify
> Stage: TransactionBatch
>
> 'My Notify' code
> -------------------------------------------
> {
> my $trans = $self->TransactionObj;
> my $ticket = $self->TicketObj;
> my $cf = new RT::CustomField($RT::SystemUser);
> $cf->LoadByName(Queue => $ticket->QueueObj->id,Name => "Building");
> return 0 unless $cf->id;
> my $cfvalue = $ticket->FirstCustomFieldValue('Building');
>
> my $to_address = "";
>
> if ($cfvalue =~ /Sheldon/) {
>      $to_address = "sheldonhd";
> }
> elsif ($cfvalue =~ /North/) {
>      $to_address = "northhd";
> }
> elsif ($cfvalue =~ /South/) {
>      $to_address = "southhd";
> }
> elsif ($cfvalue =~ /Churchill/) {
>      $to_address = "churchillhd";
> }
> elsif ($cfvalue =~ /Kennedy/) {
>      $to_address = "kennedyhd";
> }
> elsif ($cfvalue =~ /Kelly/) {
>      $to_address = "kellyhd";
> }
> elsif ($cfvalue =~ /Computer/) {
>      $to_address = "engle";
> else {
>      $to_address= "rubble";
> }
> return 1;
> }
>
>
> To: {$to_address}@4j.lane.edu <to_address%7D at 4j.lane.edu>"}
> Subject: New Ticket #{ $Ticket->Id() } has been created
>
> Time to go to work
> ----------------------------------
>
> In my debug log, I am not even seeing the script being called that contains
> this template. If I strip everything above the 'To:' field, the scrip and
> template gets called but the e-mail is not sent even when I hard code the
> e-mail address.
>
>
>
> Kurt Engle
>
> ------------------------------
> *From: *"Kevin Falcone" <falcone at bestpractical.com>
> *To: *rt-users at lists.bestpractical.com
> *Sent: *Friday, December 10, 2010 12:23:28 PM
> *Subject: *Re: [rt-users] notification
>
> On Fri, Dec 10, 2010 at 12:08:05PM -0800, Kenneth Crocker wrote:
> >    Kevin,
> >    The template would look like this:
>
> Kenn
>
> I'm perfectly able to write the scrip and template in question, but
> since Kurt has a half-working template I was curious what *he* was
> doing.  Involving a CustomField seems like a bit of overkill.
>
> -kevin
>
> >    To: {$Ticket->FirstCustomFieldValue('ToOverride')}@[1]lbl.gov
> >    Subject: Request Titled: "{$Ticket->Subject}" is ready to Migrate!
> >
> >    A scrip based on whatever condition would do this:
> >
> >    my $trans = $self->TransactionObj;
> >    my $ticket = $self->TicketObj;
> >    my $cf_obj = new RT::CustomField($RT::SystemUser);
> >    my $cf_name = "ToOverride";
> >
> >    if condition is "A"
> >    $my $cf_value = "the To address you want for "A" condition";
> >    elsif condition is "B"
> >    $my $cf_value = "the To address you want for "B" condition";
> >
> >    and on and on till you're thru.
> >
> >    then, set the Custom Field as the last piece of action code:
> >
> >    $cf_obj->LoadByName(Name=>$cf_name);
> >    $RT::Logger->debug("Loaded\$cf_obj->Name = ". $cf_obj->Name() ."\n" );
> >    $ticket->AddCustomFieldValue( Field=>$cf_obj, Value=>$cf_value,
> RecordTransaction=>0 );
> >
> >    return 1;
> >
> >    Then write a notification scrip to use the new template based on your
> conditions.
> >    Use "TransactioBatch" for both scrips.
> >
> >    Hope this helps.
> >
> >    Kenn
> >    LBNL
> >
> >    On Fri, Dec 10, 2010 at 11:55 AM, Kevin Falcone <[2]
> falcone at bestpractical.com> wrote:
> >
> >      On Fri, Dec 10, 2010 at 11:07:32AM -0800, Kurt Engle wrote:
> >      > Actually found a nice example of creating a template to send out
> an e-mail. RTFM....
> >      >
> >      > However, I am having a bit of a problem constructing the To:
> field. Basically, I have a
> >      > varialble '$toAddress' that is set to an e-mail address by some
> prior code.
> >
> >      Where in the code is it set. It would really need to be in that
> >      template
> >      > Here is my template code to construct the To: field:
> >      > To: { $toAddress }
> >      > Subject: Ticket #{ $Ticket->Id()} {$Ticket->Subject()}
> >      > A new ticket has been created for you in the HelpDesk Queue.
> >      >
> >      > { $RT::WebURL } Ticket/Display.html?id={ $Ticket->Id() }
> >      >
> >      > However, I keep getting 'recipient not found'.
> >
> >      In debug logging mode, RT will actually dump copies of the email
> being
> >      processed into the logs, which would show you the To:
> >
> >      Please note that if To: is your email address and you're the actor
> on
> >      this ticket while testing, you may have told RT not to send you
> email
> >      in that case using $NotifyActor
> >      -kevin
> >
> >      >
> >
>  ----------------------------------------------------------------------------------------------
> >      >
> >      > From: "Kevin Falcone" <[3]falcone at bestpractical.com>
> >      > To: [4]rt-users at lists.bestpractical.com
> >      > Sent: Friday, December 10, 2010 10:03:04 AM
> >      > Subject: Re: [rt-users] notification
> >      >
> >      > On Fri, Dec 10, 2010 at 09:55:07AM -0800, Kurt Engle wrote:
> >      > > That is correct. But how do I make use of the
> RT::Action::SendEmail module to send the
> >      > > notification incorporating my To: field. Or is there a better
> way to send out a custom
> >      > > notification?
> >      >
> >      > You use one of the standard Notify actions and a custom template.
> You
> >      > don't write any code in the action and you don't call the action
> >      > directly.
> >      >
> >      > -kevin
> >      >
> >      > > From: "Kevin Falcone" <[5]falcone at bestpractical.com>
> >      > > To: [6]rt-users at lists.bestpractical.com
> >      > > Sent: Friday, December 10, 2010 8:59:25 AM
> >      > > Subject: Re: [rt-users] notification
> >      > >
> >      > > On Thu, Dec 09, 2010 at 11:42:03AM -0800, Kurt Engle wrote:
> >      > > > I am looking for a way to send an email from RT to a specified
> e-mail address that
> >      > is not
> >      > > an
> >      > > > account in RT or associated with the ticket as a requestor,
> watcher, CC:,
> >      > BCC:...etc....
> >      > > >
> >      > > > I have the logic down to specify the e-mail address and have
> some nasty perl code to
> >      > > actually
> >      > > > send the e-mail. But, it seems that RT has some internal
> module(s) that handle what
> >      > the
> >      > > nasty
> >      > > > perl code is doing.
> >      > > >
> >      > > > I can see the RT::Action:SendEmail module, but how do I
> incorporate that into a
> >      > script
> >      > > that
> >      > > > allows me to do what I am looking to do?
> >      > >
> >      > > Sounds like you actually just want to use a normal Notify
> action, but
> >      > > have the template contain your ugly logic that sets up the To:
> line
> >      > > based on your perl code
> >      > >
> >      > > -kevin
> >
> > References
> >
> >    Visible links
> >    1. http://lbl.gov/
> >    2. mailto:falcone at bestpractical.com
> >    3. mailto:falcone at bestpractical.com
> >    4. mailto:rt-users at lists.bestpractical.com
> >    5. mailto:falcone at bestpractical.com
> >    6. mailto:rt-users at lists.bestpractical.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20101213/8f580932/attachment.html>


More information about the rt-users mailing list