
##########
Transition
##########


****
NAME
****


Kernel::System::ProcessManagement::Transition - Transition lib


***********
DESCRIPTION
***********


All Process Management Transition functions.


****************
PUBLIC INTERFACE
****************


new()
=====


Don't use the constructor directly, use the ObjectManager instead:


.. code-block:: perl

     my $TransitionObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::Transition');



TransitionGet()
===============



.. code-block:: perl

     Get Transition info
 
     my $Transition = $TransitionObject->TransitionGet(
         TransitionEntityID => 'T1',
     );
 
     Returns:
 
     $Transition = {
         Name       => 'Transition 1',
         CreateTime => '08-02-2012 13:37:00',
         ChangeBy   => '2',
         ChangeTime => '09-02-2012 13:37:00',
         CreateBy   => '3',
         Condition  => {
             Type   => 'and',
             Cond1  => {
                 Type   => 'and',
                 Fields => {
                     DynamicField_Make    => [ '2' ],
                     DynamicField_VWModel => {
                         Type  => 'String',
                         Match => 'Golf',
                     },
                     DynamicField_A => {
                         Type  => 'Hash',
                         Match => {
                             Value  => 1,
                         },
                     },
                     DynamicField_B => {
                         Type  => 'Regexp',
                         Match => qr{ [\n\r\f] }xms
                     },
                     DynamicField_C => {
                         Type  => 'Module',
                         Match =>
                             'Kernel::System::ProcessManagement::TransitionValidation::MyModule',
                     },
                     Queue =>  {
                         Type  => 'Array',
                         Match => [ 'Raw' ],
                     },
                     # ...
                 }
             }
             # ...
         },
     };



TransitionCheck()
=================


Checks if one or more Transition Conditions are true.


.. code-block:: perl

     my $TransitionCheck = $TransitionObject->TransitionCheck(
         TransitionEntityID => 'T1',
         or
         TransitionEntityID => ['T1', 'T2', 'T3'],
         Data       => {
             Queue         => 'Raw',
             DynamicField1 => 'Value',
             Subject       => 'Testsubject',
             # ...
         },
     );


Returns:
    If called on a single TransitionEntityID


.. code-block:: perl

     $Checked = 1;       # 0


Returns:
    If called on an array of TransitionEntityIDs


.. code-block:: perl

     $Checked = 'T1'     # 0 if no Transition was true



TransitionValidationTypeList()
==============================


Returns a list of possible transition validations.


.. code-block:: perl

     my %TransitionValidationTypeList = $TransitionObject->TransitionValidationTypeList();


Returns:


.. code-block:: perl

     my %TransitionValidationTypeList = TransitionValidationTypeList(
         'String' => 'String',
         'Regexp' => 'Regular expression',
         'Module' => 'Transition validation module',
     );



TransitionValidationTypeListGet()
=================================


Returns a list of possible transition validations.


.. code-block:: perl

     my %TransitionValidationTypeListGet = $TransitionObject->TransitionValidationTypeListGet();


Returns:


.. code-block:: perl

     my %TransitionValidationTypeListGet = (
         'String' => {
             Name   => 'String',
             Label  => 'String',
             Module => 'Kernel::System::ProcessManagement::TransitionValidation::String',
         },
         'Regexp' => {
             Name   => 'Regexp',
             Label  => 'Regular expression',
             Module => 'Kernel::System::ProcessManagement::TransitionValidation::Regexp',
         },
         'Module' => {
             Name   => 'Module',
             Label  => 'Transition validation module',
             Module => 'Kernel::System::ProcessManagement::TransitionValidation::Module',
         },
     );





