Zuordnung aus CustomerDB mit doppelten Mailadressen

Hilfe zu OTRS Problemen aller Art
Post Reply
StephanSch
Znuny newbie
Posts: 29
Joined: 22 Mar 2007, 18:51
Znuny Version: 3.3.6
Location: Berlin

Zuordnung aus CustomerDB mit doppelten Mailadressen

Post by StephanSch »

Hi,

ich habe ein Problem bei der Zuordnung von Kundendaten aus einer weiteren Kundendatenbank.
In der DB ist ein Kontakt manchmal (!) mehrmals aufgeführt, mit selben Grunddaten (Name, Anrede, ..., auch mehrfach selbe Mailadresse), aber unterschiedlichen weiteren Daten (z.B. ein ihm verantwortlicher Shop und in einem anderen Datensatz ein weiterer). Jeder Datensatz hat aber eine eindeutige ID (nicht die Mailadresse). Aufbau siehe unten.

Wenn jetzt ein Ticket/Mail von diesem doppelten Kunden kommt kann OTRS nicht wissen welchen Datensatz es wählen soll. Das ist für diesen Fall, dass der Mailadresse doppelt da ist auch ok. Dann würde manuell der richtige Kunde ausgewählt werden.

Wenn ich als CustomerKey die eindeutige ID nehme werden die Kundendaten im Ticketzoom nie angezeigt (auch wenn Datensatz/Mailadresse nur einmalig). Nehme ich email als CustomerKey funktioniert die Zuordnung zwar bei den eingehenden Mails, aber es werden bei der Suche nach einem anderen Kundendatensatz immer nur einer angezeigt. Sicherlich weil OTRS den CustomerKey als Datenbank-Primärschlüssel hernimmt.


Die mySQL Datenbank mit den Kundendaten ist wie folgt aufgebaut (Auszug):

Code: Select all

# id, login, email, title, first_name, valid_id, shop, cluster, status
'307880', 'info@123.de', 'info@123.de', NULL, 'Winrich', '1', '123.de', 'E', '21'
'307881', 'muster@abc.biz', 'muster@abc.biz', NULL, 'Chris', '1', 'abc.biz', 'D', '21'
'307884', 'muster@567.com', 'muster@567.com', NULL, 'Franziska', '1', '567890abc.de', 'E', '21'
'307886', 'muster@alpha-xyz.de', 'muster@alpha-xyz.de', NULL, NULL, '1', 'musterurl.de', 'E', '21'
'307887', 'kontakt@alpha-xyz.de', 'kontakt@alpha-xyz.de', NULL, NULL, '1', 'musterurl.de', 'E', '21'
'307888', 'kontakt@alpha-xyz.de', 'kontakt@alpha-xyz.de', NULL, NULL, '1', 'musterurl-outlet.de', 'E', '21'

Die Config wie folgt (Auszug):

Code: Select all

$Self->{CustomerUser2} = {
    Name => 'ShopDB',
    Module => 'Kernel::System::CustomerUser::DB',
    Params => {
            DSN => 'DBI:mysql:database=otrs_customer_bla;host=localhost',
            User => 'isnich',
            Password => 'denkste',
            Table => 'customer',
            SourceCharset => 'utf-8',
            DestCharset => 'utf-8',
            CaseSensitive => 0,
        },
        # customer unique id
        CustomerKey => 'id',

        # customer #
        CustomerID => 'id',
        CustomerValid => 'valid_id',
    CustomerUserListFields => ['first_name', 'last_name','shop', 'oracleid', 'email'],
    CustomerUserSearchFields => ['id', 'last_name', 'email', 'shop', 'oracleid', 'akquiseid'],
    CustomerUserSearchPrefix => '',
    CustomerUserSearchSuffix => '*',
    CustomerUserSearchListLimit => 250,
    CustomerUserPostMasterSearchFields => ['email'],
    CustomerUserNameFields => ['title','first_name','last_name'],
    CustomerUserEmailUniqCheck => 1,
#    # show not own tickets in customer panel, CompanyTickets
#    CustomerUserExcludePrimaryCustomerID => 0,
#    # generate auto logins
#    AutoLoginCreation => 0,
#    AutoLoginCreationPrefix => 'auto',
#    # admin can change customer preferences
    AdminSetPreferences => 0,
#    # cache time to live in sec. - cache any database queries
    CustomerCompanySupport => 0,
    CacheTTL => 3600,
#    # 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
        [ 'Shop',               'Shop',         'shop',                                 1, 0, 'var', '$Data{"ShopURL"}', 1 , "_blank"],
        [ 'ShopCluster',        'Shop-Cluster', 'cluster',                              1, 1, 'var', '', 1 ],
        [ 'UserTechAccountManager','Tech Account Manager','tech_account_manager',       1, 0, 'var', '', 1 ],
        [ 'UserAccountManager', 'Account Manager','account_manager',                    1, 0, 'var', '', 1 ],
        [ 'UserSalesManager',   'Sales Manager','sales_manager',                        1, 0, 'var', '', 1 ],
        [ 'UserTitle',          'Title',      'title',                                  1, 0, 'var', '', 1 ],
        [ 'UserFirstname',      'Firstname',  'first_name',                             1, 1, 'var', '', 1 ],
        [ 'UserLastname',       'Lastname',   'last_name',                              1, 1, 'var', '', 1 ],
        [ 'UserLogin',          'Username',   'login',                                  0, 1, 'var', '', 1 ],
#        [ 'UserPassword',      'Password',   'pw',                                     0, 0, 'var', '', 0 ],
        [ 'UserEmail',          'Email',      'email',                                  0, 1, 'var', '', 1 ],
        [ 'ShopFax',            'Shop-Fax',    'shop_fax',                              0, 0, 'var', '', 1 ],
        [ 'UserMobile',         'Mobile',      'mobile',                                0, 0, 'var', '', 1 ],
        [ 'UserStreet',         'Street',      'street',                                0, 0, 'var', '', 1 ],
        [ 'UserZip',            'Zip',         'zip',                                   0, 0, 'var', '', 1 ],
        [ 'UserCity',           'City',        'city',                                  0, 0, 'var', '', 1 ],
        [ 'UserCountry',        'Country',     'country',                               0, 0, 'var', '', 1 ],
        [ 'UserComment',        'Comment',     'comments',                              0, 0, 'var', '', 1 ],
        [ 'ValidID',            'Valid',       'valid_id',                              0, 1, 'int', '', 1 ],
        [ 'UserRole',           'Rolle',       'role',                                  1, 0, 'var', '', 1 ],
    ],
    # default selections
    Selections => {
#        UserTitle => {
#            'Mr.' => 'Mr.',
#            'Mrs.' => 'Mrs.',
#        },
    },
};

Ich benötige also eine Variante in der bei eingehenden Mails der Kunde automatisch erkannt wird (anhand der Mailadresse), aber der primary Key die ID ist, die nicht die Mailadresse ist.
OTRS Produktiv: 3.3.6
OS: Debian 7
Apache 2.2.22
MySQL 5.5.35
Post Reply