Nice Gerald!!

Now the Event flow got clear in my mind. I'll try to implement it and as soon I have it well tested I'll try to post it.

Thanks again.

Daniel Santos
[email protected]
ETICE - Empresa de Tecnologia da Informação do Ceará
www.etice.ce.gov.br
+55 85 3101.6600

On 07/09/13 17:50, Gerald Young wrote:
heh. If you want "Best Practices" of OTRS development, I might not be the best source. I come from a JFDI background. :) :)

Assuming that GenericAgent.pm is calling Kernel/System/GenericAgent/NotifyAgentGroupOfCustomQueue.pm

It's calling TicketObject->SendAgentNotification and that's about it.

This is in Kernel/System/Ticket/Article.pm which ends in *ArticleAgentNotification *event.

"But this happens all the time!" yeah, pretty much.
"How to test escalation response?"
it's not the event that's EscalationxxxTimexxx. That latter is actually a Parameter attached to the result from TicketGet against the ticket object. Basicaly, upon ArticleAgentNotification Event, you'd check the TicketGet result's EscalationResponseTime (unix time stamp of response time escalation) EscalationUpdateTime (unix time stamp of update time escalation) EscalationSolutionTime (unix time stamp of solution time escalation) versus "now" and determine if now is > than escalation and check that other NotifyAgentGroupOfCustomQueue.pm for methods to check if it's sent but if you're already there, you might just copy that and modify the method of send to be jabber, then use it instead.

"What would you do?"
That last. The code to send the message only once is already made. It's all about SendAgentNotification that's the meat of the difference between whether to send by email or send by Jabber anyway....

"So, now what?"
Well, if I really wanted to, I'd determine if I'd plug ArticleAgentNotification Event directly to jabber anyway. What I mean is, the event of ArticleAgentNotification may trigger the send via Jabber event all the time. And why not? I think that's the point of your jabber interface anyway.


On Tue, Jul 9, 2013 at 3:51 PM, Daniel Santos <[email protected] <mailto:[email protected]>> wrote:

    Hmm... got it!!!

    For me, it's important to be in compliance with the 'best
    practices' of OTRS development...
    As I do not change anything in the ticket, like you said, its
    better to have a Ticket Event triggered when the GenericAgent
    sends the Escalation notification. I've tried it before, but I
    don't know which Event should I verify for a escalation
    notification sent by the Generic Agent... would it be something
    like this?

    ...
    if ( $Ticket{Event} eq "EscalationResponseTimeNotifyBefore" ) { ... }
    if ( $Ticket{Event} eq "EscalationUpdateTimeNotifyBefore" ) { ... }
    if ( $Ticket{Event} eq "EscalationSolutionTimeNotifyBefore" ) { ... }

    ?

    Regards,

    Daniel Santos
    [email protected]  <mailto:[email protected]>
    ETICE - Empresa de Tecnologia da Informação do Ceará
    www.etice.ce.gov.br  <http://www.etice.ce.gov.br>
    +55 85 3101.6600

    On 07/09/13 16:30, Gerald Young wrote:
    If the generic agent was able to change something (dynamic field,
    state, queue) that created an event, I'd use an event.
    If not, I'd add the check at the same time as the other
    GenericAgent that does that.

    "Which is the best?" In my opinion, in theory, the thing that
    doesn't run code unnecessarily. In practice, the thing that works
    for your situation.


    On Tue, Jul 9, 2013 at 3:10 PM, Daniel Santos
    <[email protected]
    <mailto:[email protected]>> wrote:

        Gerald,

        I used the same approach that GenericAgent uses to send
        escalated notifications, which is a cron scheduled job that
        runs bin/otrs.GenericAgent.pl <http://otrs.GenericAgent.pl>
        and send escalation notifications as necessary. The only
        difference on my module is that, instead of sending to
        e-mail, we are sending to jabber (xmpp).

        In your opinion, which is the best? GenericAgent or Ticket
        Event? In the meantime, which Event should I listen to if
        using Ticket Event?


        Daniel Santos
        [email protected]  <mailto:[email protected]>
        ETICE - Empresa de Tecnologia da Informação do Ceará
        www.etice.ce.gov.br  <http://www.etice.ce.gov.br>
        +55 85 3101.6600

        On 07/09/13 16:01, Gerald Young wrote:
        You could, but I don't understand why you want to use a
        scheduled job to do a notification when a ticket is
        escalated. It would appear to me you'd want that as an event
        upon occurrence, not a scheduled test if criteria has been met.

        If you wish to do what you propose, how you've asked is the
        correct way to accomplish the goal.


        On Tue, Jul 9, 2013 at 2:36 PM, Daniel Santos
        <[email protected]
        <mailto:[email protected]>> wrote:

            Hi,

            I've managed to get my module working... it was a typo
            in my Needed Modules. Sorry about that.

            Now I'm wondering how can I add a new Generic Agent job
            in Kernel/Config/GenericAgentJabberNotification.pm and
            active it without touching Kernel/Config/GenericAgent.pm.

            Do I need to setup a new cron entry passing -c
            "Kernel::Config::GenericAgentJabberNotification" ??

            Thanks.


            Daniel Santos
            [email protected]
            <mailto:[email protected]>
            ETICE - Empresa de Tecnologia da Informação do Ceará
            www.etice.ce.gov.br <http://www.etice.ce.gov.br>
            +55 85 3101.6600

            On 07/09/13 09:24, Daniel Santos wrote:

                Hi,

                I'm setting up a Generic Agent to make some
                customization in my OTRS installation to send other
                notifications when a ticket is escalated. But when I
                try to use a Get from ConfigObject I'm always
                getting a: "Message: Can't call method "Get" on an
                undefined value". ConfigObject is already in the
                Needed objects 'qw', but still doesn't work.

                How can I get my module configuration parameters
                from Config when using a Generic Agent?

                Thanks.


            
---------------------------------------------------------------------
            OTRS mailing list: otrs - Webpage: http://otrs.org/
            Archive: http://lists.otrs.org/pipermail/otrs
            To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs




        ---------------------------------------------------------------------
        OTRS mailing list: otrs - Webpage:http://otrs.org/
        Archive:http://lists.otrs.org/pipermail/otrs
        To unsubscribe:http://lists.otrs.org/cgi-bin/listinfo/otrs


        ---------------------------------------------------------------------
        OTRS mailing list: otrs - Webpage: http://otrs.org/
        Archive: http://lists.otrs.org/pipermail/otrs
        To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs




    ---------------------------------------------------------------------
    OTRS mailing list: otrs - Webpage:http://otrs.org/
    Archive:http://lists.otrs.org/pipermail/otrs
    To unsubscribe:http://lists.otrs.org/cgi-bin/listinfo/otrs


    ---------------------------------------------------------------------
    OTRS mailing list: otrs - Webpage: http://otrs.org/
    Archive: http://lists.otrs.org/pipermail/otrs
    To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs




---------------------------------------------------------------------
OTRS mailing list: otrs - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/otrs
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs

---------------------------------------------------------------------
OTRS mailing list: otrs - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/otrs
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs

Reply via email to