Ich habe ein kleines Problem mit der Anbindung von OTRS 6.0.19 an eine Kundendatenbank via MySQL - vielleicht hat ja einer ´ne Idee was ich falsch mache.
Kurz vorweg: Da das verwendete ERP alle benötigten Daten über mehrere Tabellen verteilt habe ich einen Datenbank-View erstellt der von OTRS verwendet wird. Scheint an sich ja auch so zu funktionieren.
Jetzt zum Problem: OTRS meldet folgendes im Systemprotokoll
Code: Select all
Unknown column 'create_time' in 'field list', SQL: 'SELECT AP_Anrede, AP_Vorname, AP_Nachname, AP_Position, AP_Mail, AP_Passwort, AP_Mail, Kunde_Kundennummer, AP_Telefon, AP_Handy, Kunde_Strasse, Kunde_Postleitzahl, Kunde_Stadt, create_time, create_by, change_time, change_by, AP_Mail FROM kundenliste WHERE LOWER(AP_Mail) = LOWER(?) LIMIT 1'
Code: Select all
Need UserLogin!
Werden die Spalten wie create_time usw. wirklich benötigt, auch wenn die Datenbank ReadOnly ist?!
Außerdem frage ich mich, ob in der Kundenverwaltung alle Kunden trotzdem manuell gepflegt werden müssen oder ob ich das auch aus der Datenbank holen kann.
Hier der Auszug zur Anbindung aus der Config.pm:
Code: Select all
# ---------------------------------------------------- #
# EXTERNAL User database settings (ERP) #
# ---------------------------------------------------- #
# CustomerUser (customer database backend and settings)
$Self->{CustomerUser2} = {
Name => 'Database Datasource ERP',
Module => 'Kernel::System::CustomerUser::DB',
Params => {
DSN => 'DBI:mysql:database=erp;host=10.0.1.41',
User => 'otrs',
Password => '#####################',
Table => 'kundenliste',
CaseSensitive => 0,
},
# customer unique id
CustomerKey => 'AP_Mail',
# customer #
CustomerID => 'Kunde_Kundennummer',
CustomerUserListFields => ['AP_Vorname', 'AP_Nachname', 'AP_Mail'],
CustomerUserSearchFields => ['AP_Mail', 'AP_Nachname', 'AP_Vorname', 'Kunde_Kundennummer'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['AP_Mail'],
CustomerUserNameFields => ['AP_Vorname','AP_Nachname'],
CustomerUserEmailUniqCheck => 1,
# just a read only source
ReadOnly => 1,
Map => [
# note: Login, Email and CustomerID needed!
# var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly, http-link-target
[ 'UserTitle', 'Title', 'AP_Anrede', 1, 0, 'var', '', 1 ],
[ 'UserFirstname', 'Firstname', 'AP_Vorname', 1, 1, 'var', '', 1 ],
[ 'UserLastname', 'Lastname', 'AP_Nachname', 1, 1, 'var', '', 1 ],
[ 'UserPosition', 'Position', 'AP_Position', 1, 0, 'var', '', 1 ],
[ 'UserLogin', 'Username', 'AP_Mail', 1, 1, 'var', '', 1 ],
[ 'UserPassword', 'Password', 'AP_Passwort', 0, 0, 'var', '', 1 ],
[ 'UserEmail', 'Email', 'AP_Mail', 1, 1, 'var', '', 1 ],
[ 'UserCustomerID', 'CustomerID', 'Kunde_Kundennummer', 0, 1, 'var', '', 1 ],
[ 'UserPhone', 'Phone', 'AP_Telefon', 1, 0, 'var', '', 1 ],
[ 'UserMobile', 'Mobile', 'AP_Handy', 1, 0, 'var', '', 1 ],
[ 'UserStreet', 'Street', 'Kunde_Strasse', 1, 0, 'var', '', 1 ],
[ 'UserZip', 'Zip', 'Kunde_Postleitzahl', 1, 0, 'var', '', 1 ],
[ 'UserCity', 'City', 'Kunde_Stadt', 1, 0, 'var', '', 1 ],
],
};
Gruß Björn