[rt-users] Problem with custom lifecycle

Simon Wilcox simonw at simonwilcox.co.uk
Wed Feb 26 14:37:27 EST 2014


Hi,

I'm setting up a new lifecycle to manage our change request process and 
I'm seeing some odd behaviour which I'm sure is something obvious.

The lifecycle is pasted below. The straight line path seems to work OK 
but whenever I try to transition from "assessed" to anything other than 
"authorised" I get an error that says I can't change from assessed to, 
say, assessment and the history indicates that  it has indeed changed 
the status to authorised before attempting to change it to some other state.

What am I doing wrong ?

Many thanks,

Simon.

     changerequest => {
         initial         => [ 'new' ],
         active          => [ 'assessment', 'assessed', 'authorised', 
'implementation', 'review'],
         inactive        => [ 'closed', 'rejected_by_cm', 
'rejected_by_cab', 'deleted' ],

         defaults => {
             on_create => 'new',
             on_merge  => 'closed',
             approved  => 'authorised',
             denied    => 'rejected_by_cm',
             reminder_on_open     => 'assessment',
             reminder_on_resolve  => 'review',
         },

         transitions => {
             ''       => [qw(new assessment)],

             # from            => [ to list ],
             new               => [qw(assessment assessed rejected_by_cm 
deleted)],
             assessment        => [qw(assessed rejected_by_cm deleted)],
             assessed          => [qw(authorised assessment 
rejected_by_cm rejected_by_cab)],
             authorised        => [qw(implementation review)],
             implementation    => [qw(review)],
             review            => [qw(closed)],
             closed            => [qw()],
             rejected_by_cm    => [qw()],
             rejected_by_cab   => [qw()],
             deleted           => [qw()],
         },
         rights => {
             '* -> deleted'      => 'DeleteTicket',
             '* -> *'            => 'ModifyTicket',
         },
         actions => [
             'new -> assessment'      => {
                 label  => 'Start Assessing', # loc
                 update => 'Respond',
             },
             'new -> assessed'  => {
                 label  => 'Ready for CAB', # loc
                 update => 'Respond',
             },
             'new -> rejected_by_cm'  => {
                 label  => 'Reject (CM)', # loc
                 update => 'Respond',
             },
             'new -> deleted'   => {
                 label  => 'Delete', # loc
             },
             'assessment -> assessed'  => {
                 label  => 'Ready for CAB', # loc
                 update => 'Respond',
             },
             'assessment -> rejected_by_cm'  => {
                 label  => 'Reject (CM)', # loc
                 update => 'Respond',
             },
             'assessed -> authorised'  => {
                 label  => 'Authorise (CAB)', # loc
                 update => 'Respond',
             },
             'assessed -> assessment'  => {
                 label  => 'Return for Assessment', # loc
                 update => 'Respond',
             },
             'assessed -> rejected_by_cm'  => {
                 label  => 'Reject (CM)', # loc
                 update => 'Respond',
             },
             'assessed -> rejected_by_cab'  => {
                 label  => 'Reject (CAB)', # loc
                 update => 'Respond',
             },
             'authorised -> implementation'  => {
                 label  => 'Release to Implementation', # loc
                 update => 'Respond',
             },
             'authorised -> review'  => {
                 label  => 'Pass to Review', # loc
                 update => 'Respond',
             },
             'implementation -> review'  => {
                 label  => 'Pass to Review', # loc
                 update => 'Respond',
             },
             'review -> closed'  => {
                 label  => 'Close CR', # loc
                 update => 'Comment',
             },
         ],
     },



More information about the rt-users mailing list