CustomActionQchange: Difference between revisions
Jump to navigation
Jump to search
(CustomActionQchange, new page.) |
(→Code) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
Below is a custom action module for adding RT::Action:Qchange via crontool that can be called for via a query similar to this "--action RT::Action::QChange --action-arg | Below is a custom action module for adding RT::Action:Qchange via crontool that can be called for via a query similar to this "--action RT::Action::QChange --action-arg YOURNEWQUEUE --template 'blank'" | ||
Example <code> rt-crontool --transaction last --search RT::Search::FromSQL --search-arg "Queue = 'SLA’ AND (Status='new' OR Status='open')" --condition RT::Condition::Overdue --action RT::Action::QChange --action-arg QUEUE --template 'SLA-escalation'</code> | |||
Create the file in a place where RT can call it (notice not to put it at a place that will be overwritten at an RT upgrade, ex /opt/rt4/lib/RT/Action/Qchange.pm | Create the file in a place where RT can call it (notice not to put it at a place that will be overwritten at an RT upgrade, ex /opt/rt4/lib/RT/Action/Qchange.pm | ||
Line 5: | Line 9: | ||
This script was created by Andy Smith. | This script was created by Andy Smith. | ||
Running on RT version 4.4.1 | |||
== Code == | |||
<pre> | |||
# BEGIN BPS TAGGED BLOCK {{{ | # BEGIN BPS TAGGED BLOCK {{{ | ||
# | # | ||
Line 33: | Line 39: | ||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
# 02110-1301 or visit their web page on the internet at | # 02110-1301 or visit their web page on the internet at | ||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. | # <nowiki>http://www.gnu.org/licenses/old-licenses/gpl-2.0.html</nowiki>. | ||
# | # | ||
# | # | ||
Line 54: | Line 60: | ||
# | # | ||
# END BPS TAGGED BLOCK }}} | # END BPS TAGGED BLOCK }}} | ||
package RT::Action::QChange; | package RT::Action::QChange; | ||
Line 72: | Line 77: | ||
sub Prepare { | sub Prepare { | ||
my $self = shift; | |||
return 1; | |||
} | } | ||
Line 80: | Line 84: | ||
sub Commit { | sub Commit { | ||
my $self = shift; | |||
my $argument = $self->Argument; | |||
my $argument = $self->Argument; | |||
unless ( $argument ) { | unless ( $argument ) { | ||
RT::Logger->error("Argument is mandatory for Test action"); | |||
return 0; | |||
} | } | ||
my ($status, $msg) = $self->TicketObj->SetQueue("$argument"); | |||
if ( not $status ) { | |||
RT::Logger->error("Could not reassign queue: $msg"); | |||
return 0; | |||
} | } | ||
Line 102: | Line 104: | ||
1; | 1; | ||
</pre> | |||
Latest revision as of 15:03, 4 November 2016
Below is a custom action module for adding RT::Action:Qchange via crontool that can be called for via a query similar to this "--action RT::Action::QChange --action-arg YOURNEWQUEUE --template 'blank'"
Example rt-crontool --transaction last --search RT::Search::FromSQL --search-arg "Queue = 'SLA’ AND (Status='new' OR Status='open')" --condition RT::Condition::Overdue --action RT::Action::QChange --action-arg QUEUE --template 'SLA-escalation'
Create the file in a place where RT can call it (notice not to put it at a place that will be overwritten at an RT upgrade, ex /opt/rt4/lib/RT/Action/Qchange.pm
This script was created by Andy Smith.
Running on RT version 4.4.1
Code
# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # # This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC # <sales@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) # # # LICENSE: # # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. # # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. # # # CONTRIBUTION SUBMISSION POLICY: # # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) # # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that # you are the copyright holder for those contributions and you grant # Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # # END BPS TAGGED BLOCK }}} package RT::Action::QChange; use strict; use warnings; use base qw(RT::Action::Notify); use Email::Address; =head1 Notify Owner or AdminCc If the owner of this ticket is Nobody, notify the AdminCcs. Otherwise, only notify the Owner. =cut sub Prepare { my $self = shift; return 1; } my $self; sub Commit { my $self = shift; my $argument = $self->Argument; unless ( $argument ) { RT::Logger->error("Argument is mandatory for Test action"); return 0; } my ($status, $msg) = $self->TicketObj->SetQueue("$argument"); if ( not $status ) { RT::Logger->error("Could not reassign queue: $msg"); return 0; } RT::Base->_ImportOverlays(); return 1; } 1;