
###
SLA
###


****
NAME
****


Kernel::System::SLA - sla lib


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


All sla functions.


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


new()
=====


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


.. code-block:: perl

     my $SLAObject = $Kernel::OM->Get('Kernel::System::SLA');



SLAList()
=========


return a hash list of slas


.. code-block:: perl

     my %SLAList = $SLAObject->SLAList(
         ServiceID => 1,  # (optional)
         Valid     => 0,  # (optional) default 1 (0|1)
         UserID    => 1,
     );



SLAGet()
========


Returns an SLA as a hash


.. code-block:: perl

     my %SLAData = $SLAObject->SLAGet(
         SLAID  => 123,
         UserID => 1,
     );


Returns:


.. code-block:: perl

     my %SLAData = (
         'SLAID'               => '2',
         'Name'                => 'Diamond Pacific - S2',
         'Calendar'            => '2',
         'FirstResponseTime'   => '60',                  # in minutes according to business hours
         'FirstResponseNotify' => '70',                  # in percent
         'UpdateTime'          => '360',                 # in minutes according to business hours
         'UpdateNotify'        => '70',                  # in percent
         'SolutionTime'        => '960',                 # in minutes according to business hours
         'SolutionNotify'      => '80',                  # in percent
         'ServiceIDs'          => [ '4', '7', '8' ],
         'ValidID'             => '1',
         'Comment'             => 'Some Comment',
         'CreateBy'            => '93',
         'CreateTime'          => '2011-06-16 22:54:54',
         'ChangeBy'            => '93',
         'ChangeTime'          => '2011-06-16 22:54:54',
 
         # ITSMCore (if installed)
         'TypeID'                  => '5',
         'Type'                    => 'Incident',
         'MinTimeBetweenIncidents' => '4000',            # in minutes
     );



SLALookup()
===========


returns the name or the sla id


.. code-block:: perl

     my $SLAName = $SLAObject->SLALookup(
         SLAID => 123,
     );
 
     or
 
     my $SLAID = $SLAObject->SLALookup(
         Name => 'SLA Name',
     );



SLAAdd()
========


add a sla


.. code-block:: perl

     my $SLAID = $SLAObject->SLAAdd(
         ServiceIDs          => [ 1, 5, 7 ],  # (optional)
         Name                => 'SLA Name',
         Calendar            => 'Calendar1',  # (optional)
         FirstResponseTime   => 120,          # (optional)
         FirstResponseNotify => 60,           # (optional) notify agent if first response escalation is 60% reached
         UpdateTime          => 180,          # (optional)
         UpdateNotify        => 80,           # (optional) notify agent if update escalation is 80% reached
         SolutionTime        => 580,          # (optional)
         SolutionNotify      => 80,           # (optional) notify agent if solution escalation is 80% reached
         ValidID             => 1,
         Comment             => 'Comment',    # (optional)
         UserID              => 1,
 
         # ITSMCore (if installed)
         TypeID                  => 2,
         MinTimeBetweenIncidents => 3443,     # (optional)
     );



SLAUpdate()
===========


update a existing sla


.. code-block:: perl

     my $True = $SLAObject->SLAUpdate(
         SLAID               => 2,
         ServiceIDs          => [ 1, 2, 3 ],     # (optional)
         Name                => 'Service Name',
         Calendar            => 'Calendar1',     # (optional)
         FirstResponseTime   => 120,             # (optional)
         FirstResponseNotify => 60,              # (optional) notify agent if first response escalation is 60% reached
         UpdateTime          => 180,             # (optional)
         UpdateNotify        => 80,              # (optional) notify agent if update escalation is 80% reached
         SolutionTime        => 580,             # (optional)
         SolutionNotify      => 80,              # (optional) notify agent if solution escalation is 80% reached
         ValidID             => 1,
         Comment             => 'Comment',       # (optional)
         UserID              => 1,
 
         # ITSMCore
         TypeID                  => 2,
         MinTimeBetweenIncidents => 3443,        # (optional)
     );



SLAPreferencesSet()
===================


set SLA preferences


.. code-block:: perl

     $SLAObject->SLAPreferencesSet(
         SLAID  => 123,
         Key    => 'UserComment',
         Value  => 'some comment',
         UserID => 123,
     );



SLAPreferencesGet()
===================


get SLA preferences


.. code-block:: perl

     my %Preferences = $SLAObject->SLAPreferencesGet(
         SLAID  => 123,
         UserID => 123,
     );





