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

FreeBSD Manual Pages

  
 
  

home | help
RT::Ext...atTicket(3)  User Contributed Perl Documentation RT::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 data-
	 base.

	 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 configu-
     rations. 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 spec-
     ify 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 tick-
     ets if there are fewer active tickets than the max number of concurrent ac-
     tive 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 ex-
     tension 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 be-
     tween recurring tickets it can result in strange behavior. It is recom-
     mended that the ticket lead time be smaller or equal to the interval be-
     tween 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 $Re-
     peatTicketSubjectFormat option. This option accepts formats in the same
     form as formats for RT searches. The placeholders take values from the re-
     peated 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 Pre-
     view.

   @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 ac-
     tual 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 Re-
	 currence checkbox.

     *	 Set ending conditions on the recurrence with either a set number of re-
	 currences 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 tick-
	     ets 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.3			   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.1.quarterly>

home | help