Domino 9 und frühere Versionen > ND7: Entwicklung
Felder werden teilweise nicht befüllt
Alperen15:
Hallo Ihr lieben,
ich bräuchte wieder mal einen Gedankenstoß. Der Agent von einem Mitarbeiter den ich kopiert und bearbeitet habe soll eine Datei mit den Feldern als dokument importieren usw.... Dieser Agent hat Funktionen wie z.B ReadFields, NächstesFeld usw....
in ReadFields und in den anderen Funktionen habe ich nichts geändert. Mein Agent läuft zwar aber befüllt drei vier Felder nicht. Hier der Quellcodeteil den ich bearbeitet habe. Bin der Meinung, dass das nichts damit zu tun hat. Wäre für jeden Tipp dankbar.
Do While cFilename$ <> ""
filename = pathName$ + cFilename$
i = 1
Open pathName$ & cFilename$ For Input As filenum
Seek fileNum,1
On Error Goto ErrorPrint
Do While Not Eof (filenum) '*
Line Input #filenum, i
If i <> "" Then
i = i + cTrenn
iZaehler = iZaehler + 1 ' *** Datensatzzähler
Else
'cError = "asImportCollect ERROR: ReadFields" + Cstr(iZaehler)
Call XQSchreiben("0", "1", cgTracerVorzugImport, "asNightImport ERROR: Keine Datensätze im CSV-File", 632637&)
Call SendMail(doc, cSendTo, cSubject, "asImportCollect ERROR: Keine Datensätze im CSV-File")
Goto EndeAlles
End If
' ********** Einlesen des csv - Datensatzes **************************
cError = "asImportCollect ERROR: ReadFields" + Cstr(iZaehler)
On Error Goto ErrorPrint
Call ReadFields(i) ' *** neuer Datensatz lesen
' ************* Document Selection - Alle Documente in der DB werden nach der Auftrag/Position durchsucht - Anführungszeichen der Selection beachten !
cSelection = "FORM = ""maNurVorzug"" & fdAuftrag = """+cImString(4)+""" & fdAuftragsposition = """+cImString(5)+""""
Set dc = db.Search ( cSelection , dtCutOff , 0 )
' **************
' neues Dok wird angelegt falls Status aktiv ***********
If cImString(1) = "A" Then
Set doc = db.CreateDocument
doc.Form="maNurVorzug"
cError = "asImportCollect ERROR: FillFields " + cImString(4) + "/" + cImString(5)
On Error Goto ErrorPrint
Call FillFields(doc,i,cDate) ' *** Schreiben komplettes Dokument
cError = "asImportCollect ERROR: DocSave " + cImString(4) + "/" + cImString(5)
On Error Goto ErrorPrint
Call doc.save(False,True)
'iZaehler = iZaehler + 1 ' *** Datensatzzähler
End If
iZaehler = iZaehler + 1
Loop ' Until Eof (filenum) **** Neuen csv - Datensatz einlesen
Close filenum
Call XQSchreiben("0", "1", cgTracerVorzugImport, "Vorzug_Export_TESTKUR" + cFilename$ + " - gelöscht ", 632637&)
cText = Cstr(iZaehler) + " Datensätze bearbeitet"
Call XQSchreiben("0", "1", cgTracerVorzugImport, cText, 632637&)
Filecopy FileName,"E:\TestKUR\VerzeichnisTest\Archiv\" + cFilename$ ' *** Sichern der aktuellen File ins Archiv
Print cText
Kill filename ' Das File nach der Archivierung im Verzeichnis löschen '*
cFilename$ = Dir$()
Loop '*************Neue Datei im Verzeichnis lesen
klaussal:
Schon mal den Debugger mitlaufen lassen ?
Alperen15:
ja habe ich, mir ist da nichts aufgefallen
klaussal:
Im Debugger sollte aber die Stelle zu sehen sein, wo die Felder ermittelt bzw. gefüllt werden (vmtl. ReadFields bzw. FillFields).
Da würde ich mal genauer hinsehen.
ascabg:
Und ohne genau zu wissen, was in den Funktionen ReadFields(i) und FillFields(doc,i,cDate) ablaeuft, ist es auch sehr schwer eine einigermassen gesicherte Aussage zu treffen.
Ich entnehme den Namen der Prozeduren nur soviel, dass ReadFields den gelesenen String aus der Datei in einen Array splittet, der mit der Prozedur FillFields auf die entsprechenden Felder des Dokumentes verteilt wird.
Andreas
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln