SLA#

NAME#

Kernel::System::SLA - sla lib

DESCRIPTION#

All sla functions.

PUBLIC INTERFACE#

new()#

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

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

SLAList()#

return a hash list of slas

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

SLAGet()#

Returns an SLA as a hash

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

Returns:

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

my $SLAName = $SLAObject->SLALookup(
    SLAID => 123,
);

or

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

SLAAdd()#

add a sla

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

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

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

SLAPreferencesGet()#

get SLA preferences

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