Ticket mit bestimmtem Subject Weiterleiten

Hilfe zu Znuny Problemen aller Art
Locked
GFEMajor
Znuny newbie
Posts: 13
Joined: 15 Feb 2010, 17:43
Znuny Version: 2.4.7.

Ticket mit bestimmtem Subject Weiterleiten

Post by GFEMajor »

hi,

ist es möglich ein neues Ticket an eine Externe Emailadresse weiter zu leiten wenn im Subjekt bestimmte Wörter vorkommen? So soll zum Beispiel eine Mail mit dem Subjekt "Rechnung" direkt an die Buchhaltung geleitet werden. Wenn das nicht geht, kann ich das Ticket dann automatisch einem Benutzer zuordnen?
Ich denke es muss über den Postmaster Filter gehen, aber irgendwie bekomm ich beide Sachen nicht hin.


Danke schonmal für die Hilfe.

Greets Major
KhaledBlah
Znuny newbie
Posts: 34
Joined: 14 Mar 2011, 12:57
Znuny Version: 3

Re: Ticket mit bestimmtem Subject Weiterleiten

Post by KhaledBlah »

Der Postmaster Filter ist sicher die korrekte Stelle. Am besten wird sein, wenn Du beschreibst, was Du dort eingestellt hast. Erst dann kann man dir helfen.
OTRS 3.3.8
GFEMajor
Znuny newbie
Posts: 13
Joined: 15 Feb 2010, 17:43
Znuny Version: 2.4.7.

Re: Ticket mit bestimmtem Subject Weiterleiten

Post by GFEMajor »

Ich weis ja nicht was ich einstellen muss :) Das ist ja das Problem.

Ich möchte das alle Emails die das Wort "Rechnung" im Subjekt haben an die adresse xxx@xx.de weiterleiten, oder eben wenn das nicht geht, dass alle Mail mit dem Wort "Rechnung" im Subjekt einem bestimmten Benutzer zugewiesen werden.
renee
Znuny expert
Posts: 241
Joined: 06 Feb 2009, 11:15
Znuny Version: 3.0.x
Company: Perl-Services.de
Contact:

Re: Ticket mit bestimmtem Subject Weiterleiten

Post by renee »

So könnte der Postmaster-Filter aussehen, der den Ticketbesitzer setzt. Bei $NewUser = '...' musst Du halt noch den Loginnamen des Users setzen, der das Ticket bekommen soll.

Statt des TicketOwnerSet könnte man hier auch die Weiterleitung einbauen, was aber etwas zu aufwändig ist als dass ich es hier in ein paar Minuten programmiert und getestet hätte.

Diese Datei einfach unter <OTRS_HOME>/Kerne/System/PostMaster/Filter/Invoices.pm speichern und die weiter unten aufgeführte Konfiguration in die Kernel/System/Config.pm aufnehmen und dann mal testen...

Kernel/System/PostMaster/Filter/Invoices.pm

Code: Select all

# --
# Kernel/System/PostMaster/Filter/Invoices.pm - the global PostMaster module for OTRS
# Copyright (C) 2011 perl-services.de, http://perl-services.de/
# --
# $Id: Invoices.pm,v 1.4 2011/05/31 07:56:35 rb Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --

package Kernel::System::PostMaster::Filter::Invoices;

use strict;
use Kernel::System::Ticket;

use vars qw($VERSION);
$VERSION = '$Revision: 1.4 $';
$VERSION =~ s/^.*:\s(\d+\.\d+)\s.*$/$1/;

sub new {
    my $Type  = shift;
    my %Param = @_;

    # allocate new hash for object
    my $Self = {};
    bless( $Self, $Type );

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

    # get needed objects
    for my $Object (
        qw(ConfigObject LogObject DBObject TimeObject MainObject EncodeObject)
        )
    {
        $Self->{$Object} = $Param{$Object} || die "Got no $Object!";
    }

    $Self->{TicketObject} = Kernel::System::Ticket->new( %{$Self} );

    return $Self;
}

sub Run {
    my ( $Self, %Param ) = @_;

    for my $Needed (qw(JobConfig GetParam)) {
        if ( !$Param{$Needed} ) {
            $Self->{LogObject}->Log(
                Priority => 'error',
                Message  => "Need $Needed!",
            );
            return;
        }
    }

    $Self->{LogObject}->Log(
        Priority => 'notice',
        Message  => 'TicketID: ' . $Param{TicketID},
    );
    
    if ( $Param{GetParam}->{Subject} =~ m{Rechnung} ) {
        my $NewUser = 'Userlogin of ticket owner';
        
        # set ticket owner
        $Self->{TicketObject}->TicketOwnerSet(
            TicketID => $Param{TicketID},
            NewUser  => $NewUser,
            UserID   => 1,
        );
    }

    return 1;
}

