Queue#

NAME#

Kernel::System::Queue - queue lib

DESCRIPTION#

All queue functions. E. g. to add queue or other functions.

PUBLIC INTERFACE#

new()#

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

my $QueueObject = $Kernel::OM->Get('Kernel::System::Queue');

GetSystemAddress()#

get a queue system email address as hash (Email, RealName)

my %Address = $QueueObject->GetSystemAddress(
    QueueID => 123,
);

GetSignature()#

get a queue signature

my $Signature = $QueueObject->GetSignature(QueueID => 123);

QueueStandardTemplateMemberAdd()#

to add a template to a queue

my $Success = $QueueObject->QueueStandardTemplateMemberAdd(
    QueueID            => 123,
    StandardTemplateID => 123,
    Active             => 1,        # to set/confirm (1) or remove (0) the relation
    UserID             => 123,
);

QueueStandardTemplateMemberList()#

get standard responses of a queue

my %Templates = $QueueObject->QueueStandardTemplateMemberList( QueueID => 123 );
Returns:
%Templates = (

1 => ‘Some Name’, 2 => ‘Some Name’,

);

my %Responses = $QueueObject->QueueStandardTemplateMemberList(
    QueueID       => 123,
    TemplateTypes => 1,
);
Returns:
%Responses = (
Answer => {

1 => ‘Some Name’, 2 => ‘Some Name’,

}, # …

);

my %Queues = $QueueObject->QueueStandardTemplateMemberList( StandardTemplateID => 123 );
Returns:
%Queues = (

1 => ‘Some Name’, 2 => ‘Some Name’,

);

GetAllQueues()#

get all valid system queues

my %Queues = $QueueObject->GetAllQueues();

get all system queues of a user with permission type (e. g. ro, move_into, rw, …)

my %Queues = $QueueObject->GetAllQueues( UserID => 123, Type => 'ro' );

GetAllCustomQueues()#

get all custom queues of one user

my @Queues = $QueueObject->GetAllCustomQueues( UserID => 123 );

QueueLookup()#

get id or name for queue

my $Queue = $QueueObject->QueueLookup( QueueID => $QueueID );

my $QueueID = $QueueObject->QueueLookup( Queue => $Queue );

GetFollowUpOption()#

get FollowUpOption for the given QueueID

my $FollowUpOption = $QueueObject->GetFollowUpOption( QueueID => $QueueID );

returns any of ‘possible’, ‘reject’, ‘new ticket’.

GetFollowUpOptionList()#

get Follow-Up Option list

my %FollowUpOptionList = $QueueObject->GetFollowUpOptionList(
    Valid => 0,             # (optional) default 1
);

Return:

%FollowUpOptionList = (
    '1' => 'possible',
    '3' => 'new ticket',
    '2' => 'reject',
)

GetFollowUpLockOption()#

get FollowUpLockOption for the given QueueID

my $FollowUpLockOption = $QueueObject->GetFollowUpLockOption( QueueID => $QueueID );

returns ‘1’ if ticket should be locked after a follow up, ‘0’ if not.

GetQueueGroupID()#

get GroupID defined for the given QueueID.

my $GroupID = $QueueObject->GetQueueGroupID( QueueID => $QueueID );

QueueAdd()#

add queue with attributes

my $QueueID = $QueueObject->QueueAdd(
    Name                => 'Some::Queue',
    ValidID             => 1,
    GroupID             => 1,
    Calendar            => '1',         # (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)
    UnlockTimeout       => 480,         # (optional)
    FollowUpID          => 3,           # possible (1), reject (2) or new ticket (3) (optional, default 0)
    FollowUpLock        => 0,           # yes (1) or no (0) (optional, default 0)
    DefaultSignKey      => 'key name',  # (optional)
    SystemAddressID     => 1,
    SalutationID        => 1,
    SignatureID         => 1,
    Comment             => 'Some comment',
    UserID              => 123,
);

QueueGet()#

get queue attributes

my %Queue = $QueueObject->QueueGet(
    ID => 123,
);

my %Queue = $QueueObject->QueueGet(
    Name  => 'Some::Queue',
);

QueueUpdate()#

update queue attributes

my $Success = $QueueObject->QueueUpdate(
    QueueID             => 123,
    Name                => 'Some::Queue',
    ValidID             => 1,
    GroupID             => 1,
    Calendar            => '1', # (optional) default ''
    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)
    SystemAddressID     => 1,
    SalutationID        => 1,
    SignatureID         => 1,
    UserID              => 123,
    FollowUpID          => 1,
    Comment             => 'Some Comment2',
    DefaultSignKey      => '',
    UnlockTimeOut       => '',
    FollowUpLock        => 1,
    ParentQueueID       => '',
);

QueueList()#

get all queues

my %Queues = $QueueObject->QueueList();

my %Queues = $QueueObject->QueueList( Valid => 1 );

QueuePreferencesSet()#

set queue preferences

$QueueObject->QueuePreferencesSet(
    QueueID => 123,
    Key     => 'UserComment',
    Value   => 'some comment',
    UserID  => 123,
);

QueuePreferencesGet()#

get queue preferences

my %Preferences = $QueueObject->QueuePreferencesGet(
    QueueID => 123,
    UserID  => 123,
);

NameExistsCheck()#

return 1 if another queue with this name already exists

$Exist = $QueueObject->NameExistsCheck(
    Name => 'Some::Queue',
    ID   => 1,              # optional
);