OTRS 6: 2x Userbackends (LDAP und MSSQL)

Allgemein Fragen, deutsche News, Ankündigungen & Events zum OTRS
Post Reply
schmidtkropp
OTRS newbie
Posts: 7
Joined: 13 Nov 2019, 15:04
OTRS Version?: 6.0.23
Real Name: René

OTRS 6: 2x Userbackends (LDAP und MSSQL)

Post by schmidtkropp »

Moin zusammen,

ich möchte gerne an unser OTRS System zwei Userbackends anbinden. Zum einen die Internen Nutzer aus dem LDAP (das Funktioniert auch seit langen sehr gut und zuverlässig) und nun noch Nutzer aus dem CRM.

Dazu sieht die Conig.pm wie folgt aus:

Code: Select all

$Self->{CustomerUser2} = {
                Name => 'MSSQL',
                Module => 'Kernel::System::CustomerUser::DB',
                Params => {
                        DSN => 'DBI:ODBC:driver=ODBC Driver 17 for SQL Server;server=SQLSERVER;database=CRM-schnittstellen;uid=otrscrm;pwd=********;',
                        User => 'otrscrm',
                        Password => '********',
                        Type => 'mssql',
                        Table => 'dbo.adresse',
                },
                CustomerKey => 'id',
                CustomerID => 'id',
                CustomerValid => 'id',
                CustomerUserListFields => ['Firma', 'Vorname', 'Nachname', 'EMail'],
                CustomerUserSearchFields => ['Firma', 'Vorname', 'Nachname', 'EMail'],
                CustomerUserSearchPrefix => '',
                CustomerUserSearchSuffix => '*',
                CustomerUserSearchListLimit => 250,
                CustomerUserPostMasterSearchFields => ['EMail'],
                CustomerUserNameFields => ['Vorname', 'Nachname'],
                #CustomerUserExcludePrimaryCustomerID => 2,
                Map => [
                        [ 'UserFirstname',  'Firstname',  'Vorname',       1, 1, 'var', '', 0 ],
                        [ 'UserLastname',   'Lastname',   'Nachname',              1, 1, 'var', '', 0 ],
                        [ 'UserLogin',      'Username',   'EMail',             1, 1, 'var', '', 0 ],
                        [ 'UserEmail',      'Email',      'EMail',            1, 1, 'var', '', 0 ],
                        [ 'UserCustomerID', 'CustomerID', 'Firma',            0, 1, 'var', '', 0 ],
                        [ 'UserPhone',      'Phone',      'phonebusiness', 1, 0, 'var', '', 0 ],
                        [ 'UserFax',            'Fax',        'faxbusiness', 1, 0, 'var', '', 0 ],
                        [ 'UserMobile',     'Mobile',     'phonemobile',       1, 0, 'var', '', 0 ],
                        [ 'UserZip',        'Zip',        'PLZ',          1, 0, 'var', '', 0 ],
                        [ 'UserCity',       'City',       'Ort',         1, 0, 'var', '', 0 ],
                        [ 'UserAddress',    'Address',    'Strasse',   1, 0, 'var', '', 0 ],
                        [ 'UserComment',    'Comment',    'Abteilung',     1, 0, 'var', '', 0 ],
                ],
        };
Anfangs hatte ich ziemliche Problem bei der Einbindung der ODBC Verbindung. Inzwischen sieht das aber gut aus und das Log gibt keine Fehler.
Verwunderlich fand ich, das ich die Spalten [create_by] ,[change_by] ,[change_time] ,[create_time] zwingend in der Datenbank braucht (entsprechende Fehler standen im Log des Apache).
Nach dem ich die Spalten in der Tabelle angelegt habe, war die Meldung weg.

Ich gehe davon aus, das die Anbindung Funktioniert, da ich wenn ich in der Webgui bin unter Admin > Kundenbenutzer schaue, werden mir dort sowohl meine LDAP als auch die Daten aus der MSSQL Datenbank angezeigt.

