OTRS 6.x Dynamische Felder - SQL Abfrage - Ticket und Dynamische Felder

Hilfe zu OTRS Problemen aller Art
Post Reply
kunzgwc
Znuny newbie
Posts: 8
Joined: 24 Feb 2021, 14:00
Znuny Version: 6.x
Real Name: Matthias Kunz
Company: Gesundheitswelt AG

OTRS 6.x Dynamische Felder - SQL Abfrage - Ticket und Dynamische Felder

Post by kunzgwc »

Hallo zusammen,
leider hab ich diesbezüglich nichts finden können daher meine Frage.
Wir haben eine SQL Abfrage laufen, die uns alle offenen Tickets ausgibt und auflistet.
so nach dem Motto Select * from Ticket where xxx
Nun haben wir 3 Dynamische Felder deren Inhalt ich ja auch in der Datenbanktabelle dynamic_xyz finde und lesen kann.

Was mir aber nicht klar ist, wie die Zuordnung zum Ticket funktioniert - die 3 DB-Tabellen sind für mich anscheinend losgelöst von der DB-Tabelle Ticket oder article.

Weiß jemand von Euch wie diese Einträge in den dynamischen Feldern zum Ticket verbunden werden?
Dynamische-Felder.PNG

Grüße Matthias
You do not have the required permissions to view the files attached to this post.
zzz
Znuny superhero
Posts: 888
Joined: 15 Dec 2016, 15:13
Znuny Version: All
Real Name: Emin
Company: Efflux GmbH
Contact:

Re: OTRS 6.x Dynamische Felder - SQL Abfrage - Ticket und Dynamische Felder

Post by zzz »

Hallo Matthias,

entscheident ist die Tabelle dynamic_field_value.

Die Spalte field_id bezieht sich immer auf dynamic_field.id.
object_id bezieht sich auf die ID des Feld-Typen. Handelt es sich zum Beispiel um ein dynamisches Feld mit dem Typen "Ticket", bezieht es sich auf ticket.id und beim Typen "Artikel" wäre es article.id.

Ich würde jedoch stark empfehlen mit der Perl-API zu arbeiten oder, falls die Daten von außerhalb gelesen werden, Webservices zu benutzen.

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

Free and premium add-ons: German | English
root
Administrator
Posts: 3934
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: OTRS 6.x Dynamische Felder - SQL Abfrage - Ticket und Dynamische Felder

Post by root »

Hallo,

also für MySQL würde ich da jetzt mal eine Stored Procedure nehmen die man direkt in die Query einbindet:

Code: Select all

DROP FUNCTION IF EXISTS df_textvalue;
DELIMITER $$
CREATE FUNCTION df_textvalue (dfname VARCHAR(200),ticket BIGINT)
RETURNS TEXT
DETERMINISTIC
BEGIN  DECLARE dfvalue TEXT;

SELECT value_text INTO dfvalue
FROM dynamic_field_value dfv
WHERE dfv.field_id = (SELECT df.id FROM dynamic_field df WHERE df.name=dfname AND df.object_type='Ticket')
AND dfv.object_id =ticket;

RETURN (dfvalue);

END;

$$
DELIMITER ;
Danach geht dann einfach

Code: Select all

SELECT t,*,df_textvalue('Feldname', t.id) AS feldname FROM ticket t
- Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
kunzgwc
Znuny newbie
Posts: 8
Joined: 24 Feb 2021, 14:00
Znuny Version: 6.x
Real Name: Matthias Kunz
Company: Gesundheitswelt AG

Re: OTRS 6.x Dynamische Felder - SQL Abfrage - Ticket und Dynamische Felder

Post by kunzgwc »

Hallo zusammen,

Asche auf mein Haupt, habe ich tatsächlich übersehen dass die ID zur Ticket-ID passt.
Ich hätte schwören können ich habe es mit der ID und Ticket-Nummer versucht ......Vor lauter Bäumen den Wald nicht mehr..

An Euch lieben Dank, das hat funktioniert -

Super Vielen Dank noch mal
Grüße Matthias
Post Reply