ProzessManagement - Ticket Verantwortlicher

Hilfe zu Znuny Problemen aller Art
Locked
Lalle
Znuny newbie
Posts: 18
Joined: 21 Mar 2016, 14:23
Znuny Version: 5.0.4

ProzessManagement - Ticket Verantwortlicher

Post by Lalle »

Hi zusammen,

bin relativ neu in OTRS und bin gerade dabei unseren Bestellprozess abzubilden. Hierbei ist es wichtig, dass der, das die Bestellung prüft variabel anhand des Inhalts eines DynamicFields zugewiesen wird? Ist das bei OTRS 5.0.4 möglich?

Das heißt, das der Mitarbeiter bei der Eingabe seines Bestellwunsches seinen direkten Vorgesetzten angibt. An diesen soll das Ticket im nächsten Schritt zugewiesen werden.

Grüße

Lalle
Lalle
Znuny newbie
Posts: 18
Joined: 21 Mar 2016, 14:23
Znuny Version: 5.0.4

Re: ProzessManagement - Ticket Verantwortlicher

Post by Lalle »

Folgendes funktioniert leider nicht.

Code: Select all

  elsif (
         defined $Param{Config}->{CustomResponsible}
         && $Param{Config}->{CustomResponsible} eq 'FirstLine'
       )
    {
        my $NewResponsibleID = $Param{Ticket}->{DynamicField_DirectManager};
        $Success = $Kernel::OM->Get('Kernel::System::Ticket')->TicketResponsibleSet(
             TicketID  => $Param{Ticket}->{TicketID},
             NewUserID => $NewResponsibleID,
             UserID    => $Param{UserID},
              );

Der Verantwortliche wird in der TransitionAction nicht angepasst.
Egal ob ich in das "DirectManager" Feld die ID oder den Usernamen des Managers schreibe :-/ Weiß einfach nicht mehr weiter
Last edited by Lalle on 22 Mar 2016, 20:56, edited 1 time in total.
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: ProzessManagement - Ticket Verantwortlicher

Post by RStraub »

Poste mal deinen ganzen if-else Block.

Wir haben auch ein "dynamisches" Modul dafür (der funktioniert):

Code: Select all

    elsif ( defined $Param{Config}->{CustomResponsible}
            && $Param{Config}->{CustomResponsible} eq 'VacationResponsibleSet'
        )
    {
        # Custom Keyword found, now read the dynamic Field 300HRVacationRequestorIDHidden and set it
        my $NewResponsibleID = $Param{Ticket}->{DynamicField_300HRVacationRequestorIDHidden};
        $Success = $Kernel::OM->Get('Kernel::System::Ticket')->TicketResponsibleSet(
            TicketID  => $Param{Ticket}->{TicketID},
            NewUserID => $NewResponsibleID,
            UserID    => $Param{UserID},
        );
    }
In dem dynamischen Feld liegt die ID des entsprechenden Nutzers.
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
Lalle
Znuny newbie
Posts: 18
Joined: 21 Mar 2016, 14:23
Znuny Version: 5.0.4

Re: ProzessManagement - Ticket Verantwortlicher

Post by Lalle »

Hi,

danke für deine Unterstützung. Anbei der ganze Block. Ist aber alles noch unangetastet. Nur der eine Block ist hinzugekommen.

Code: Select all

$Success = 0;

    if (
        defined $Param{Config}->{Responsible}
        && $Param{Config}->{Responsible} ne $Param{Ticket}->{Responsible}
        )
    {
        $Success = $Kernel::OM->Get('Kernel::System::Ticket')->TicketResponsibleSet(
            TicketID => $Param{Ticket}->{TicketID},
            NewUser  => $Param{Config}->{Responsible},
            UserID   => $Param{UserID},
        );
    }
    elsif (
        defined $Param{Config}->{ResponsibleID}
        && $Param{Config}->{ResponsibleID} ne $Param{Ticket}->{ResponsibleID}
        )
    {
        $Success = $Kernel::OM->Get('Kernel::System::Ticket')->TicketResponsibleSet(
            TicketID  => $Param{Ticket}->{TicketID},
            NewUserID => $Param{Config}->{ResponsibleID},
            UserID    => $Param{UserID},
        );
    }
   elsif (
         defined $Param{Config}->{CustomResponsible}
         && $Param{Config}->{CustomResponsible} eq 'FirstLine'
       )
    {
        my $NewResponsibleID = $Param{Ticket}->{DynamicField_DirectManager};
        $Success = $Kernel::OM->Get('Kernel::System::Ticket')->TicketResponsibleSet(
             TicketID  => $Param{Ticket}->{TicketID},
             NewUserID => $NewResponsibleID,
             UserID    => $Param{UserID},
                    );
}
     else {

        # data is the same as in ticket nothing to do
        $Success = 1;
    }

    if ( !$Success ) {
        my $CustomMessage;
        if ( defined $Param{Config}->{Responsible} ) {
            $CustomMessage = "Responsible: $Param{Config}->{Responsible},";
        }
        else {
            $CustomMessage = "ResponsibleID: $Param{Config}->{ResponsibleID},";
        }
        $Kernel::OM->Get('Kernel::System::Log')->Log(
            Priority => 'error',
            Message  => $CommonMessage
                . 'Ticket responsible could not be updated to '
                . $CustomMessage
                . ' for Ticket: '
                . $Param{Ticket}->{TicketID} . '!',
        );
        return;
    }
    return 1;
}          

Der eine Block sieht zumindest sehr nach deinem aus. Haben wohl das gleiche Beispiel genommen.
Trägst du die ID (Zahl?) ein oder den Usernamen in dem dynamischen Feld im Ticketformular?

Grüße

Lalle
wurzel
Znuny guru
Posts: 3273
Joined: 08 Jul 2010, 22:25
Znuny Version: x.x.x
Real Name: Florian

Re: ProzessManagement - Ticket Verantwortlicher

Post by wurzel »

Hi,

was coded ihr da? Das Process Modul kann das doch.

Macht doch 'n Dropdown mit allen Responsiblen und baut 'ne ACL (falls nötig) die die Liste auf die möglichen Bearbeiter/Responsible einschränkt oder gleich die Transition Action Responsible Set verwenden.

Flo
OTRS 2025 SILVER (Prod)
OTRS 2025 auf Debian 12 (Test)
Znuny 7.x latest version testing auf Debian 12

-- Ich beantworte keine Forums-Fragen PN - No PN please

I won't answer to unfriendly users any more. A greeting and regards are just polite.
Lalle
Znuny newbie
Posts: 18
Joined: 21 Mar 2016, 14:23
Znuny Version: 5.0.4

Re: ProzessManagement - Ticket Verantwortlicher

Post by Lalle »

Aber auch wenn wir ein Dropdown mit den Verantwortlichen machen muss die Transition Action das dynamische Feld irgendwie auslesen und dann mit Responsible Set das Ticket zum Verantwortlichen schieben. Macht also in dem Sinne keinen Unterschied.
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: ProzessManagement - Ticket Verantwortlicher

Post by RStraub »

Hey Wurzel,

mein Beispiel kam noch von früher, als TransitionAction keine dynamischen Werte "konnten". Außerdem lässt sich unser Use-Case damit in einem Block abbilden, statt (ggf. vieler) ACLs zu nutzen.

@Lalle

was bewirkt die Abfrage "... eq "FirstLine" ?

Ich vermute dass dein Code in Ordnung ist, allerdings nicht ausgeführt wird. Probier mal in den Block eine Fehlermeldung zu bauen, etwa:

Code: Select all

    my $message = "If-Block erreicht!";
    $Kernel::OM->Get('Kernel::System::Log')->Log(
        Priority => 'error',
        Message  => $message,
    );
Dann häng dich an den Apache Log während die TA ausgeführt wird.

Und ja, wir speichern die ID, sollte allerdings auch mit dem Login gehen (nur könnte dieser sich mit der Zeit ändern).
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
Lalle
Znuny newbie
Posts: 18
Joined: 21 Mar 2016, 14:23
Znuny Version: 5.0.4

Re: ProzessManagement - Ticket Verantwortlicher

Post by Lalle »

Die Abfrage eq "FirstLine" macht doch das gleiche wie deine Abfrage

Code: Select all

 elsif ( defined $Param{Config}->{CustomResponsible}
            && $Param{Config}->{CustomResponsible} eq 'VacationResponsibleSet'
Nur das ich nach einem Anderen Keyword prüfe.
Werde mal die Log Message einbauen und das checken
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: ProzessManagement - Ticket Verantwortlicher

Post by RStraub »

Ohja, klar. Nur meinen Code kenn ich, bei dir musst ich nachfragen :)
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
Lalle
Znuny newbie
Posts: 18
Joined: 21 Mar 2016, 14:23
Znuny Version: 5.0.4

Re: ProzessManagement - Ticket Verantwortlicher

Post by Lalle »

Scheint wirklich nicht bis in die Schleife zu kommen:
[Wed Mar 23 09:25:48 2016] CustomResponsibleSet.pm: Subroutine new redefined at /opt/otrs//Kernel/System/ProcessManagement/TransitionAction/CustomResponsibleSet.pm line 49.
[Wed Mar 23 09:25:48 2016] CustomResponsibleSet.pm: Subroutine Run redefined at /opt/otrs//Kernel/System/ProcessManagement/TransitionAction/CustomResponsibleSet.pm line 87.
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: ProzessManagement - Ticket Verantwortlicher

Post by RStraub »

Und in der TA ist korrekt eingestellt:
- Dein CustomModul (bzw. das angepasste Originalmodul -> nicht empfohlen)
- Das Key/Value Paar: "CustomResponsible" -> "FirstLine"

?
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
Lalle
Znuny newbie
Posts: 18
Joined: 21 Mar 2016, 14:23
Znuny Version: 5.0.4

Re: ProzessManagement - Ticket Verantwortlicher

Post by Lalle »

Jap, ist alles richtig konfiguriert:



Image
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: ProzessManagement - Ticket Verantwortlicher

Post by RStraub »

Jop, sieht alles gut aus... So langsam bin ich ratlos. Evtl. noch prüfen:

- Der Prozess ist nicht nur definiert sondern auch deployt
- Die TA wird tatsächlich ausgeführt (also das Ticket "wandert" von einer Aktivität zur nächsten)

Sorry, aber das sollte so funktionieren ^^
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
Lalle
Znuny newbie
Posts: 18
Joined: 21 Mar 2016, 14:23
Znuny Version: 5.0.4

Re: ProzessManagement - Ticket Verantwortlicher

Post by Lalle »

Die TA wird ausgeführt. Der andere Schritt in der TA (verschieben in eine andere Queue) wird auch normal ausgeführt. Nur das ändern des Verantwortlichen halt nicht.

Jetzt geht es dir so wie mir. Ich bin auch ratlos :lol:
Lalle
Znuny newbie
Posts: 18
Joined: 21 Mar 2016, 14:23
Znuny Version: 5.0.4

Re: ProzessManagement - Ticket Verantwortlicher

Post by Lalle »

Ah da ist mir gerade nochwas aufgefallen:
Message: Process: Process-adb6adba6dd45640ebf74fa3ad4fbf01 Activity: Activity-7f081938701901794f9753a70488ca9c Transition: Transition-1de22e05b3954aad62018fba9ac77444 TransitionAction: TransitionAction-38f8d71ba7fa3898852e68c8a8ec615c - No Responsible or ResponsibleID configured!
Also läuft er anscheinend schon oben durch die erste IF schleife und kommt dann nicht mehr in die anderen. Aber warum denkt es, das kein Responsible configured sind?
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: ProzessManagement - Ticket Verantwortlicher

Post by RStraub »

Ah, das ist hilfreich.

Vor der if-else Schleife wird geprüft ob überhaupt ein Parameter "Responsible" oder "ResponsibleID" übergeben wird, sonst steigt das Modul aus.

Pass mal (fast direkt über dem If-Block) die Abfrage an:

Code: Select all

    if ( !$Param{Config}->{ResponsibleID} && !$Param{Config}->{Responsible} && !$Param{Config}->{CustomResponsible}) {
        $Kernel::OM->Get('Kernel::System::Log')->Log(
            Priority => 'error',
            Message  => $CommonMessage . "No Responsible or ResponsibleID configured!",
        );
        return;
    }

Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
Lalle
Znuny newbie
Posts: 18
Joined: 21 Mar 2016, 14:23
Znuny Version: 5.0.4

Re: ProzessManagement - Ticket Verantwortlicher

Post by Lalle »

Öfter mal was neues
Message: Module for TransitionAction: TransitionAction-38f8d71ba7fa3898852e68c8a8ec615c missing or not found!
Message: Getting TransitionActionList for Process: Process-973f95b1a50e2808c04fef294aa6a758, Transition: Transition-1de22e05b3954aad62018fba9ac77444 failed.
Die Transition ist genau die, die die TransistionAction ausführen soll
Locked