Domino 9 und frühere Versionen > ND6: Entwicklung
Import txt - Doppelte Dokumente vermeiden
lotus blue:
Hallöchen.
Wohl zum x-ten Mal, komme aber nicht weiter. (auch nicht durch die Suche bzw.Hilfe)
-> Import und Doppelte Doks vermeiden.
Führe täglich einen Import einer txt-Datei durch und erstelle daraus Dokumente.
Das funzt auch bis dato. Nun soll das Script aber vorher noch prüfen, ob ein bestimmtes Dok (durch einen Wert indentifizierbar) schon existiert.
Hier das Import Script:
Sub Initialize
Dim session As New notessession
Dim db As notesdatabase
Dim doc As notesdocument, profdoc As Notesdocument
Dim Dateipfad As String, aktfile As String
Dim fileNum As Integer, cells As Integer, k As Long
Dim fileName As String
Dim InputStr As String, delimiter As String
Dim FieldArray As Variant
Set db = session.currentdatabase
Set profdoc = db.getprofiledocument("(Config)")
Dateipfad = profdoc.Dateipfad(0)
fileNum = Freefile()
' Trennzeichen
delimiter = "#"
aktfile = Dateipfad
If aktfile <> "" Then
Open aktfile For Input As fileNum%
Line Input #1, InputStr$
Do While Not Eof(fileNum%)
' Zeile für Zeile einlesen
Line Input #1, InputStr$
FieldArray = Split(InputStr$,delimiter)
Call CreateDocument(db, FieldArray)
Loop
Else
Messagebox "Datei nicht vorhanden", 16, "Fehler"
End If
Close fileNum%
Exit Sub
End Sub
Sub CreateDocument(db As notesdatabase, FieldArray As Variant)
Dim doc As New notesdocument(db)
doc.Form = "New"
doc.Feldname1 = FieldArray(0)
doc.Feldname2 = FieldArray(1)
doc.Feldname3 = FieldArray(2)
Call doc.save(1,0)
End Sub
Natürlich hilt mir da die GetDocumentByKey Methode weiter, kann sie aber nicht richtig einbauen bzw. vergesse wohl was. Sie muss wohl vor das Call CreateDocument(db, FieldArray), aber nur wie????? :-:
Bitte um Eure Hilfe.
Schöne Grüße Jason
jBubbleBoy:
Ansicht mit Key erstellen, versuchen das Dokumet zu holen via
view.getDocumentByKey(....
wenn das klappt Wert schon vorhanden, wenn nicht Dokument neu anlegen.
lotus blue:
--- Zitat von: jBubbleBoy am 21.08.08 - 17:50:18 ---Ansicht mit Key erstellen, versuchen das Dokumet zu holen via
view.getDocumentByKey(....
wenn das klappt Wert schon vorhanden, wenn nicht Dokument neu anlegen.
--- Ende Zitat ---
Gracie für die schnelle Antwort. Aber so weit war ich schon. Ich weiß ja nur nicht wo ich es einbauen soll und was noch fehlt.
Reicht "set view", "Set doc" und "If Not (doc Is Nothing) Then" aus?
Set view = db.GetView ("Alle Dokumente")
If aktfile <> "" Then
Open aktfile For Input As fileNum%
Line Input #1, InputStr$
Do While Not Eof(fileNum%)
Line Input #1, InputStr$
FieldArray = Split(InputStr$,delimiter, -1, 0)
If Not Isempty(FieldArray) Then
Set doc = view.GetDocumentByKey(Name)
If Not (doc Is Nothing) Then
Call CreateDocument(db, FieldArray)
End If
End If
Loop
Else
jBubbleBoy:
Not doc Is Nothing
bedeutet doc (Wert) ist vorhanden
doc is nothing
bedeutet doc (Wert) ist nicht vorhanden
lotus blue:
Ok 8) stimmt.
Hab ich geändert und erhalte "Invalid key value typ".
:-: :-:
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln