Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
RT::Ext...atTicket(3) User Contributed Perl DocumentationRT::Ext...atTicket(3)

NAME
       RT::Extension::RepeatTicket - Repeat tickets based on schedule

DESCRIPTION
       The RepeatTicket	extension allows you to	set up recurring tickets so
       new tickets are automatically created based on a	schedule. The new
       tickets are populated with the subject and initial content of the
       original	ticket in the recurrence.

       After you activate the plugin by	adding it to your RT_SiteConfig.pm
       file, all tickets will have a Recurrence	tab on the create and edit
       pages. To set up	a repeating ticket, click the checkbox to "Enable
       Recurrence" and fill out	the schedule for the new tickets.

       New tickets are created when you	initially save the recurrence, if new
       tickets are needed, and when your daily cron job	runs the
       rt-repeat-ticket	script.

RT VERSION
       Works with RT 5.0. Check	out 1.*	versions if you	are still using	RT 4.

INSTALLATION
       "perl Makefile.PL"
       "make"
       "make install"
	   May need root permissions

       "make initdb"
	   Only	run this the first time	you install this module.

	   If you run this twice, you may end up with duplicate	data in	your
	   database.

	   If you are upgrading	this module, check for upgrading instructions
	   in case changes need	to be made to your database.

       "patch RT"
	   Apply for 5.0.0:

	       patch -p1 -d /opt/rt5 < patches/0001-Fix-radio-checkbox-inputs-for-click-panel-behavior-o.patch

       Edit your /opt/rt5/etc/RT_SiteConfig.pm
	   Add this line:

	       Plugin('RT::Extension::RepeatTicket');

       Clear your mason	cache
	       rm -rf /opt/rt5/var/mason_data/obj

       Add bin/rt-repeat-ticket	to the daily cron job.
       Restart your webserver

MODES
   Simple Mode VS Concurrent Tickets Mode
       This extension supports two different modes for the repeat ticket
       configurations. The extension originally	only supported Concurrent
       Tickets Mode but	many users found the logic counter intuitive.

       Any existing repeat ticket configurations from previous versions	will
       be in Concurrent	Tickets	Mode unless the	definition is changed.

       The default for new repeat ticket configurations	is Simple Mode.

       Simple Mode

       In this mode tickets are	created	and start on the recurring date. If
       the lead	time field is filled out the ticket will be due	that many days
       after the recurring date. There is no check for existing	active tickets
       and if the rt-repeat-ticket script is run multiple times	for the	same
       day it will create a new	ticket for each	run.

       Concurrent Tickets Mode

       In this mode the	tickets	are created with the due date as the recurring
       date. The tickets start on the due date minus the lead time. You	can
       specify the max number of concurrent active tickets. If the
       rt-repeat-ticket	script is run multiple times for the same day it will
       only create new tickets if there	are fewer active tickets than the max
       number of concurrent active tickets.

CONFIGURATION
   $RepeatTicketCoexistentNumber
       Only used in Concurrent Tickets Mode.

       The $RepeatTicketCoexistentNumber determines how	many tickets can be in
       an active status	for a recurrence at any	time. A	value of 1 means one
       ticket at a time	can be active.	New tickets will not be	created	until
       the current active ticket is resolved or	set to some other inactive
       status. You can also set	this value per recurrence, overriding this
       config value.  The extension default is 1 ticket.

   $RepeatTicketLeadTime
       When in Simple Mode the $RepeatTicketLeadTime is	the number of days to
       add to the recurring date for the Due date of the ticket.

       When in Concurrent Tickets Mode the $RepeatTicketLeadTime becomes the
       ticket Starts value and sets how	far in advance of a ticket's Due date
       you want	the ticket to be created. This essentially is how long you
       want to give people to work on the ticket.

       For example, if you create a weekly recurrence scheduled	on Mondays and
       set the lead time to 7 days, each Monday	a ticket will be created with
       the Starts date set to that Monday and a	Due date of the	following
       Monday.

       When in Concurrent Tickets Mode,	with a number of concurrent active
       tickets greater than 1, if you set the lead time	to be larger than the
       interval	between	recurring tickets it can result	in strange behavior.
       It is recommended that the ticket lead time be smaller or equal to the
       interval	between	tickets.

       The value you set in RT_SiteConfig.pm becomes the system	default, but
       you can set this	value on each ticket as	well. The extension default is
       14 days.

   $RepeatTicketSubjectFormat
       By default, repeated tickets will have the same subject as the original
       ticket. You can modify this subject by setting a	format with the
       $RepeatTicketSubjectFormat option. This option accepts formats in the
       same form as formats for	RT searches. The placeholders take values from
       the repeated ticket, not	the original ticket, so	you can	use the	format
       to help differentiate the subjects in repeated tickets.

       For example, if you wanted to put the due date in the subject, you
       could set the format to:

	   Set($RepeatTicketSubjectFormat, '__Due__ __Subject__');

       You'll want to use values that you don't	expect to change since the
       subject won't change if the ticket value	(e.g., Due) is changed.

       Since this uses RT formats, you can create a custom format by creating
       a new RT	ColumnMap. You can see the available formats by	looking	at the
       columns available in the	Display	Columns	portlet	on the RT ticket
       search page.

   $RepeatTicketPreviewNumber
       By default, the Recurrence Preview will show the	next 5 tickets that
       will be created.	You can	modify the number of tickets to	show by
       setting the $RepeatTicketPreviewNumber option:

	   Set($RepeatTicketPreviewNumber, 10);

       Set the $RepeatTicketPreviewNumber option to 0 to hide the Recurrence
       Preview.

   @RepeatTicketSkipCustomFields
       By default, all custom field values are carried over to the new ticket.
       Use this	config option to skip some custom fields from being copied to
       the new ticket:

	   Set(@RepeatTicketSkipCustomFields, ('My Custom Field', 'Another Custom Field'));

   rt-repeat-ticket
       The rt-repeat-ticket utility evaluates all of your repeating tickets
       and creates any new tickets that	are needed. With no parameters,	it
       runs for	"today"	each day. You can also pass a --date value in the form
       YYYY-MM-DD to run the script for	a specific day.

	   bin/rt-repeat-ticket	--date 2012-07-25

       This can	be handy if your cron job doesn't run for some reason and you
       want to make sure no repeating tickets have been	missed.	Just go	back
       and run the script for the days you missed. You can also	pass dates in
       the future which	might be handy if you want to experiment with
       recurrences in a	test environment.

       WARNING

       If you run the script multiple times for	the same day then it is
       possible	multiple tickets will be created for the same repeat ticket
       configuration.

