bin noch recht unerfahren mit otrs.
ich habe eine otrs 5 installation auf debian mit mysql backend.
gerne würde ich die otrs kunden und kundenbenutzer aus einer bestehenden crm db (postgresql 9.4) beziehen.
in dieser crm habe ich customers (firmen / einzelpersonen) und contacts (ansprechpersonen der firmen bzw erneut einzelpersonen) verküpft über eine gemeinsame id
abgesehen davon, dass ich noch nicht ganz glücklich bin wie otrs kunden und kundenbenutzer trennt / nutzt habe ich versucht meine contacts db in otrs als kundenbenutzer anzubinden.
Code: Select all
$Self->{CustomerUser} = {
Name => 'Kivitendo',
Module => 'Kernel::System::CustomerUser::DB',
Params => {
DSN => 'DBI:Pg:database=g2012;host=ip',
User => 'otrs',
Password => '...,
Table => 'contacts',
ForeignDB => 1, # set this to 1 if your table does not have create_time, create_by, change_time and change_by fields
},
# customer unique id
CustomerKey => 'cp_id',
# customer #
CustomerID => 'customer_id',
CustomerValid => 'valid_id',
# The last field must always be the email address so that a valid
# email address like "John Doe" <john.doe@domain.com> can be constructed from the fields.
CustomerUserListFields => [ 'cp_givenname', 'cp_name', 'cp_email' ],
# CustomerUserListFields => ['login', 'first_name', 'last_name', 'customer_id', 'email'],
CustomerUserSearchFields => [ 'cp_email', 'cp_givenname', 'cp_name', 'cp_id' ],
CustomerUserSearchPrefix => '*',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['cp_email'],
CustomerUserNameFields => [ 'cp_title', 'cp_givenname', 'cp_name' ],
CustomerUserEmailUniqCheck => 1,
# AutoLoginCreation => 0,
# AutoLoginCreationPrefix => 'auto',
# AdminSetPreferences => 1,
# use customer company support (reference to company, See CustomerCompany settings)
CustomerCompanySupport => 1,
# cache time to live in sec. - cache any database queries
CacheTTL => 60 * 60 * 24,
# 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, link class(es)
[ 'UserTitle', 'Title', 'cp_title', 1, 0, 'var', '', 0 ],
[ 'UserFirstname', 'Firstname', 'cp_givenname', 1, 1, 'var', '', 0 ],
[ 'UserLastname', 'Lastname', 'cp_name', 1, 1, 'var', '', 0 ],
# [ 'UserLogin', 'Username', 'login', 1, 1, 'var', '', 0 ],
# [ 'UserPassword', 'Password', 'pw', 0, 0, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'cp_email', 1, 1, 'var', '', 0 ],
# [ 'UserEmail', 'Email', 'email', 1, 1, 'var', '[% Env("CGIHandle") %]?Action=AgentTicketCompose;ResponseID=1;TicketID=[% Data.TicketID | uri %];ArticleID=[% Data.ArticleID | uri %]', 0, '', 'AsPopup OTRSPopup_TicketAction' ],
[ 'UserCustomerID', 'CustomerID', 'cp_id', 0, 1, 'var', '', 0 ],
# [ 'UserCustomerIDs', 'CustomerIDs', 'customer_ids', 1, 0, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'cp_phone1', 1, 0, 'var', '', 0 ],
[ 'UserFax', 'Fax', 'cp_fax', 1, 0, 'var', '', 0 ],
[ 'UserMobile', 'Mobile', 'cp_mobile1', 1, 0, 'var', '', 0 ],
[ 'UserStreet', 'Street', 'cp_street', 1, 0, 'var', '', 0 ],
[ 'UserZip', 'Zip', 'cp_zipcode', 1, 0, 'var', '', 0 ],
[ 'UserCity', 'City', 'cp_city', 1, 0, 'var', '', 0 ],
[ 'UserCountry', 'Country', 'cp_country', 1, 0, 'var', '', 0 ],
[ 'UserComment', 'Comment', 'cp_notes', 1, 0, 'var', '', 0 ],
# [ 'ValidID', 'Valid', 'valid_id', 0, 1, 'int', '', 0 ],
],
# default selections
Selections => {
# UserTitle => {
# 'Mr.' => 'Mr.',
# 'Mrs.' => 'Mrs.',
# },
},
};
Offensichtlich hab ich postgresql noch nicht richtig eingebunden...2015-12-08 16:24:43 CET [31047-1] otrs@g2012 FEHLER: Operator existiert nicht: integer ~~ unknown bei Zeichen 142
2015-12-08 16:24:43 CET [31047-2] otrs@g2012 TIPP: Kein Operator stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
2015-12-08 16:24:43 CET [31047-3] otrs@g2012 ANWEISUNG: SELECT cp_id , cp_givenname, cp_name, cp_email FROM contacts WHERE ((cp_email LIKE $1 OR cp_givenname LIKE $2 OR cp_name LIKE $3 OR cp_id LIKE $4 ) ) LIMIT 250
2015-12-08 16:38:16 CET [31651-1] otrs@g2012 FEHLER: Operator existiert nicht: integer ~~ unknown bei Zeichen 142
2015-12-08 16:38:16 CET [31651-2] otrs@g2012 TIPP: Kein Operator stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
2015-12-08 16:38:16 CET [31651-3] otrs@g2012 ANWEISUNG: SELECT cp_id , cp_givenname, cp_name, cp_email FROM contacts WHERE ((cp_email LIKE $1 OR cp_givenname LIKE $2 OR cp_name LIKE $3 OR cp_id LIKE $4 ) ) LIMIT 250
ideen?