NAME
Kernel::System::NotificationEvent – to manage the notifications
DESCRIPTION
All functions to manage the notification and the notification jobs.
PUBLIC INTERFACE
new()
Don't use the constructor directly, use the ObjectManager instead:
my $NotificationEventObject = $Kernel::OM->Get('Kernel::System::NotificationEvent');
NotificationList()
returns a hash of all notifications
my %List = $NotificationEventObject->NotificationList(
Type => 'Ticket', # type of notifications; default: 'Ticket'
Details => 1, # include notification detailed data. possible (0|1) # ; default: 0
All => 1, # optional: if given all notification types will be returned, even if type is given (possible: 0|1)
);
NotificationGet()
returns a hash of the notification data
my %Notification = $NotificationEventObject->NotificationGet(
Name => 'NotificationName',
);
my %Notification = $NotificationEventObject->NotificationGet(
ID => 1,
);
Returns:
%Notification = (
ID => 123,
Name => 'Agent::Move',
Data => {
Events => [ 'TicketQueueUpdate' ],
...
Queue => [ 'SomeQueue' ],
},
Message => {
en => {
Subject => 'Hello',
Body => 'Hello World',
ContentType => 'text/plain',
},
de => {
Subject => 'Hallo',
Body => 'Hallo Welt',
ContentType => 'text/plain',
},
},
Comment => 'An optional comment',
ValidID => 1,
CreateTime => '2010-10-27 20:15:00',
CreateBy => 2,
ChangeTime => '2010-10-27 20:15:00',
ChangeBy => 1,
UserID => 3,
);
NotificationAdd()
adds a new notification to the database
my $ID = $NotificationEventObject->NotificationAdd(
Name => 'Agent::OwnerUpdate',
Data => {
Events => [ 'TicketQueueUpdate' ],
...
Queue => [ 'SomeQueue' ],
},
Message => {
en => {
Subject => 'Hello',
Body => 'Hello World',
ContentType => 'text/plain',
},
de => {
Subject => 'Hallo',
Body => 'Hallo Welt',
ContentType => 'text/plain',
},
},
Comment => 'An optional comment', # (optional)
ValidID => 1,
UserID => 123,
);
NotificationUpdate()
update a notification in database
my $Ok = $NotificationEventObject->NotificationUpdate(
ID => 123,
Name => 'Agent::OwnerUpdate',
Data => {
Events => [ 'TicketQueueUpdate' ],
...
Queue => [ 'SomeQueue' ],
},
Message => {
en => {
Subject => 'Hello',
Body => 'Hello World',
ContentType => 'text/plain',
},
de => {
Subject => 'Hallo',
Body => 'Hallo Welt',
ContentType => 'text/plain',
},
},
Comment => 'An optional comment', # (optional)
ValidID => 1,
UserID => 123,
);
NotificationDelete()
deletes an notification from the database
$NotificationEventObject->NotificationDelete(
ID => 1,
UserID => 123,
);
NotificationEventCheck()
returns array of notification affected by event
my @IDs = $NotificationEventObject->NotificationEventCheck(
Event => 'ArticleCreate',
);
NotificationImport()
import an Notification YAML file/content
my $NotificationImport = $NotificationEventObject->NotificationImport(
Content => $YAMLContent, # mandatory, YAML format
OverwriteExistingNotifications => 0, # 0 || 1
UserID => 1, # mandatory
);
Returns:
$NotificationImport = {
Success => 1, # 1 if success or undef if operation could not
# be performed
Message => 'The Message to show.', # error message
AddedNotifications => 'Notification1, Notification2', # list of Notifications correctly added
UpdatedNotifications => 'Notification3, Notification4', # list of Notifications correctly updated
NotificationErrors => 'Notification5', # list of Notifications that could not be added or updated
};
NotificationBodyCheck()
Check if body has a proper length.
my $Ok = $NotificationEventObject->NotificationBodyCheck(
Content => $BodyContent, # mandatory
UserID => 1, # mandatory
);