Fehler in Custom Dynamic-Field Hook für TicketOverviewHooked

Hilfe zu OTRS Problemen aller Art
Post Reply
zezinho
Znuny newbie
Posts: 2
Joined: 23 Mar 2016, 12:19
Znuny Version: 4.0.10

Fehler in Custom Dynamic-Field Hook für TicketOverviewHooked

Post by zezinho »

Hi,
habe das OPAR Module TicketOverviewHooked um einen weiteren Hook für das Hervorheben von Tickets mit bestimmten Inhalten eines dynamischen Feldes erweitern wollen.

Leider scheine ich hierbei einen Fehler einegbaut zu haben. Das selbst erstellte Hook-Modul wird wohl gar nicht richtig geladen.

Leider zeigt der OTRS System-Log, dass es in Zeile 81 der Main.pm zum Fehler kommt:

"Kernel/System/TicketOverview/Hooks/TicketDynamicField.pm did not return a true value at /opt/otrs//Kernel/System/Main.pm line 81"

Die Zeile 81 der Main.pm lautet:
eval {
my $FileName = $Module =~ s{::}{/}smxgr;
require $FileName . '.pm';
};

Mit dem EInbau der BDebugging Info habe ich auch nichts mehr herausgefunden.

Würde das Plugin TicketOverviewHooked gerne entsprechend erweitern so dass der Inhalt eines dynamischen Feldes (text) geprüft wird.
Liegt ein Wert vor oder beginnt mit einem Wert soll entsprechend eingefärbt werden.

Die Version ist OTRS 6.0.19
Im Anhang mein DynamicField-Hook, hier auch nochmal als Text für die evtl. noch nicht eingeloggten User.
Wennn euch etwas einfällt sehr gerne !!

# Kernel/System/TicketOverview/Hooks/TicketDynamicField.pm

package Kernel::System::TicketOverview::Hooks::TicketDynamicField;

use strict;
use warnings;

our @ObjectDependencies = qw(
Kernel::Config
Kernel::System::DynamicField
Kernel::System::Log
);

sub new {
my ( $Type, %Param ) = @_;
my $Self = {};
bless( $Self, $Type );

# Initialisierung des Log-Objekts
$Self->{LogObject} = $Kernel::OM->Get('Kernel::System::Log');

return $Self;
}

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

# Debugging-Nachricht: Anfang der Run-Subroutine
$Self->{LogObject}->Log(
Priority => 'notice',
Message => "TicketDynamicField module: Starting Run subroutine",
);

# Überprüfen, ob alle erforderlichen Parameter vorhanden sind
for my $Needed (qw(TicketID DynamicField SearchValue Color)) {
if ( !$Param{$Needed} ) {
# Debugging-Nachricht: Fehlender Parameter
$Self->{LogObject}->Log(
Priority => 'error',
Message => "TicketDynamicField module: Missing parameter '$Needed'!",
);
return;
}
}

# Das Objekt für das dynamische Feld abrufen
my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField');

# Debugging-Nachricht: Dynamisches Feld und TicketID
$Self->{LogObject}->Log(
Priority => 'notice',
Message => "TicketDynamicField module: DynamicField: $Param{DynamicField}, TicketID: $Param{TicketID}",
);

# Den Wert des dynamischen Feldes für das Ticket abrufen
my $FieldValue = $DynamicFieldObject->ValueGet(
DynamicFieldConfig => $Param{DynamicField},
ObjectID => $Param{TicketID},
);

# Debugging-Nachricht: Wert des dynamischen Feldes
$Self->{LogObject}->Log(
Priority => 'notice',
Message => "TicketDynamicField module: FieldValue: $FieldValue",
);

# Überprüfen, ob der Feldwert mit dem Suchwert übereinstimmt und die entsprechende Farbe zurückgeben
if ( $FieldValue =~ /^$Param{SearchValue}/ ) {
# Debugging-Nachricht: Farbe zurückgeben
$Self->{LogObject}->Log(
Priority => 'notice',
Message => "TicketDynamicField module: Returning color: $Param{Color}",
);
return $Param{Color}; # Die konfigurierte Farbe zurückgeben
} else {
# Debugging-Nachricht: Keine Farbe zurückgeben
$Self->{LogObject}->Log(
Priority => 'notice',
Message => "TicketDynamicField module: Not returning color",
);
return; # Sonst nichts zurückgeben
}
}

1;
Post Reply