
Ich werde ab 26.09.2006 nicht im Büro sein. Ich kehre zurück am 02.10.2006. I will be out of the office starting 26.09.2006 and will not return until 02.10.2006. Bitte wenden Sie sich in dringenden Fällen an meinen Vertreter, Herrn Amin Abu-Es-Soud (-360) In dringenden Fällen wenden Sie sich bitte an / In urgent cases, please contact: Amin Abu Es Soud, Tel.: 069/27117-360, E-Mail: Amin.Abu.Es.Soud@seb.de. ##################################################################################### Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese E-Mail (inklusive aller Anhänge). Bitte fertigen Sie keine Kopien an oder bringen den Inhalt anderen Personen zur Kenntnis. E-Mails sind anfällig für Datenverfälschungen, können abgefangen werden und Computerviren verbreiten. Außer für Vorsatz und grobe Fahrlässigkeit lehnen wir jede Verantwortung für derartige Vorgänge ab. This e-mail is confidential and may contain legally privileged information. If you have received it by mistake, please inform us by reply e-mail and then delete it (including any attachments) from your system. You should not copy it or in any other way disclose its content to anyone. E-mail is susceptible to data corruption, interception, unauthorised amendment, tampering and virus infection. We do not accept liability for such actions or the consequences thereof. #####################################################################################

Hallo. Wir sind nun kurz vor OTRS 2.1 Produktivstart und ich sitze noch an einer harten Nuss. Kennt sich jemand mit dem script aus sync-ldap2db.pl um die ADS Daten aus Windows 2000 per ldap ins OTRS zu importieren ? Wenn ich linuxseitig folgendes aufrufe : ldapsearch -d 255 -h 172.18.5.1 -W -b "ou=langenfeld,dc=msnet,dc=strauss1902,dc=de" -D "cn=schulze,ou=verwaltung,ou=langenfeld,dc=msnet,dc=strauss1902,dc=de" -x klappt die LDAP Anbindung wunderbar, aber über das Script passiert nix. Dieses wurde angepasst und sieht wie folgt aus : ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #!/usr/bin/perl -w # -- # scripts/tools/sync-ldap2db.pl - sync a ldap directory to database # Copyright (C) 2001-2005 Martin Edenhofer <martin+code@otrs.org> # -- # $Id: sync-ldap2db.pl,v 1.1 2005/03/05 07:53:31 martin Exp $ # -- # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -- # use ../ as lib location use File::Basename; use FindBin qw($RealBin); use lib dirname($RealBin). "/../"; use lib dirname($RealBin)."/../Kernel/cpan-lib"; use strict; use vars qw($VERSION); $VERSION = '$Revision: 1.1 $'; $VERSION =~ s/^\$.*:\W(.*)\W.+?$/$1/; use Net::LDAP; use Kernel::Config; use Kernel::System::Log; use Kernel::System::DB; use Kernel::System::Encode; # -- # create common objects # -- my %CommonObject = (); $CommonObject{ConfigObject} = Kernel::Config->new(); $CommonObject{LogObject} = Kernel::System::Log->new( LogPrefix => 'OTRS-sync-ldap2db', %CommonObject, ); $CommonObject{EncodeObject} = Kernel::System::Encode->new( %CommonObject, ); $CommonObject{DBObject} = Kernel::System::DB->new( %CommonObject, ); my $UidLDAP = 'uid'; my $UidDB = 'login'; my %Map = ( # db => ldap email => 'mail', customer_id => 'mail', first_name => 'sn', last_name => 'givenname', pw => 'test', # comments => 'description', comments => 'postaladdress', ); my $LDAPHost = '172.18.5.1'; my %LDAPParams = (); my $LDAPBaseDN = 'ou=langenfeld,dc=msnet,dc=strauss1902,dc=de'; my $LDAPBindDN = 'cn=schulze,ou=verwaltung,ou=langenfeld,dc=msnet,dc=strauss1902,dc=de'; my $LDAPBindPW = 'kennwort von schulze'; my $LDAPScope = 'sub'; my $LDAPCharset = 'utf-8'; #my $LDAPFilter = ''; my $LDAPFilter = '(ObjectClass=*)'; my $DBCharset = 'iso-8859-1'; my $DBTable = 'customer_user'; # ldap connect and bind (maybe with SearchUserDN and SearchUserPw) my $LDAP = Net::LDAP->new($LDAPHost, %LDAPParams) or die "$@"; if (!$LDAP->bind(dn => $LDAPBindDN, password => $LDAPBindPW)) { $CommonObject{LogObject}->Log( Priority => 'error', Message => "Bind failed!", ); exit 1; } # split request of all accounts foreach (qw(0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z)) { my $Filter = "($UidLDAP=$_*)"; if ($LDAPFilter) { $Filter = "(&$LDAPFilter$Filter)"; } # perform user search my $Result = $LDAP->search( base => $LDAPBaseDN, scope => $LDAPScope, filter => $Filter, ); #print "F: ($UidLDAP=$_*)\n"; foreach my $entry ($Result->all_entries) { my $UID = $entry->get_value($UidLDAP); if ($UID) { # check if uid existsis in db my $Insert = 1; $CommonObject{DBObject}->Prepare( SQL => "SELECT $UidDB FROM $DBTable WHERE $UidDB = '".$CommonObject{DBObject}->Quote($UID)."'", Limit => 1, ); while (my @Row = $CommonObject{DBObject}->FetchrowArray()) { $Insert = 0; } my $SQLPre = ''; my $SQLPost = ''; my $Type = ''; if ($Insert) { $Type = 'INSERT'; } else { $Type = 'UPDATE'; } foreach (keys %Map) { my $Value = $CommonObject{DBObject}->Quote(_ConvertTo($entry->get_value($Map{$_})) || ''); if ($Type eq 'UPDATE') { if ($SQLPre) { $SQLPre .= ", "; } $SQLPre .= " $_ = '$Value'"; } else { if ($SQLPre) { $SQLPre .= ", "; } $SQLPre .= "$_"; if ($SQLPost) { $SQLPost .= ", "; } $SQLPost .= "'$Value'"; } } my $SQL = ''; if ($Type eq 'UPDATE') { print "UPDATE: $UID\n"; $SQL = "UPDATE $DBTable SET $SQLPre, valid_id = 1, change_time = current_timestamp, change_by = 1 "; $SQL .= " WHERE $UidDB = '".$CommonObject{DBObject}->Quote($UID)."'"; } else { print "INSERT: $UID\n"; $SQL = "INSERT INTO $DBTable ($SQLPre, $UidDB, valid_id, create_time, create_by, change_time, change_by) VALUES ($SQLPost, '".$CommonObject{DBObject}->Quote($UID)."', 1, current_timestamp, 1, current_timestamp, 1)"; } $CommonObject{DBObject}->Do(SQL => $SQL); } } } sub _ConvertTo { my $Text = shift; if (!defined($Text)) { return; } else { return $CommonObject{EncodeObject}->Convert( Text => $Text, To => $DBCharset, From => $LDAPCharset, ); } } ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Wissen Sie, welche Parameter genau angepasst werden müssen oder gibt es eine Doku zu dem Script ? Leider gibt es ja kein log und unter /var/log/messages sieht man nichts. Danke und schöne Grüsse, Michael Schulze ---------------------------------------------- Strauss INNOVATION GmbH & Co. KG Raiffeisenstraße 15 - 18 D - 40764 Langenfeld Tel: +49 (0) 21 73 / 99 24 23 Fax: +49 (0) 21 73 / 99 24 90 E-Mail: michael.schulze@strauss-innovation.de ---------------------------------------------- Michael Schulze SAP Basis ----------------------------------------------

Wir benuetzen momentan OTRS fuer unseren support bereich. Kunden daten werden abe rin filemaker gefuehrt Heist alle unden die auch support vertrag haben muessen wir leider dopplet fuehren. Einmal in filemaker einmal in otrs Gibt es eine halbwegs vernuenftige loesung entweder A) daten von filemaker zu otrs (mysql) zu senden B) mit otrs evtl auf die filemaker datenbank zuzugreifen Danke schon mal Christian
participants (3)
-
Christian Schowalter
-
Markus.Hebauf@seb.de
-
Schulze, Michael