Domino 9 und frühere Versionen > ND8: Entwicklung
LotusScript: ODBC-Import von Kontakten
lndsbrgr:
Hallo!
Ich möchte unsere Kundenstammdaten aus der AS400 zwecks E-Mail-Marketing in ein Adressbuch importieren. Prinzipiell funktioniert es auch, allerdings werden nie mehr als 1542 Datensätze ausgelesen und da liegt das Problem: Unsere Kundendatenbank hat mehrere tausend Einträge.
Der ODBC-Treiber stammt aus dem ClientAccess von IBM. Meines Wissen gibt es hier keine Begrenzung (wurde schon mehrfach in anderen Applikationen genutzt, um derartige Datenmengen aus unserer AS400 zu bekommen...).
Hat jemand hier schon einmal eine ähnliche Erfahrung gemacht??
Das Skript:
Option Public
Uselsx "*LSXODBC"
Sub Initialize
Dim Session As New NotesSession
Dim db As NotesDatabase
Set db = Session.currentdatabase
Dim Con As New ODBCConnection
Dim Qry As New ODBCQuery
Dim res As New ODBCResultSet
RetCode% = Con.ConnectTo("AS400", "","")
Set Qry.Connection = Con
Qry.SQL = "SELECT * FROM kd.yku"
Set Res.Query = Qry
Res.Execute
Res.CacheLastRowNum = 5000
Res.LastRow
Rows% = Res.NumRows
columns = res.NumColumns
rows% = res.NumRows
RetCode% = Res.FirstRow
Do While RetCode% =True
Dim kunde As String
Dim ansprechp As String
Dim straße As String
Dim plz As String
Dim ort As String
Dim telefon As String
Dim bemerkung As String
kunde = Cstr(Res.GetValue("kdnr") )
'ansprechp = Cstr(Res.GetValue("ansprechp") )
'straße = Cstr(Res.GetValue("straße") )
'plz = Cstr(Res.GetValue("plz") )
'ort = Cstr(Res.GetValue("ort") )
'telefon = Cstr(Res.GetValue("telefon") )
'bemerkung = Cstr(Res.GetValue("ort") )
Dim Doc As New NotesDocument(db)
doc.form = "Person"
doc.type = "Person"
doc.view = "People"
'doc.fullname = kunde
doc.companyname = kunde
'doc.lastname = ansprechp
'doc.businessaddress = straße
'doc.officezip = plz
'doc.location = ort
'doc.officephonenumber = telefon
'doc.comment = bemerkung
'Call doc.ComposeWithForms (True, False)
Call doc.save (True, True)
Print "datensatz",res.currentrow , "von", rows%
RetCode% = Res.NextRow
Loop
RetCode% = Res.Close(DB_CLOSE)
RetCode% = Con.Disconnect
End Sub
Cube:
Servus,
evtl. Workaround:
Versuch mal mittels dem Client-Access ODBC Treiber die Daten nach Exel oder Access auszugeben,
kommen dann alle bzw. mehr Datensätze als 1542?
Wenn ja, evtl. kannst Dir ein Skript schrieben, das ne XLS- oder TXT-Datei ausliest.
Grüße Tim
lndsbrgr:
Das wäre denkbar. Ist aber von hinten durch die Brust ins Auge, oder?! ; )
Ich würde es lieber wie geplant abbilden, als zusätzlich einen Umweg über eine weitere Datei zu gehen.
Ja, es kommen in anderen Anwendung mehr als die besagten 1542 Datensätze...
Gruß, Thies
Driri:
Ist für diese Schnittstelle eine eigene Datenquelle eingerichtet worden ? Wenn ja, vergleich mal die Einstellungen in der Datenquelle mit den anderen, bei denen es funktioniert.
Cube:
@Thies:
Wenn es nur ne einmalige Sache wäre, würde ich den Workaround versuchen, sollte die
Aktion periodisch öfter ausgeführt werden, dann richtig, ist es nur die "zweitbeste" Lösung ;)
Kommt ne Fehlermeldung? Oder wie äußert sich das Problem?
Grüße Tim
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln