Hi folks,

I got a problem with a custom TicketCreate module that I’m working on.  Basically, what I want to do is on a TicketCreate is send a NewTicket notification to all the agents that has selected the queue the ticket is assigned to as “My Queues” even if the ticket was assigned an owner.  Of course this is built right into OTRS for tickets that are unlocked, but we sometimes use OTRS to log simple tasks and assign the ticket to ourselves.  So I have this working… see below.  However, the only problem that I have is the notification itself contains no information other than the queue it is.  It’s missing the customer info, the article body… all the good stuff.  I’m thinking that maybe the article has not been created yet and it’s an order thing?  I’m not very Perl savvy so any help would be greatly appreciated!

 

 

#########################################################################################

package Kernel::System::Ticket::Event::EmailHelpDeskSuper;

 

use strict;

use Kernel::System::User;

use Kernel::System::Email;

use Kernel::System::Queue;

 

use vars qw($VERSION);

$VERSION = '$Revision: 1.4 $';

$VERSION =~ s/^\$.*:\W(.*)\W.+?$/$1/;

 

sub new {

    my $Type = shift;

    my %Param = @_;

 

    # allocate new hash for object

    my $Self = {};

    bless ($Self, $Type);

 

    # check needed objects

    foreach (qw(DBObject ConfigObject LogObject TicketObject)) {

        $Self->{$_} = $Param{$_} || die "Got no $_!";

    }

    # 0=off; 1=on;

    $Self->{Debug} = $Param{Debug} || 1;

 

    $Self->{UserObject} = Kernel::System::User->new(%Param);

    $Self->{EmailObject} = Kernel::System::Email->new(%Param);

    $Self->{QueueObject} = Kernel::System::Queue->new(%Param);

 

    return $Self;

}

 

sub Run {

    my $Self = shift;

    my %Param = @_;

 

    # get ticket data

    my %Ticket = $Self->{TicketObject}->TicketGet(%Param);

    # check needed stuff

    foreach (qw(TicketID Event Config)) {

        if (!$Param{$_}) {

            $Self->{LogObject}->Log(Priority => 'error', Message => "Need $_!");

            return;

        }

    }

    if ($Param{Event} eq 'TicketCreate') {

        my %Ticket = $Self->{TicketObject}->TicketGet(TicketID => $Param{TicketID});

        #if ($Ticket{State} eq 'New') {

        # get agentss who are sucscribed the ticket queue to the custom queues

                  my @UserIDs = $Self->{TicketObject}->GetSubscribedUserIDsByQueueID(

             QueueID => $Ticket{QueueID},

                    );

                # send each agent the a notification

                foreach my $UserID (@UserIDs) {

        my %User = $Self->{UserObject}->GetUserData(UserID => $UserID, Valid => 1);

        if (%User) {

            # send agent notification

            $Self->{TicketObject}->SendAgentNotification(

                Type => 'NewTicket',

                UserData => \%User,

                CustomerMessageParams => \%Param,

                TicketID => $Param{TicketID},

                UserID => 1,

            );

         }

    elsif ($Param{Event} eq 'MoveTicket') {

        my %Ticket = $Self->{TicketObject}->TicketGet(TicketID => $Param{TicketID});

            # do some stuff

                }

                 }

                }

                return 1;

}

1;

######################################################################################################################

 

 

Daniel Shue

Networking Engineer

Randolph County IT Department

725 McDowell Rd

Asheboro, NC  27203

Phone:  (336) 318-6399

Fax:  (336) 636-7699

 


This email and any files transmitted with it are confidential and intended for use only by the individual or entity named above. If you are not the intended recipient or the employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any disclosure, dissemination, distribution, copying of this communication, or unauthorized use is strictly prohibited. Please notify us immediately by reply email and then delete this message from your system. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Randolph County Government. This email and any file attachments have been scanned for potential viruses; however, the recipient should check this email for the presence of viruses and/or malicious code. Randolph County accepts no liability for any damage transmitted via this email.