Domino 9 und frühere Versionen > ND9: Entwicklung

Befüllung von Felder

(1/2) > >>

Dani B.:
Hallo zusammen,

zu meinem Problemchen.

Ich importiere in eine Datenbank eine CSV Datei und befülle anschließend bestimmte Felder der neu erstellten Dokumente (nennen wir diese mal Statistikakten) automatisch, mit Feldern aus bereits vorhandenen Dokumenten (nennen wir mal Kundenakten) in der gleichen Datenbank. Geht so: Das Script sucht in einer Ansicht ein Schlüsselwort und befüllt hier aus und erstellt ein neues Dokument. Das funktioniert ohne Probleme.

Nun versuche ich verzweifelt in dieses Import-Script eine weitere Befüllung der neu erstellten Dokumente aus einem anderen, ebenfalls bereits vorhandenen Dokument (nennen wir mal Konditionen A, B C, d.h. es gibt 3 verschiedene Dokumente mit jeweils 5 Feldern) Felder zu befüllen. Ich möchte nun aus den Konditionen in diese Statistikakten Felder befüllt haben, welche er sich anhand einer Zuordnungsnummer von A,  B oder C holt. Ich habe hierzu den oberen "Befüllungsteil" nach unten kopiert. Hoffentlich geht das..

Es erscheint immer wieder "Object variable not set". Der Debugger bleibt an einer Stelle stehen woraus ich auch nicht schlau werde. Ich habe eine Ansicht mit den Konditionen, Spalten sind sortiert.

Ist hier mit einem kleinen Eingriff etwas getan? Danke für Eure Hilfe.



Option Public
Option Declare

Sub Initialize
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim fileNum As Integer
   Dim spalten As Integer
   Dim fileName As String
   Dim InputStr As String, delimiter As String
   Dim FieldArray As Variant
   Dim i As Integer
   Dim maske As String
   Dim dclTxtDaten As NotesDocumentCollection
   Dim TID As String
   Dim TX As String
   Dim uidoc As NotesUIDocument
   Dim ws As New NotesuiWorkspace
   
   Set db = session.Currentdatabase
   If db.IsOpen Then Set dclTxtDaten = db.CreateDocumentCollection
   
   fileNum% = FreeFile()
   fileName$ = "y:\importstt.csv"  '--  Dateiname eingeben
   delimiter = ";"  '-- Trenner eingeben
   spalten = 20      '-- Spalten eingeben
   maske = "ImportStatistik"    '-- Maskenname eingeben
   
   'Feldnamen eingeben
   Dim varFeld(1 To 2) As Variant
   varFeld(1) = "Kundenid"
   varFeld(2) = "Ultimo"

   
   
   Open fileName$ For Input As fileNum%
   
   Do While Not EOF(fileNum%)
      Set doc = db.Createdocument()
      Call doc.Replaceitemvalue("Form", maske)
      
      Line Input #1,  InputStr$
      
      For i = 1 To UBound(varFeld)
         
         Call doc.Replaceitemvalue(varFeld(i), (StrToken(InputStr$, delimiter, i)))    
         
      Next
      Call doc.Save(True,False)
      'Transaktionsdokument der Collection zuordnen
      Call dclTxtDaten.Adddocument(doc)
      
   Loop
   Close fileNum%
   

   Dim docTxt As NotesDocument
   Dim docHaupt As NotesDocument
   Dim viewTID As NotesView
   
   Set viewTID = db.Getview("viewTID")
   Set docTxt = dclTxtDaten.Getfirstdocument()
   
   While Not docTxt Is Nothing
      TID = docTxt.Getitemvalue("Kundenid")(0)
      Set docHaupt = viewTID.Getdocumentbykey(TID, True)
      
      Call docTxt.Replaceitemvalue("Kundenid", docHaupt.Getitemvalue("Kundenid")(0))

      
      Set uidoc = ws.EditDocument(True , docTxt)
      uidoc.Refresh
      Call uidoc.Save()
      Call uidoc.Close(True)
      
      'Call docTxt.save(True,False)
      
      Set docTxt = dclTxtDaten.Getnextdocument(docTxt)
   Wend


      Dim docTxt1 As NotesDocument
      Dim docHaupt1 As NotesDocument
      Dim viewTX1 As NotesView
      
      Set viewTX1 = db.Getview("viewTX")
      Set docTxt1 = dclTxtDaten1.Getfirstdocument()
   
   While Not docTxt1 Is Nothing
      TX = docTxt1.Getitemvalue("txartnr")(0)
      Set docHaupt1 = viewTX1.Getdocumentbykey(TX, True)
      
      Call docTxt1.Replaceitemvalue("tx1vk", docHaupt1.Getitemvalue("tx1vk")(0))

Set uidoc = ws.EditDocument(True , docTxt)
      uidoc.Refresh
      Call uidoc.Save()
      Call uidoc.Close(True)
      
      'Call docTxt1.save(True,False)
      
      Set docTxt1 = dclTxtDaten1.Getnextdocument(docTxt1)
   Wend

   
End Sub

eknori (retired):

--- Zitat ---Es erscheint immer wieder "Object variable not set". Der Debugger bleibt an einer Stelle stehen woraus ich auch nicht schlau werde.
--- Ende Zitat ---

Und welche Stelle im Script ist es??

Dani B.:
Hallo, an dieser Stelle bleibt der Debugger stehen.

Call docTxt1.Replaceitemvalue("tx1vk", docHaupt1.Getitemvalue("tx1vk")(0))

eknori (retired):
also ist entweder docTxt1 oder docHaupt1 nicht gesetzt. Sieht man aber im debugger

Dani B.:
Danke für Deine Antwort, nur wo/wie sehe ich das im Debugger? Der springt eben auf diese Zeile.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln