Domino 9 und frühere Versionen > ND6: Entwicklung
Agent soll alle Dateien aus Ordner in Notes importieren
Alperen15:
dankeschön bin dank dir ein schritt weiter gekommen jetzt liesst er wenigstens meine Felder
Alperen15:
So hallo, bin ein paar schritte weiter gekommen nach langem herumprobieren und diskutieren.
Momentaner Status: Der Agent öffnet die erste csv Datei liest die erste Zeile und erstellt die erste zeile mit den Feldern als dokument in der Ansicht. Doch in die zweite zeile springt er nicht. Er erstellt die erste solange in die Ansicht solange bis ich rausgehe aus notes (endlos Schleife)
Der Agent sollte die erste Datei zeile für zeile als dokument erstellen wenn er fertig ist dann das dokument ins archiv ordner verschieben und das nächste dokument öffnet usw.... hier der teil des quellcodes
pathName$ = "E:\TestKUR\VerzeichnisTest\Vorzuege\"
cFilename$ = Dir$(pathName$ & "*.csv", 0)
iZaehler = 1
cTrenn = ";" ' *** Definition des Trennzeichens
Do While cFilename$<> ""
If Isempty(cFilename$) Then
Exit Sub
End If
PathFileName = "E:\TestKUR\ VerzeichnisTest\Vorzuege \" & Filename
i = i + cTrenn
iZaehler = iZaehler + 1
'lese erste zeile
fileNum% = Freefile()
Open pathName$ & cFilename$ For Input As filenum
Seek filenum,1
Line Input #filenum, i
If i <> "" Then
'i = i + cTrenn
'iZaehler = iZaehler + 1 ' *** Datensatzzähler
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("@IsResponseDoc", Nothing, 0)
Set doc = db.CreateDocument
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)
End If
End If ' *** Not doc Is Nothing Then
Loop
EndeGut:
Close filenum
cFilename$ = Dir$()
cText = Cstr(iZaehler) + " Datensätze bearbeitet"
Call XQSchreiben("0", "1", cgTracerVorzugImport, cText, 632637&)
'i = 1
'pathName$ = "E:\TestKUR\VerzeichnisTest\Vorzuege\*.csv"
'cFilename$ = Dir$(pathName$, 0)
'Do While cFilename$ <> ""
' cPathname = Left(pathName$,14) ' *** Pfadname
' csvFilename = cPathname + cFilename$
' i = i + 1
' cFilename$ = Dir$()
'Loop
Filecopy FileName,"E:\TestKUR\VerzeichnisTest\\Archiv\*.csv" ' *** Sichern der aktuellen File ins Archiv
Print cText
Kill filename ' *** Löschen des eingelesenen .csv Datensatzes
Goto EndeAlles
ErrorPrint:
Call XQSchreiben("0", "1", cgTracerVorzugImport, cError, 632637&)
Resume Next
cAusgabe = cError
Call SendMail(doc, cSendTo, cSubject, cAusgabe)
Print cError
EndeFileOpen:
Call XQSchreiben("0", "1", cgTracerVorzugImport, cError, 632637&)
Goto EndeAlles
EndeAlles:
Call xQEnde ' *** Schreiben und schließen LogFile
Exit Sub
End Sub
Peter Klett:
Das Script macht genau das, was Du geschrieben hast.
An welcher Stelle hast Du geschrieben, dass z.B. die zweite Zeile der Datei gelesen werden soll?
Und selbst, wenn die Datei sauber gelesen würde, käme der Agent nie an die Stelle, an der er die nächste Datei öffnet.
Do While Not Eof (filenum)
Loop
wird Dir helfen. Damit hast Du eigentlich Tipps genug, aufräumen und strukturieren solltest Du selber.
Alperen15:
gut, ich kenn GetNextDocument das bringt mich aber hier glaub nicht weiter es gibt bestimmt auch so ein ähnliches befehl für nächste zeile getnextfilenum ?! hab in der hilfe noch nichts gefunden
Peter Klett:
Was macht denn Line Input #filenum, i?
Lies mal die Hilfe dazu
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln