Wie kann ich eine vorhandene SQL Datenbank in OTRS einfügen?

Hilfe zu OTRS Problemen aller Art
Post Reply
PSW
Znuny newbie
Posts: 52
Joined: 08 Dec 2008, 15:31

Wie kann ich eine vorhandene SQL Datenbank in OTRS einfügen?

Post by PSW »

Hallo und guten morgen,
gibt es eine möglichkeit eine vorhandene SQL Datenbank in das OTRS einzufügen, ohne das ich die ganzen User einzeln per Hand eingeben muss?
Gibt es evtl. ein Script das mir das abnimmt?
OTRS 2.4.7, , MySQL on RedHat 64Bit / ITSM 1.3.2
larf
Znuny expert
Posts: 285
Joined: 31 May 2006, 11:20

Wie kann ich eine vorhandene SQL Datenbank in OTRS einfügen?

Post by larf »

PSW wrote:gibt es eine möglichkeit eine vorhandene SQL Datenbank in das OTRS einzufügen, ohne das ich die ganzen User einzeln per Hand eingeben muss?
Was steht in der Datenbank? Kundendaten? Benutzerdaten? Lieblingsfilme der Mitarbeiter?
Gibt es evtl. ein Script das mir das abnimmt?
Woher soll dieses Script wissen, um was für Datensätze es sich da bei dir handelt? Sowas ist im Normalfall eine ziemlich spezielle Aufgabe.

Ich habe für mein OTRS-System ein Script in Perl geschrieben, das regelmässig neue Kundendaten aus einer Oracle-Datenbank holt und in die OTRS-Datenbank einfügt. Funktioniert völlig problemlos.
Produktiv-System: Centos 5 OTRS 2.3.4, MySQL 5
Test-System: Centos 4.4, OTRS 2.3.3, MySQL 4.1

Bitte keine Fragen per PM stellen! Das Forum kann euch besser helfen!
Daniel Obee
Moderator
Posts: 644
Joined: 19 Jun 2007, 17:11
Znuny Version: various
Real Name: Daniel Obée
Location: Berlin

Wie kann ich eine vorhandene SQL Datenbank in OTRS einfügen?

Post by Daniel Obee »

Man kann eine vorhandene Kundendatenbank recht leicht in OTRS einbinden, indem man die config.pm entsprechend modifiziert.

Die externen Datenbank wird dabei mit ein paar Einstellungen gemappt. Genaueres findest Du im Admin-Handbuch und eine (fast) selbsterklärende Matrix in jeder Standard-config.pm

Gruß
Daniel
Todde
Znuny newbie
Posts: 2
Joined: 18 May 2011, 15:28
Znuny Version: 3.0.3

Re: Wie kann ich eine vorhandene SQL Datenbank in OTRS einfü

Post by Todde »

Hi,

könntest du dein Scrip mal posten?
Das wäre ein riesen Hilfe!

Danke
Daniel Obee
Moderator
Posts: 644
Joined: 19 Jun 2007, 17:11
Znuny Version: various
Real Name: Daniel Obée
Location: Berlin

Re: Wie kann ich eine vorhandene SQL Datenbank in OTRS einfü

Post by Daniel Obee »

Todde wrote:Hi,

könntest du dein Scrip mal posten?
Das wäre ein riesen Hilfe!

Danke
Falls Du mich meinst, und nicht Script, sondern config, dann findest Du folgende Zeilen in der Kernel/config/defaults.pm:

Code: Select all

    # --------------------------------------------------- #
    #                                                     #
    #             Start of config options!!!              #
    #                 CustomerUser stuff                  #
    #                                                     #
    # --------------------------------------------------- #

    # CustomerUser
    # (customer user database backend and settings)
    $Self->{CustomerUser} = {
        Name   => 'Database Backend',
        Module => 'Kernel::System::CustomerUser::DB',
        Params => {
            # if you want to use an external database, add the
            # required settings
#            DSN => 'DBI:odbc:yourdsn',
#            DSN => 'DBI:mysql:database=customerdb;host=customerdbhost',
#            User => '',
#            Password => '',
            Table => 'customer_user',
        },

        # customer uniq id
        CustomerKey => 'login',

        # customer #
        CustomerID             => 'customer_id',
        CustomerValid          => 'valid_id',
        CustomerUserListFields => [ 'first_name', 'last_name', 'email' ],

#        CustomerUserListFields => ['login', 'first_name', 'last_name', 'customer_id', 'email'],
        CustomerUserSearchFields           => [ 'login', 'first_name', 'last_name', 'customer_id' ],
        CustomerUserSearchPrefix           => '*',
        CustomerUserSearchSuffix           => '*',
        CustomerUserSearchListLimit        => 250,
        CustomerUserPostMasterSearchFields => ['email'],
        CustomerUserNameFields     => [ 'salutation', 'first_name', 'last_name' ],
        CustomerUserEmailUniqCheck => 1,

#        # show not own tickets in customer panel, CompanyTickets
#        CustomerUserExcludePrimaryCustomerID => 0,
#        # generate auto logins
#        AutoLoginCreation => 0,
#        # generate auto login prefix
#        AutoLoginCreationPrefix => 'auto',
#        # admin can change customer preferences
#        AdminSetPreferences => 1,
#        # use customer company support (reference to company, See CustomerCompany settings)
#        CustomerCompanySupport => 1,
#        # cache time to life in sec. - cache any database queris
#        CacheTTL => 0,
#        # 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
            [ '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, 0, 'var', '', 0 ],
            [ 'UserEmail',      'Email',      'email',      1, 1, 'var', '', 0 ],

#            [ 'UserEmail',      'Email', 'email',           1, 1, 'var', '$Env{"CGIHandle"}?Action=AgentTicketCompose&ResponseID=1&TicketID=$Data{"TicketID"}&ArticleID=$Data{"ArticleID"}', 0 ],
            [ 'UserCustomerID', 'CustomerID', 'customer_id', 0, 1, 'var', '', 0 ],

#            [ 'UserCustomerIDs', 'CustomerIDs', 'customer_ids', 1, 0, 'var', '', 0 ],
            [ 'UserPhone',        'Phone',       'phone',        1, 0, 'var', '', 0 ],
            [ 'UserFax',          'Fax',         'fax',          1, 0, 'var', '', 0 ],
            [ 'UserMobile',       'Mobile',      'mobile',       1, 0, 'var', '', 0 ],
            [ 'UserStreet',       'Street',      'street',       1, 0, 'var', '', 0 ],
            [ 'UserZip',          'Zip',         'zip',          1, 0, 'var', '', 0 ],
            [ 'UserCity',         'City',        'city',         1, 0, 'var', '', 0 ],
            [ 'UserCountry',      'Country',     'country',      1, 0, 'var', '', 0 ],
            [ 'UserComment',      'Comment',     'comments',     1, 0, 'var', '', 0 ],
            [ 'ValidID',          'Valid',       'valid_id',     0, 1, 'int', '', 0 ],
        ],

        # default selections
        Selections => {

#            UserSalutation => {
#                'Mr.' => 'Mr.',
#                'Mrs.' => 'Mrs.',
#            },
        },
    };

Die lassen sich so in die eigene Kernel/config.pm übertragen und so anpassen, dass sie sich auf eine x-beliebige Datenbank bzw. Tabelle beziehen.

BITTE NICHT DIE DEFAULTS.PM ÄNDERN! Die wird bei jedem Update überschrieben.

Gruß
Daniel
Post Reply