The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

RT::Extension::MoveRules - control ticket movements between queues

DESCRIPTION

If you move tickets between queues a lot then probably you want to control this process. This extension allows you to configure rules which are required to move a ticket from a queue to another queue, for example if custom field X is equal to Y then a ticket can be moved from queue A to B. As well you can define which fields should be set before move.

INSTALLATION

This extension works with RT 3.8 and depends on RT::Condition::Complex. Otherwise installation process is usuall:

    perl Makefile.PL
    make
    make install

CONFIGURATION

Extension is controlled with one config option @MoveRules with the following syntax:

    Set( @MoveRules,
        {
            From       => 'queue',
            To         => 'queue',
            Rule       => 'a rule',
            Condition  => 'a rule',
            ShowAction => 1/0,

        },
        ...
    );

From and To

These keys define queues either by name or id. Both are mandatory options. Example:

    Set( @MoveRules,
        { From => 'X', To => 'Y' },
    );

Such configuration allows users to move tickets from queue "X" to "Y", but not any other move.

ShowAction

Boolean option that controls whether action for this move is displayed in the action menu (Open, Take) or not. By default no actions are displayed.

Rule

Rule is a condition defining additional limits on the move. This is a string with syntax implemented by RT::Condition::Complex and RT::Extension::ColumnMap. Syntax is close to TicketSQL, slightly different, some examples:

    Rule => 'Subject = "good" AND Status = "open"',

Condition

Condition is very similar to "Rule". The difference is that users can not see a condition until they try to move a ticket.

Moving limits between condition is up to you, but probably condition is better to leave with checks if a field is empty or not. For example:

    Condition => 'CustomField{"X"} is not empty',

LICENSE

Under the same terms as perl itself.

AUTHOR

Ruslan Zakirov <Ruslan.Zakirov@gmail.com>