[rt-users] Set Custom field in template
Jon Witts
jwitts at queenmargarets.com
Wed Mar 5 04:13:57 EST 2014
So I decided to leave this alone yesterday and have a look again with fresh eyes this morning...
Changing our rt-crontool command to this:
rt-crontool --search RT::Search::FromSQL --search-arg "Queue = 'Estate'" --action RT::Action::RecordCorrespondence --template 'Auto-Close Warning HTML' --transaction last --verbose --log debug
produces the expected results.
Can anyone explain why using the action RT::Action::Notify would produce the effect of only using the first ticket variables when it runs through the template?
Thanks,
Jon
-----------------------------------------------------
Jon Witts
Director of Digital Strategy
Queen Margaret's School
Escrick Park
York YO19 6EU
Telephone: 01904 727600
Fax: 01904 728150
Website: www.queenmargarets.com
-----Original Message-----
From: rt-users-bounces at lists.bestpractical.com [mailto:rt-users-bounces at lists.bestpractical.com] On Behalf Of Jon Witts
Sent: 04 March 2014 16:24
To: rt-users at lists.bestpractical.com
Subject: Re: [rt-users] Set Custom field in template
When running this using the built-in Auto Reply template we are seeing the same issue:
rt-crontool --search RT::Search::FromSQL --search-arg "Queue = 'Estate' AND 'CF.{Auto-Close Reminder}' NOT LIKE 'TRUE'" --action RT::Action::Notify --action-arg 'All' --template 'Autoreply in HTML' --transaction last --verbose
Is this a bug with how rt-crontool is running or is there something fundamentally wrong with my rt-crontool command?
Jon
-----------------------------------------------------
Jon Witts
Director of Digital Strategy
Queen Margaret's School
Escrick Park
York YO19 6EU
Telephone: 01904 727600
Fax: 01904 728150
Website: www.queenmargarets.com
-----Original Message-----
From: rt-users-bounces at lists.bestpractical.com [mailto:rt-users-bounces at lists.bestpractical.com] On Behalf Of Jon Witts
Sent: 04 March 2014 16:01
To: rt-users at lists.bestpractical.com
Subject: Re: [rt-users] Set Custom field in template
Looking further into this...
When we run:
rt-crontool --search RT::Search::FromSQL --search-arg "Queue = 'Estate'" --action RT::Action::Notify --action-arg 'All' --template 'Auto-Close Warning HTML' --transaction last --verbose
The template is only setting the custom field on the first ticket in the search; but also the notification emails for all tickets in the search are not getting their ticket object, they are using the ticket object from the first returned ticket in the search.
i.e. The template code is this:
Subject: Auto-Close Warning: {$Ticket->Subject}
Content-Type: text/html
<!--{$Ticket->AddCustomFieldValue(Field => 'Auto-Close Reminder', Value => 'TRUE', RecordTransaction => 1 );}-->
<p>Hello,</p>
<p>This message has been automatically generated to let you know that your support request regarding "<b>{$Ticket->Subject()}</b>", has been in a "stalled" state awaiting further information from yourself for a week. This ticket was assigned an ID of "<b>{$Ticket->SubjectTag}</b>".</p>
and we have 4 tickets returned by our search. Every ticket has a notification email sent but the $Ticket->Subject variable for all notifications on all 4 tickets is the value of the first tickets subject... I guess this explains why only the first ticket is having its custom field updated, but how do we use rt-crontool to update multiple tickets and send out emails?
Thanks,
Jon
-----------------------------------------------------
Jon Witts
Director of Digital Strategy
Queen Margaret's School
Escrick Park
York YO19 6EU
Telephone: 01904 727600
Fax: 01904 728150
Website: www.queenmargarets.com
-----Original Message-----
From: rt-users-bounces at lists.bestpractical.com [mailto:rt-users-bounces at lists.bestpractical.com] On Behalf Of Jon Witts
Sent: 04 March 2014 15:49
To: rt-users at lists.bestpractical.com
Subject: Re: [rt-users] Set Custom field in template
Hi Jim,
I have edited my template code to this:
Subject: Auto-Close Warning: {$Ticket->Subject}
Content-Type: text/html
<!--{$Ticket->AddCustomFieldValue(Field => 'Auto-Close Reminder', Value => 'TRUE', RecordTransaction => 1 );}-->
<p>Hello,</p>
<p>This message has been automatically generated to let you know that your support request regarding "<b>{$Ticket->Subject()}</b>", has been in a "stalled" state awaiting further information from yourself for a week. This ticket was assigned an ID of "<b>{$Ticket->SubjectTag}</b>".</p>
Which now works; but only when the search from rt-crontool returns just one ticket. If the search returns more than one ticket then only the first ticket has it's CF changed, all others remain the same. The email is sent for the other tickets however...
What do I need to do so that the template runs this setting CF code for each ticket in the search?
Many thanks,
Jon
-----------------------------------------------------
Jon Witts
Director of Digital Strategy
Queen Margaret's School
Escrick Park
York YO19 6EU
Telephone: 01904 727600
Fax: 01904 728150
Website: www.queenmargarets.com
----------------------------------------
On 3/4/14 6:13 AM, Jon Witts wrote:
> and the contents of the template "Auto-Close Warning HTML" is as follows:
>
> --------------------------------------
>
> my $CFName = 'Auto-Close Reminder';
> my $DefaultValue = 'TRUE';
>
> unless( $self->Ticket->FirstCustomFieldValue( $CFName ) eq $DefaultValue ) {
> my( $st, $msg ) = $self->Ticket->AddCustomFieldValue(
> Field => $CFName,
> Value => $DefaultValue,
> RecordTransaction => 1 );
> }
>
> Subject: Auto-Close Warning: {$Ticket->Subject}
I think your issue is after the 'unless' where you're calling Ticket on $self. In templates the ticket object is available as just $Ticket as in the Subject line above. Try switching your $self->Ticket to $Ticket anywhere you're calling $self in the template.
More docs on templates are available here:
http://bestpractical.com/docs/rt/latest/customizing/templates.html
You'll also need to put that initial code in some curly braces { } inside the template. More info here:
https://metacpan.org/pod/Text::Template
--
This email has been processed by Smoothwall Anti-Spam - www.smoothwall.net
--
RT Training London, March 19-20 and Dallas May 20-21 http://bestpractical.com/training
This email has been processed by Smoothwall Anti-Spam - www.smoothwall.net
--
RT Training London, March 19-20 and Dallas May 20-21 http://bestpractical.com/training
This email has been processed by Smoothwall Anti-Spam - www.smoothwall.net
--
RT Training London, March 19-20 and Dallas May 20-21 http://bestpractical.com/training
This email has been processed by Smoothwall Anti-Spam - www.smoothwall.net
More information about the rt-users
mailing list