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
);