OTRS5 Ticketcounter auslesen/inkrementen

Hilfe zu OTRS Problemen aller Art
Post Reply
w3sp
Znuny newbie
Posts: 28
Joined: 21 Dec 2017, 19:30
Znuny Version: OTRS5

OTRS5 Ticketcounter auslesen/inkrementen

Post by w3sp »

Hi,

ich muss ein Ticket datenbankseitig erzeugen, d.h. ohne E-Mail oder ohne das Frontend zu benutzen.

Ich werde dafür aller Voraussicht nach mehrere Tabellen ansprechen müssen. Ich habe bereits herausgefunden, woraus sich eine Ticketnummer wie z.B. 2018032019000184 zusammensetzt, und kann sie inkl. Prüfsumme reproduzieren. Probleme hierbei macht mir jedoch der der Ticketcounter.
Im perlcode (habe keine Perlkenntnisse) habe ich gesehen, dass hierbei öfters die Tabelle ticket_number_counter angesprochen wird.

Ich wollte mir daraufhin diese Tabelle einmal in der Datenbank anschauen, habe sie aber gar nicht gefunden? Wo liegt sie?

Gäbe es ansonsten die "dirty" Möglichkeit, beim datenbankseitigen Erstellen eines Tickets einen eigenen fake Counter abwärts laufen zu lassen (99999, 99998, usw.) in der Annahme, dass am Tag nicht mehr als 100.000 Tickets reinkommen?

Das ganze geht vermutlich auch irgendwie über eine API, jedoch bräuchte ich in dem Falle eine step-by-step Anleitung für doofe wie ich das genau einrichte. Die datenbankseitige Lösung wäre mir hier lieber.

Danke für Antworten :-)
zzz
Znuny superhero
Posts: 888
Joined: 15 Dec 2016, 15:13
Znuny Version: All
Real Name: Emin
Company: Efflux GmbH
Contact:

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by zzz »

Hallo,

stimmt die Info mit der 5er Version noch?
Falls ja, gibt es die Tabelle 'ticket_number_counter' noch nicht, sondern nur eine Datei unter var/log/TicketCounter.log.

Die AutoIncrement musst Du aber nicht direkt ansprechen. Benutz einfach den Operator TicketCreate über das GenericInterface.

Viele Grüße
Emin
Professional OTRS, Znuny & OTOBO services: efflux.de | efflux.de/en/

Free and premium add-ons: German | English
reneeb
Znuny guru
Posts: 5018
Joined: 13 Mar 2011, 09:54
Znuny Version: 6.0.x
Real Name: Renée Bäcker
Company: Perl-Services.de
Contact:

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by reneeb »

Bitte *nicht* datenbankseitig einfügen. Du musst dann in alle möglichen Tabellen was eintragen und Caches löschen und und und ...

Das von @zzz genannte GenericInterface ist eine Möglichkeit. Das mit der API zu erstellen ist aber auch kein Problem:

Code: Select all

#!/usr/bin/perl

use strict;
use warnings;

use lib qw(/opt/otrs /opt/otrs/Kernel/cpan-lib);

use Kernel::System::ObjectManager;

local $Kernel::OM = Kernel::System::ObjectManager->new;

my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket');

   my $TicketID = $TicketObject->TicketCreate(
       Title        => 'Some Ticket Title',
       Queue        => 'Raw',
       Lock         => 'unlock',
       Priority     => '3 normal',
       State        => 'new',
       CustomerID   => '12345',
       CustomerUser => 'customer@example.com',
       OwnerID      => 1,
       UserID       => 1,
   );
   
       my $ArticleID = $TicketObject->ArticleCreate(
        TicketID         => $TicketID,
        ArticleType      => 'note-internal',                        # email-external|email-internal|phone|fax|...
        SenderType       => 'agent',                                # agent|system|customer
        From             => 'Some Agent <email@example.com>',       # not required but useful
        To               => 'Some Customer A <customer-a@example.com>', # not required but useful
        Subject          => 'some short description',               # required
        Body             => 'the message text',                     # required
        ContentType      => 'text/plain; charset=ISO-8859-15',      # or optional Charset & MimeType
        HistoryType      => 'OwnerUpdate',                          # EmailCustomer|Move|AddNote|PriorityUpdate|WebRequestCustomer|...
        HistoryComment   => 'Some free text!',
        UserID           => 123,
    );
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
w3sp
Znuny newbie
Posts: 28
Joined: 21 Dec 2017, 19:30
Znuny Version: OTRS5

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by w3sp »

Hi,

ja, wir nutzen OTRS5! Heißt das, dass ich theoretisch den Counter in der Datei var/log/TicketCounter.log manipulieren kann?

Ich würde das ja gerne übers GenericInterface hinkriegen, aber habe leider von Linux & co nur sehr wenig Ahnung - OTRS hatte seinerzeit die IT für uns aufgesetzt.

Ich habe mir diese Datei runtergeladen: GenericTicketConnector.yml und bei Webservices importiert:
Image

Eine weitere Datei otrs.CreateTicket.pl habe ich per FTP auf den Server nach opt/otrs/bin kopiert. Wenn ich versuche diese mit perl otrs.CreateTicket.pl zu starten erhalte ich folgende meldung

Code: Select all

[**@** bin]$ perl otrs.CreateTicket.pl
Can't locate File/MimeInfo.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at otrs.CreateTicket.pl line 9.
BEGIN failed--compilation aborted at otrs.CreateTicket.pl line 9.
Die .pl Datei ist im Anhang.

Danke :-)

PS: Das mit den Cachedateien finden & löschen habe ich vor ein paar Monaten schon komplett gelöst, daran würde es also nicht scheitern :-)
You do not have the required permissions to view the files attached to this post.
reneeb
Znuny guru
Posts: 5018
Joined: 13 Mar 2011, 09:54
Znuny Version: 6.0.x
Real Name: Renée Bäcker
Company: Perl-Services.de
Contact:

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by reneeb »

Da Du ja den GenericInterface installiert/eingerichtet hast, kannst Du https://github.com/OTRS/otrs/blob/maste ... Request.pl nehmen um das Ticket zu erstellen.
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
w3sp
Znuny newbie
Posts: 28
Joined: 21 Dec 2017, 19:30
Znuny Version: OTRS5

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by w3sp »

Hi nochmal,

habe den Codeausschnitt von Dir getestet, damit lief es durch! Habe noch im Article-Teil die UserID=1 gesetzt, da es 123 nicht gibt.

Wie kann ich bestimmte Werte dann per Konsole festlegen ohne es in dem Script anpassen zu müssen? Dachte an sowas wie
"perl script.pl queue_id=5, title="hallo", etc

Werde nochmal ein wenig damit herumtesten :-)

Vielen Dank nochmal!
zzz
Znuny superhero
Posts: 888
Joined: 15 Dec 2016, 15:13
Znuny Version: All
Real Name: Emin
Company: Efflux GmbH
Contact:

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by zzz »

Wenn die Eingabe per Konsole laufen soll, würde ich die interne TicketCreate API benutzen, die Renée gepostet hat und einen OTRS Konsolen-Befehl daraus machen.

Als Beispiel für Eingaben kannst Du Dir bereits existierende Befehle anschauen. Somit kannst Du Fehler vermeiden und hast eine einigermaßen gleiche Code-Qualität.
Das GenericInterface ist als systemübergreifende Schnittstelle gedacht, dessen Nutzung unnötig wäre, wenn die Tickets sowieso aus der Konsole erstellt werden sollen.

Viele Grüße
Emin
Professional OTRS, Znuny & OTOBO services: efflux.de | efflux.de/en/

Free and premium add-ons: German | English
w3sp
Znuny newbie
Posts: 28
Joined: 21 Dec 2017, 19:30
Znuny Version: OTRS5

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by w3sp »

Werde mir den restrequest.pl mal anschauen. Muss dafür auch weiterhin das GenericInterface laufen oder könnte ich das dann sogar wieder deaktivieren?

LG
zzz
Znuny superhero
Posts: 888
Joined: 15 Dec 2016, 15:13
Znuny Version: All
Real Name: Emin
Company: Efflux GmbH
Contact:

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by zzz »

Das GenericInterface wird dann nicht mehr benötigt.

Viele Grüße
Emin
Professional OTRS, Znuny & OTOBO services: efflux.de | efflux.de/en/

Free and premium add-ons: German | English
w3sp
Znuny newbie
Posts: 28
Joined: 21 Dec 2017, 19:30
Znuny Version: OTRS5

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by w3sp »

Wenn ich das otrs.RESTRequest.pl laufen lasse:

Can't locate REST/Client.pm in @INC (@INC contains: /opt/otrs /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at otrs.RESTRequest.pl line 33.
BEGIN failed--compilation aborted at otrs.RESTRequest.pl line 33.

Fehlt da noch ein Modul? Wie kann ich das installieren?
reneeb
Znuny guru
Posts: 5018
Joined: 13 Mar 2011, 09:54
Znuny Version: 6.0.x
Real Name: Renée Bäcker
Company: Perl-Services.de
Contact:

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by reneeb »

schau mal, ob das in den normalen Repositories drin ist:

Ubuntu/Debian: sudo apt-get install librest-client-perl
CentOS: sudo yum install "perl(REST::Client)"
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
w3sp
Znuny newbie
Posts: 28
Joined: 21 Dec 2017, 19:30
Znuny Version: OTRS5

Re: OTRS5 Ticketcounter auslesen/inkrementen

Post by w3sp »

Installieren mit "yum" hat funktioniert, bin einen kleinen Schritt weitergekommen, aber es funktioniert noch nicht ganz... :-)

Code: Select all

[***@***:/opt/otrs/bin]# curl "https://...../otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket/10944?UserLogin=xxxxx&Password=yyyyyy" -k
Rest Transport: Have no Config
Die Option -k muss ich wegen dem Zertifikat verwenden.
Post Reply