1;
Config:

Code: Select all

$Self->{'PostMaster::PostFilterModule'}->{'010-Invoices'} =  {
  'Module' => 'Kernel::System::PostMaster::Filter::Invoices'
};
Ist ungetestet, sollte soweit aber funktionieren (wenn kein Syntaxfehler im Modul ist.
Need a Perl/OTRS developer? You can contact me at info@perl-services.de
renee
Znuny expert
Posts: 241
Joined: 06 Feb 2009, 11:15
Znuny Version: 3.0.x
Company: Perl-Services.de
Contact:

Re: Ticket mit bestimmtem Subject Weiterleiten

Post by renee »

Wenn das Ticket einfach in eine bestimmte Queue geschoben werden soll, dann kann das so aussehen (Name der Queue müsste natürlich angepasst werden):
PostMaster.png
You do not have the required permissions to view the files attached to this post.
Need a Perl/OTRS developer? You can contact me at info@perl-services.de
GFEMajor
Znuny newbie
Posts: 13
Joined: 15 Feb 2010, 17:43
Znuny Version: 2.4.7.

Re: Ticket mit bestimmtem Subject Weiterleiten

Post by GFEMajor »

Danke das kenn ich schon, denn das Ticket wird schon in eine Queue geschoben. Aber es soll wie gesagt ein Benutzer benachrichtigt werden, wenn diese Mail eintriffen (Eine generelle Benachrichtigung bei neuem Ticket in der Queue ist übrigens keine Option!),

Dein Script bau ich grad ein und sage dir dann Bescheid ob das funktioniert.
GFEMajor
Znuny newbie
Posts: 13
Joined: 15 Feb 2010, 17:43
Znuny Version: 2.4.7.

Re: Ticket mit bestimmtem Subject Weiterleiten

Post by GFEMajor »

renee wrote: [/code]

Config:

Code: Select all

$Self->{'PostMaster::PostFilterModule'}->{'010-Invoices'} =  {
  'Module' => 'Kernel::System::PostMaster::Filter::Invoices'
};
Gibt es eine bestimmte Stelle wo der Code hin muss, bzw wo er nicht hin darf?
renee
Znuny expert
Posts: 241
Joined: 06 Feb 2009, 11:15
Znuny Version: 3.0.x
Company: Perl-Services.de
Contact:

Re: Ticket mit bestimmtem Subject Weiterleiten

Post by renee »

Setz es in <OTRS_HOME>/Kernel/Config.pm einfach direkt vor

Code: Select all

    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
    #                                                      #
    #           End of your own config options!!!          #
    #                                                      #
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
Also

Code: Select all

    $Self->{'PostMaster::PostFilterModule'}->{'010-Invoices'} =  {
        'Module' => 'Kernel::System::PostMaster::Filter::Invoices'
    };
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
    #                                                      #
    #           End of your own config options!!!          #
    #                                                      #
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
Need a Perl/OTRS developer? You can contact me at info@perl-services.de
GFEMajor
Znuny newbie
Posts: 13
Joined: 15 Feb 2010, 17:43
Znuny Version: 2.4.7.

Re: Ticket mit bestimmtem Subject Weiterleiten

Post by GFEMajor »

Hab es ausprobiert, aber wenn ich im PostMaster auf abrufen klicke kommt folgende Fehlermeldung:

Can't locate object method "TicketOwnerSet" via package "Kernel::System::Ticket" at [..]/Invoices.pm
renee
Znuny expert
Posts: 241
Joined: 06 Feb 2009, 11:15
Znuny Version: 3.0.x
Company: Perl-Services.de
Contact:

Re: Ticket mit bestimmtem Subject Weiterleiten

Post by renee »

Du benutzt anscheinend ein OTRS < 3.0. Dort heißt die Methode einfach "OwnerSet"...
Need a Perl/OTRS developer? You can contact me at info@perl-services.de
GFEMajor
Znuny newbie
Posts: 13
Joined: 15 Feb 2010, 17:43
Znuny Version: 2.4.7.

Re: Ticket mit bestimmtem Subject Weiterleiten

Post by GFEMajor »

richtig, ich nutze noch 2.4.7 :). Mit der kleinen Änderung von dir klappt es jetzt, das Ticket wird trotzdem noch in die richtige Queue einsortiert und ich bekomme eine Email, da der Besitz an mich übertragen wurde. Genau das was ich wollte :).

Ich danke dir vielmals.
Locked