OTRS und CustomerDB in MSSQL
Hi,
ich habe mein OTRS 2.1.2 erfolgreich installiert (Debian) und bemühe mich nun unsere Kundendaten aus dem MS SQL Server 2000 auszulesen.
Ein eigener Benutzer ist eingerichtet und der Zugriff (per ODBC) funktioniert. (getestet via isql: "isql -v dsn username password")
Wie bekomme ich nun meine Kundentabelle (genauer: eine View) ausgelesen?
Ich habe den Vorschlag aus http://doc.otrs.org/2.1/de/html/x1429.html übernommen (Datenbank (Standard)).
Meine Frage nun: Wie sieht ein vernünftiger, funktionierender (!) Connect-String für den SQL-Server aus? Egal ob ODBC oder direk (sybase).
Ich bekomme hier bei versuchen mit den folgenden Einträgen Fehlermeldungen.
DSN => 'DBI:odbc:meinedsn', oder: DSN => 'DBI:mysql:database=meinekundendb;host=ip_meines_sql_servers',
User => 'otrs', Password => 'meinpasswort', Table => 'mssqlcustomer',
[Tue Oct 31 12:07:16 2006] [error] [client meineIP] ERROR: OTRS-CGI-10 Perl: 5.8.8 OS: linux Time: Tue Oct 31 12:07:16 2006 [Tue Oct 31 12:07:16 2006] [error] [client meineIP] Message: Unknown database type! Set option Database::Type in Kernel/Config.pm to (mysql|postgresql|maxdb|oracle|db2|mssql). [Tue Oct 31 12:07:16 2006] [error] [client meineIP] Traceback (32037): [Tue Oct 31 12:07:16 2006] [error] [client meineIP] Module: Kernel::System::DB::new (v1.53) Line: 145 [Tue Oct 31 12:07:16 2006] [error] [client meineIP] Module: Kernel::System::CustomerUser::DB::new (v1.40) Line: 56 [Tue Oct 31 12:07:16 2006] [error] [client meineIP] Module: Kernel::System::CustomerUser::new (v1.28) Line: 80 [Tue Oct 31 12:07:16 2006] [error] [client meineIP] Module: Kernel::System::Ticket::new (v1.226) Line: 116 [Tue Oct 31 12:07:16 2006] [error] [client meineIP] Module: Kernel::System::Web::InterfaceAgent::Run (v1.14) Line: 184 [Tue Oct 31 12:07:16 2006] [error] [client meineIP] Module: /opt/otrs/bin/cgi-bin/index.pl (v1.81) Line: 47 [Tue Oct 31 12:07:16 2006] index.pl: Can't connect to database! at ../..//Kernel/System/CustomerUser/DB.pm line 56.
Aber es geht noch weiter:
Im Mapping habe ich ja die folgenden Zeilen:
Map => [ # note: Login, Email and CustomerID needed! # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly [ 'UserSalutation', 'Salutation', 'salutation', 1, 0, 'var', '', 0 ], [ 'UserFirstname', 'Firstname', 'first_name', 1, 1, 'var', '', 0 ], [ 'UserLastname', 'Lastname', 'last_name', 1, 1, 'var', '', 0 ], [ 'UserLogin', 'Username', 'login', 1, 1, 'var', '', 0 ], [ 'UserPassword', 'Password', 'pw', 0, 1, 'var', '', 0 ], [ 'UserEmail', 'Email', 'email', 0, 1, 'var', '', 0 ], [ 'UserCustomerID', 'CustomerID', 'customer_id', 0, 1, 'var', '', 0 ], # [ 'UserCustomerIDs', 'CustomerIDs', 'customer_ids', 1, 0,'var', '', 0 ], [ 'UserComment', 'Comment', 'comments', 1, 0, 'var', '', 0 ], [ 'ValidID', 'Valid', 'valid_id', 0, 1, 'int', '', 0 ], ],
Die Reihenfolge bedeutet dann: 1. Variablenname für OTRS 2. Anzeigename (Beschriftung) 3. Name der DB-Spalte? 4. Wird angezeigt? 0/1/2 5. wird benötigt? 0/1 6. Datentyp 7. ????? 8. readonly 0/1
Ist diese Deutung richtig?
Paul --
On Tue, Oct 31, 2006 at 12:58:29PM +0100, Paul Puschmann wrote:
Hi,
ich habe mein OTRS 2.1.2 erfolgreich installiert (Debian) und bemühe mich nun unsere Kundendaten aus dem MS SQL Server 2000 auszulesen.
Ein eigener Benutzer ist eingerichtet und der Zugriff (per ODBC) funktioniert. (getestet via isql: "isql -v dsn username password")
Wie bekomme ich nun meine Kundentabelle (genauer: eine View) ausgelesen?
Ich habe den Vorschlag aus http://doc.otrs.org/2.1/de/html/x1429.html übernommen (Datenbank (Standard)).
Meine Frage nun: Wie sieht ein vernünftiger, funktionierender (!) Connect-String für den SQL-Server aus? Egal ob ODBC oder direkt (sybase).
Ich habe heute noch weiter experimentiert und habe dabei schon sichergestellt, dass odbc funktioniert.
Mein Connect-String sieht nun so aus: DSN => 'DBI:ODBC:meinedsn', 'otrsuser', 'password', Table => 'test_otrs',
Ich habe per einfachem Perl-Script die Funktion überprüft: ====== #!/usr/bin/perl use DBI; my $dbh = DBI->connect('DBI:ODBC:meinedsn', 'otrsuser', 'password') or die "Couldn't connect to database: " . DBI->errstr; my $sql = qq/select count(*) from test_otrs/; # the query to execute my $sth = $dbh->prepare($sql); # prepare the query $sth->execute(); # execute the query my ($col1); $sth->bind_col(1, $col1); while ($sth->fetch) { # retrieve one row print "$col1\n"; } ====== Das Ergebnis war korrekt.
Die Fehlermeldung bei der Benutzung von OTRS aber bleibt: ======= ERROR: OTRS-GenericAgent-10 Perl: 5.8.8 OS: linux Time: Thu Nov 9 16:10:02 2006
Message: Unknown database type! Set option Database::Type in Kernel/Config.pm to (mysql|postgresql|maxdb|oracle|db2|mssql).
Traceback (16701): Module: Kernel::System::DB::new (v1.53) Line: 145 Module: Kernel::System::CustomerUser::DB::new (v1.40) Line: 56 Module: Kernel::System::CustomerUser::new (v1.28) Line: 80 Module: Kernel::System::Ticket::new (v1.226) Line: 116 Module: /opt/otrs//bin/GenericAgent.pl (v1.39) Line: 81
Can't connect to database! at /opt/otrs/Kernel/System/CustomerUser/DB.pm line 56, <PRODUCT> line 4. =======
Damit scheint es ja so, dass OTRS selbst ODBC nicht unterstützt sondern einen direkten Zugriff auf die DB's erwartet (eben wegen dieser (für mich hier sinnfreien) Abfrage auf den DB-Typ).
Ich habe keine große Lust hier wild im OTRS zu coden, da ich mich mit Perl kaum auskenne.
Dann werde ich gleich wohl mal einen Bugreport schreiben wenn es per Zugriff mit "Sybase" nicht funktioniert.
Paul
Hallo Liste,
man kann mit dem PostMaster Filter ja ein Ticket gleich einer bestimmten Queue zuordnen sobald es ins System kommt. Gibt es auch die Möglichkeit gleich einen Agent zu bestimmen.
Also Queue und Agent gleich zuzuordnen wenn eine bestimmte Absender Adresse vorhanden ist?
Vielen Dank im voraus.
Mit freundlichen Grüßen,
Dominic Priesmann
On Thu, Nov 09, 2006 at 06:24:37PM +0100, Dominic Priesmann wrote:
Hallo Liste,
man kann mit dem PostMaster Filter ja ein Ticket gleich einer bestimmten Queue zuordnen sobald es ins System kommt. Gibt es auch die Möglichkeit gleich einen Agent zu bestimmen.
Also Queue und Agent gleich zuzuordnen wenn eine bestimmte Absender Adresse vorhanden ist?
Bitte einen neuen Thread aufmachen, statt einen zu klauen.
Nicht "Antworten" nutzen und dann nur das Subject ändern sondern "neue Nachricht" nutzen.
Paul
Hallo Paul,
Paul Puschmann schrieb:
On Tue, Oct 31, 2006 at 12:58:29PM +0100, Paul Puschmann wrote:
Hi,
ich habe mein OTRS 2.1.2 erfolgreich installiert (Debian) und bemühe mich nun unsere Kundendaten aus dem MS SQL Server 2000 auszulesen.
Ein eigener Benutzer ist eingerichtet und der Zugriff (per ODBC) funktioniert. (getestet via isql: "isql -v dsn username password")
Wie bekomme ich nun meine Kundentabelle (genauer: eine View) ausgelesen?
Ich habe den Vorschlag aus http://doc.otrs.org/2.1/de/html/x1429.html übernommen (Datenbank (Standard)).
Meine Frage nun: Wie sieht ein vernünftiger, funktionierender (!) Connect-String für den SQL-Server aus? Egal ob ODBC oder direkt (sybase).
Ich habe heute noch weiter experimentiert und habe dabei schon sichergestellt, dass odbc funktioniert.
Damals habe ich auch überlegt ob ich statt Sybase ODBC verwende ,jedoch a) ist Sybase der direktere Weg b) scheint ODBC unter Linux über ein lizenzpflichtiges Software zu gehen.
Kannst Du zu (b) was sagen? Welche SW verwendest Du?
Mein Connect-String sieht nun so aus: DSN => 'DBI:ODBC:meinedsn', 'otrsuser', 'password', Table => 'test_otrs',
Ich habe per einfachem Perl-Script die Funktion überprüft:
#!/usr/bin/perl use DBI; my $dbh = DBI->connect('DBI:ODBC:meinedsn', 'otrsuser', 'password') or die "Couldn't connect to database: " . DBI->errstr; my $sql = qq/select count(*) from test_otrs/; # the query to execute my $sth = $dbh->prepare($sql); # prepare the query $sth->execute(); # execute the query my ($col1); $sth->bind_col(1, $col1); while ($sth->fetch) { # retrieve one row print "$col1\n"; } ====== Das Ergebnis war korrekt.
Die Fehlermeldung bei der Benutzung von OTRS aber bleibt:
ERROR: OTRS-GenericAgent-10 Perl: 5.8.8 OS: linux Time: Thu Nov 9 16:10:02 2006
Message: Unknown database type! Set option Database::Type in Kernel/Config.pm to (mysql|postgresql|maxdb|oracle|db2|mssql).
Traceback (16701): Module: Kernel::System::DB::new (v1.53) Line: 145 Module: Kernel::System::CustomerUser::DB::new (v1.40) Line: 56 Module: Kernel::System::CustomerUser::new (v1.28) Line: 80 Module: Kernel::System::Ticket::new (v1.226) Line: 116 Module: /opt/otrs//bin/GenericAgent.pl (v1.39) Line: 81
Can't connect to database! at /opt/otrs/Kernel/System/CustomerUser/DB.pm line 56, <PRODUCT> line 4. =======
Damit scheint es ja so, dass OTRS selbst ODBC nicht unterstützt sondern einen direkten Zugriff auf die DB's erwartet (eben wegen dieser (für mich hier sinnfreien) Abfrage auf den DB-Typ).
Schau Dir http://faq.otrs.org/otrs/public.pl?Action=PublicFAQ&ID=121 an. Verwendest Du $Self->{"Database::Type"} = "mssql"; ?
Ich habe keine große Lust hier wild im OTRS zu coden, da ich mich mit Perl kaum auskenne.
Dann werde ich gleich wohl mal einen Bugreport schreiben wenn es per Zugriff mit "Sybase" nicht funktioniert.
Paul
Gruß, Alexander
On Fri, Nov 10, 2006 at 07:46:38AM +0100, Alexander Scholler wrote:
Hallo Paul,
Paul Puschmann schrieb:
On Tue, Oct 31, 2006 at 12:58:29PM +0100, Paul Puschmann wrote:
Hi,
ich habe mein OTRS 2.1.2 erfolgreich installiert (Debian) und bemühe mich nun unsere Kundendaten aus dem MS SQL Server 2000 auszulesen.
Ein eigener Benutzer ist eingerichtet und der Zugriff (per ODBC) funktioniert. (getestet via isql: "isql -v dsn username password")
Wie bekomme ich nun meine Kundentabelle (genauer: eine View) ausgelesen?
Ich habe den Vorschlag aus http://doc.otrs.org/2.1/de/html/x1429.html übernommen (Datenbank (Standard)).
Meine Frage nun: Wie sieht ein vernünftiger, funktionierender (!) Connect-String für den SQL-Server aus? Egal ob ODBC oder direkt (sybase).
Ich habe heute noch weiter experimentiert und habe dabei schon sichergestellt, dass odbc funktioniert.
Damals habe ich auch überlegt ob ich statt Sybase ODBC verwende ,jedoch a) ist Sybase der direktere Weg b) scheint ODBC unter Linux über ein lizenzpflichtiges Software zu gehen.
Kannst Du zu (b) was sagen? Welche SW verwendest Du?
Ich nutze freeTDS und unixODBC.
Der Zugriff per Sybase und ODBC funktioniert auch, ich habe es getestet. (Mit Perl und PHP).
Nur in OTRS bekomme ich Probleme. Ich habe dazu auch direkt zwei Bugs aufgemacht. http://bugs.otrs.org/show_bug.cgi?id=1471 http://bugs.otrs.org/show_bug.cgi?id=1469
*snip*
Schau Dir http://faq.otrs.org/otrs/public.pl?Action=PublicFAQ&ID=121 an. Verwendest Du $Self->{"Database::Type"} = "mssql"; ?
Dieser Teil ist ja nur geeignet, wenn man generell MS-SQL als DB-Storage nutzen will. (So verstehe ich das zumindest).
Es wäre einfach nur wünschenswert wenn in den Docs Beispiele zu den verschiedenen Datenbanken enthalten wären.
ich habe keine große Lust hier wild im OTRS zu coden, da ich mich mit Perl kaum auskenne.
Dann werde ich gleich wohl mal einen Bugreport schreiben wenn es per Zugriff mit "Sybase" nicht funktioniert.
So geschehen.
Paul
participants (3)
-
Alexander Scholler
-
Dominic Priesmann
-
Paul Puschmann