USAGE
   Initial Tickets
       The initial ticket you create for a recurrence stores the schedule and
       other details for the recurrence.  If you need to change	the recurrence
       in the future, to make it more frequent or less frequent	or anything
       else, make the changes on the original ticket.  To help you find	this
       initial ticket, which may have been resolved long ago, a	custom field
       is created on each ticket in the	recurrence with	link called "Original
       Ticket."

       When setting up the recurrence, you can use the original	ticket as an
       actual work ticket. When	doing this, you'll need	to set the Starts and
       Due dates when you create the ticket. Scheduled tickets created
       subsequently will set these values based	on the recurrence. Resolving
       the original ticket does	not cancel the recurrence.

   Start Value
       You can set a Start date	for a new recurrence. If you don't, it
       defaults	to the day you create the recurrence.

   Cancelling Recurrences
       You can cancel or end a recurrence in two ways:

          Go to the original ticket in	the recurrence and uncheck the Enable
	   Recurrence checkbox.

          Set ending conditions on the	recurrence with	either a set number of
	   recurrences or an end date.

   Recursive Recurrences
       Creating	recurrences on recurrences isn't supported and may do strange
       things.

FAQ
       I'm not seeing new recurrences. Why not?
	   A few things	to check:

	      Do you have rt-repeat-tickets scheduled in cron?	Is it running?

	      If the repeat configuration is in Concurrent Tickets Mode do
	       you have	previous tickets still in an active state? Resolve
	       those tickets or	increase the concurrent	active tickets value.

	      Is it the right day? If the repeat configuration	is in
	       Concurrent Tickets Mode remember	to subtract the	lead time
	       value to	determine the day new tickets should be	created.

	      If you set a start date and another criteria like day of	the
	       week, the new ticket will be created on the first time that day
	       of the week occurs after	the start date you set (if the start
	       date isn't on that day of the week).

       I want to enable	the repeat function only on some queues
	   To do this, insetad of applying the "Original Ticket" custom	field
	   globally, you can apply it to the chosen queues and that's it.

       some users can't	see or use this	feature	successfully.
	   Make	sure those users have "SeeCustomField" and "ModifyCusotmField"
	   rights granted for "Original	Ticket"	custom field.

SEARCHING
       To search for tickets that have recurrence enabled use the following in
       a Ticket	Search:

	   HasAttribute	= 'RepeatTicketSettings'

       This will need to be added on the Advanced tab so build the rest	of
       your search as desired and then add the clause on the Advanced tab.

METHODS
   Run(	RT::Attribute $attr, DateTime $checkday	)
       Repeat the ticket if $checkday meets the	repeat settings.  It also
       tries to	repeat more to meet config "RepeatTicketCoexistentNumber".

       Return ids of new created tickets.

   Repeat ( RT::Attribute $attr, DateTime $checkday_1, DateTime	$checkday_2,
       ... )
       Repeat the ticket for the check days that meet repeat settings.

       Return ids of new created tickets.

   MaybeRepeatMore ( RT::Attribute $attr )
       Try to repeat more tickets to meet the coexistent ticket	number.

       Return ids of new created tickets.

   SetRepeatAttribute (	RT::Ticket $ticket, %args )
       Save %args to the ticket's "RepeatTicketSettings" attribute.

       Return (	RT::Attribute, UPDATE MESSAGE )

AUTHOR
       Best Practical Solutions, LLC <modules@bestpractical.com>

BUGS
       All bugs	should be reported via email to

	   L<bug-RT-Extension-RepeatTicket@rt.cpan.org|mailto:bug-RT-Extension-RepeatTicket@rt.cpan.org>

       or via the web at

	   L<rt.cpan.org|http://rt.cpan.org/Public/Dist/Display.html?Name=RT-Extension-RepeatTicket>.

LICENSE	AND COPYRIGHT
       This software is	Copyright (c) 2014-2020	by Best	Practical Solutions

       This is free software, licensed under:

	 The GNU General Public	License, Version 2, June 1991

perl v5.42.0			  2025-01-29		 RT::Ext...atTicket(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=RT::Extension::RepeatTicket&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help