Mein Problem: wenn ich jetzt ein Ticket für einen Benutzer aus dem CRM anlegen möchte, kann ich nicht nach den Benutzern suchen. Bei der Suche wird nur auf die Daten aus dem LDAP zurückgegriffen.
Das Problem überall da auf, wo ich sonst im System nach Personen oder Adressen über die Vorauswahl suche (Anlegen eines neue Tickets, ausgehende Mail etc.)

(Einen Kunden mit der KD Nr. 2 habe ich manuell im System angelegt)

Habe ich irgendetwas vergessen?

Vielen Dank im voraus.

p.s.
Hier noch einmal ein Paar Infos:
Im CRM haben wir ca 13.000 Datensätze die wir ins OTRS überführen wollen.

wurzel
OTRS guru
Posts: 2973
Joined: 08 Jul 2010, 22:25
OTRS Version?: 6.0.x

Re: OTRS 6: 2x Userbackends (LDAP und MSSQL)

Post by wurzel »

Hi,

es könnte vielleicht nur daran liegen:

Code: Select all

                CustomerUserSearchPrefix => '',
mach da mal 'n * rein

also

Code: Select all

                CustomerUserSearchPrefix => '*',
Flo
OTRS 8 SILVER (Prod)
OTRS 8 auf Debian 10 (Test)
    ((OTRS)) Community Edition 6.0.x, LAMP LIVE auf Debian 10

    -- Ich beantworte keine Forums-Fragen PN - No PN please

    I won't answer to unfriendly users any more. A greeting and regards are just polite.

    root
    Moderator
    Posts: 2246
    Joined: 18 Dec 2007, 12:23
    OTRS Version?: 4/5/6
    Real Name: Roy Kaldung
    Company: Znuny Inc.
    Contact:

    Re: OTRS 6: 2x Userbackends (LDAP und MSSQL)

    Post by root »

    schmidtkropp wrote:
    26 Jul 2020, 20:21
    Verwunderlich fand ich, das ich die Spalten [create_by] ,[change_by] ,[change_time] ,[create_time] zwingend in der Datenbank braucht (entsprechende Fehler standen im Log des Apache).
    Nach dem ich die Spalten in der Tabelle angelegt habe, war die Meldung weg.
    Hi,

    die Spalteen anlegen ist nicht nötig, es gibt eine Option um das zu umgehen: https://github.com/OTRS/otrs/blob/rel-6 ... s.pm#L1463

    Und was die Suche angeht: ich denke Wurzel hat da Recht, ansonsten würde auch etwas im Log stehen.

    - Roy
    OTRS 5/6 CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

    Do you need professional services for the ((OTRS)) Community Edition? Check out https://www.znuny.com/

    schmidtkropp
    OTRS newbie
    Posts: 7
    Joined: 13 Nov 2019, 15:04
    OTRS Version?: 6.0.23
    Real Name: René

    Re: OTRS 6: 2x Userbackends (LDAP und MSSQL)

    Post by schmidtkropp »

    Moin Moin,

    vielen Dank für die Tipps.

    Bezüglich des Werts: "ForeignDB => 0"
    Diesen habe ich eingetragen und auch die Spalten gelöscht. Sieht in diesem Fall jetzt gut aus.

    Bezüglich des anderen Problems:
    Dort habe ich die Zeile:

    Code: Select all

    CustomerUserSearchSuffix => '*',
    in

    Code: Select all

    CustomerUserSearchSuffix => '',
    geändert.
    Leider hat das das Problem auch nicht behoben. Bei der Suche werden mir immer noch nur die LDAP Kontakte ausgegeben.
    Kann es irgendwie sein, das man die Kunden irgendwie noch mit den Agenten bzw. Gruppen Verknüpfen muss?
    Oder kann es etwas damit zu tun haben, dass nicht bei allen Einträgen in der Datenbank alle Felder befüllt sind? So haben wir natürlich Firmen ohne Ansprechpartner über Firmen mit Ansprechpartnern bis hin zu Privatpersonen im Systemen und dort fehlt natürlich manchmal z.B. das Feld Name. Dafür ist das Feld Firma gefüllt.

    wurzel
    OTRS guru
    Posts: 2973
    Joined: 08 Jul 2010, 22:25
    OTRS Version?: 6.0.x

    Re: OTRS 6: 2x Userbackends (LDAP und MSSQL)

    Post by wurzel »

    Hi,

    Du solltest den * hinzufügen, nicht entfernen. :lol:
    Damit sparst Du Dir das Wildcard bei der Suche.

    Alternativ kannst Du im Fronfeld auch *Vorname* eingeben also mit den Sternchen umrahmt.
    der SearchPrefix + Suffix hängt - sofern er in der Config angegeben ist - automatisch dran. Dann kannste Dir die Eingabe mit dem Sternchen sparen.

    Kunden und Agenten muss man nicht verknüpfen. Die sind unabhängig. Wenn Sie in Admin > Kundenbenutzer auftauchen ist alles korrekt.


    Damit sie auftauchen - sowohl im Admin > Kundenbenutzer als auch in der Suche muss meines Wissens
    Vorname, Nachname, E-Mailadress und Username gefüllt sein. Das scheint bei Dir ja so zu sein. 8)

    viele Grüße
    Flo
    OTRS 8 SILVER (Prod)
    OTRS 8 auf Debian 10 (Test)
      ((OTRS)) Community Edition 6.0.x, LAMP LIVE auf Debian 10

      -- Ich beantworte keine Forums-Fragen PN - No PN please

      I won't answer to unfriendly users any more. A greeting and regards are just polite.

      schmidtkropp
      OTRS newbie
      Posts: 7
      Joined: 13 Nov 2019, 15:04
      OTRS Version?: 6.0.23
      Real Name: René

      Re: OTRS 6: 2x Userbackends (LDAP und MSSQL)

      Post by schmidtkropp »

      Entschuldigung :shock: ....
      Wer lesen kann wäre klar im Vorteil.

      Jetzt sehen die Zeilen so aus

      Code: Select all

      CustomerUserSearchPrefix => '*',
      CustomerUserSearchSuffix => '*',
      Leider immer noch ohne Erfolg...
      Wenn ich im Admin Berech z.B. nach meinem Nachname suche finde ich sowohl meinen privaten Kontakt (damit stehe ich auch im CRM) als auch meinen LDAP Account.
      Leider kann ich wenn ich über eine ausgehende Mail oder beim erstellen eines neuen Tickets suche finde ich dagegen leider nur meinen LDAP Account.

      root
      Moderator
      Posts: 2246
      Joined: 18 Dec 2007, 12:23
      OTRS Version?: 4/5/6
      Real Name: Roy Kaldung
      Company: Znuny Inc.
      Contact:

      Re: OTRS 6: 2x Userbackends (LDAP und MSSQL)

      Post by root »

      Hi,

      warum hast Du denn hier die Spalte id angegeben?

      Code: Select all

      CustomerKey => 'id',
      CustomerID => 'id',
      CustomerValid => 'id',
      
      CustomerKey sollte ein EINDEUTIGER Schlüssel für den Kundenbenutzer sein und am besten mit Spalte UserLogin aus dem Mapping übereinstimmen,
      CustomerID ist der Identifier der Firma, auch hier verwendest Du im Mapping ein anderes Feld (Firma)
      CustomerValid muss 1 enthalten wenn Du denm Eintrag aktiv auswählen möchtest, wie z.B. bei einem Telefonticket. Gültihe Wert für die Spalte auf die CustomerValid konfiguriert wir sind 1,2 oder 3 und nicht irgendwas.

      - Roy
      OTRS 5/6 CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

      Do you need professional services for the ((OTRS)) Community Edition? Check out https://www.znuny.com/

      schmidtkropp
      OTRS newbie
      Posts: 7
      Joined: 13 Nov 2019, 15:04
      OTRS Version?: 6.0.23
      Real Name: René

      Re: OTRS 6: 2x Userbackends (LDAP und MSSQL)

      Post by schmidtkropp »

      Moin,

      vielen Dank.
      Da war der Fehler!

      Code: Select all

      CustomerValid => 'id',
      Diese drei Zeilen sehen jetzt wie folgt aus:

      Code: Select all

      CustomerKey => 'ObjId',
      CustomerID => 'Firma',
      #CustomerValid => 'id',
      Jetzt findet er die Daten!

      Besten Dank dafür!

      Post Reply