Domino 9 und frühere Versionen > ND6: Entwicklung

Import txt - Doppelte Dokumente vermeiden

(1/4) > >>

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