Lifecycle mapping

Hello,

I’ve created my first new lifecycle called “igs” and assigned it to à queue.

Set(%Lifecycles,
igs => {
initial => [ ‘new’ ],
active => [ ‘open’, ‘stalled’, ‘ToTest’, ‘IsTested’ ],
inactive => [ ‘resolved’, ‘rejected’, ‘deleted’ ],

    # Transitions d'un statut vers un autre
    transitions => {
        ''       => [qw(new open resolved)],

        # from   => [ to list ],
        new      => [qw(open ToTest IsTested stalled resolved rejected deleted )],
        open     => [qw(new ToTest IsTested stalled resolved rejected deleted )],
        stalled  => [qw(new open ToTest IsTested rejected resolved deleted )],
        resolved => [qw(new open ToTest IsTested stalled rejected deleted )],
        rejected => [qw(new open ToTest IsTested stalled resolved deleted )],
        deleted  => [qw(new open ToTest IsTested stalled rejected resolved )],
        ToTest   => [qw(IsTested new open stalled rejected resolved )],
        IsTested => [qw(ToTest new open stalled rejected resolved )],
    },

    # Actions
    actions => [
        'new -> ToTest' => {
            label  => 'ToTest',
            update => 'Comment',
        },
        'ToTest -> IsTested' => {
            label  => 'IsTested',
            update => 'Comment',
        },
        'IsTested -> resolved' => {
            label  => 'Resolve',
            update => 'Comment',
        },
    ],


    # Status mapping different different lifecycles
    __maps__ => {
        'igs -> default' => {
            'ToTest'   => 'new',
            'IsTested' => 'open',
        },

    },


},

);

I have the error “There is no mapping for statuses between these queues. Contact your system administrator.” when I try to move a ticket from the “igs” lifecycle queue to a default lifecycle queue.

Your help would be appreciate.

Thanks,
Horst

Note Importante: Le contenu de ce courriel est uniquement réservé à la personne ou l’organisme à qui il est destiné. Si vous n’êtes pas le destinataire prévu, veuillez nous en informer au plus vite et détruire le présent courriel. Dans ce cas, il ne vous est pas permis de copier ce courriel, de le distribuer ou de l’utiliser de quelque manière que ce soit.

Important Notice: The content of this e-mail is intended only and solely for the use of the named recipient or organization. If you are not the named recipient, please inform us immediately and delete the present e-mail. In this case, you are not allowed to copy, distribute or use this e-mail in any way.

Hi,

you have to either set target Queue to use the same lifecycle as source Queue or create mapping as documented here:

http://bestpractical.com/docs/rt/4.2/customizing/lifecycles.html

cite:
If you don’t provide a mapping, users will see an error when they try to move a ticket between queues with different lifecycles but no mapping.

Set( %Lifecycles, orders => {
    # ...,
    __maps__ => {
        'default -> orders' => {
            'new'  => 'pending',
            'open' => 'processing',
            # ...,
        },
        'orders -> default' => {
            'pending'    => 'new',
            'processing' => 'open',
            # ...,
        },
        # ...,
    },
    # ...,
});

Cheers,
Milan.On 11.11.2013, at 14:35, Kriegers Horst Horst.Kriegers@loro.ch wrote:

Hello,

I’ve created my first new lifecycle called “igs” and assigned it to à queue.

Set(%Lifecycles,
igs => {
initial => [ ‘new’ ],
active => [ ‘open’, ‘stalled’, ‘ToTest’, ‘IsTested’ ],
inactive => [ ‘resolved’, ‘rejected’, ‘deleted’ ],

    # Transitions d'un statut vers un autre
    transitions => {
        ''       => [qw(new open resolved)],

        # from   => [ to list ],
        new      => [qw(open ToTest IsTested stalled resolved rejected deleted )],
        open     => [qw(new ToTest IsTested stalled resolved rejected deleted )],
        stalled  => [qw(new open ToTest IsTested rejected resolved deleted )],
        resolved => [qw(new open ToTest IsTested stalled rejected deleted )],
        rejected => [qw(new open ToTest IsTested stalled resolved deleted )],
        deleted  => [qw(new open ToTest IsTested stalled rejected resolved )],
        ToTest   => [qw(IsTested new open stalled rejected resolved )],
        IsTested => [qw(ToTest new open stalled rejected resolved )],
    },

    # Actions
    actions => [
        'new -> ToTest' => {
            label  => 'ToTest',
            update => 'Comment',
        },
        'ToTest -> IsTested' => {
            label  => 'IsTested',
            update => 'Comment',
        },
        'IsTested -> resolved' => {
            label  => 'Resolve',
            update => 'Comment',
        },
    ],


    # Status mapping different different lifecycles
    __maps__ => {
        'igs -> default' => {
            'ToTest'   => 'new',
            'IsTested' => 'open',
        },

    },


},

);

I have the error “There is no mapping for statuses between these queues. Contact your system administrator.” when I try to move a ticket from the “igs” lifecycle queue to a default lifecycle queue.

Your help would be appreciate.

Thanks,
Horst

Note Importante: Le contenu de ce courriel est uniquement réservé à la personne ou l’organisme à qui il est destiné. Si vous n’êtes pas le destinataire prévu, veuillez nous en informer au plus vite et détruire le présent courriel. Dans ce cas, il ne vous est pas permis de copier ce courriel, de le distribuer ou de l’utiliser de quelque manière que ce soit.

Important Notice: The content of this e-mail is intended only and solely for the use of the named recipient or organization. If you are not the named recipient, please inform us immediately and delete the present e-mail. In this case, you are not allowed to copy, distribute or use this e-mail in any way.

Hi Milan,
Thank you for the answer !

Like you can see in my initial post, I’ve provided a mapping (maybe incorrect).
Now, I’ve modified my mapping like this and the error is always the same.

maps => {
‘default → igs’ => {
‘new’ => ‘new’,
‘open’ => ‘open’,
‘stalled’ => ‘stalled’,
‘resolved’ => ‘resolved’,
‘rejected’ => ‘rejected’,
‘deleted’ => ‘deleted’,

        },
        'igs -> default' => {
            'new'      => 'new',
            'open'     => 'open',
            'stalled'  => 'stalled',
            'resolved' => 'resolved',
            'rejected' => 'rejected',
            'deleted'  => 'deleted',
            'ToTest'   => 'new',
            'IsTested' => 'open',
        },

    },

What I wanted to obtain is :

  •          All queues have the standard “default” lifecycle except 1 queue there is with the “igs” lifecycle.
    
  •          The “igs” lifecycle keeps the same status “default” lifecycle, plus 2 new status “ToTest” and “IsTested”
    

So I thought that my mapping should contain only the references to the two new status “ToTest” => “new” and “IsTested” => “open”

Sorry if I understand slowly :\

And thanks a lot for your help
HorstDe : rt-users-bounces@lists.bestpractical.com [mailto:rt-users-bounces@lists.bestpractical.com] De la part de Milan Toth
Envoyé : lundi 11 novembre 2013 16:16
À : rt-users@lists.bestpractical.com
Objet : Re: [rt-users] Lifecycle mapping

Hi,

you have to either set target Queue to use the same lifecycle as source Queue or create mapping as documented here:

http://bestpractical.com/docs/rt/4.2/customizing/lifecycles.html

cite:

If you don’t provide a mapping, users will see an error when they try to move a ticket between queues with different lifecycles but no mapping.

Set( %Lifecycles, orders => {

    # ...,

    __maps__ => {

        'default -> orders' => {

            'new'  => 'pending',

            'open' => 'processing',

            # ...,

        },

        'orders -> default' => {

            'pending'    => 'new',

            'processing' => 'open',

            # ...,

        },

        # ...,

    },

    # ...,

});

Cheers,
Milan.

1 Like

Like you can see in my initial post, I’ve provided a mapping (maybe incorrect).
Now, I’ve modified my mapping like this and the error is always the same.

This mapping is how you need to do it, your original mapping was
insufficient.

In addition, I believe your actual problem is that you are defining
maps inside your lifecycle. Instead, maps needs to be outside
your igs definition (if you think about it, maps is a top level
concept, not specific to one lifecycle).

-kevin

1 Like