Domino 9 und frühere Versionen > ND6: Entwicklung
Agent soll alle Dateien aus Ordner in Notes importieren
Alperen15:
so ich hab es geändert. die Dateien sind im verzeichnis E:\TestKUR\VerzeichnisTest\Vorzuege\*.csv
Dateinamen Vorzug_Export_20080820151502.
Vorzug_Export_ bleibt fix nur das Datum und die Uhrzeit ist variabel. Er soll die drei vier Dateien importieren in Notes und Sie danach in den Archiv Ordner verschieben. Der Agent läuft meckert nicht nach Fehlern. Aber er importiert nichts die Dateien bleiben da wo sie sind.... Könntet Ihr vllt mal einen Blick auf meinen Quellcode werfen und mir sagen was ich falsch gemacht habe wäre sehr dankbar. Danke
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim filenum As Integer, iZaehler As Integer, pos As Integer
Dim filename As String, cRekNo As String, i As String
Dim cTrenn As String, cText As String, cError As String, cSendTo As String, cSubject As String, cAusgabe As String
Dim cSelection As String
Dim vComplainNo As Variant
Dim dtCutOff As New NotesDateTime("31.12.1900")
Dim cpathName As String
Dim cFilename As String
Dim Pathname As String
Dim PathFileName As String
Dim csvFilename As String
Set db=session.CurrentDatabase
filename="E:\TestKUR\VerzeichnisTest\Vorzuege\*.csv" ' *** Laufwerk für Zugriff von Alpha und Notes
iZaehler = 1
cTrenn = ";" ' *** Definition des Trennzeichens
filenum=Freefile()
cSendTo = "helpsupport@test.com"
cSubject = "Error asImportCollect"
REM Tracerinitialisierungsparameter
Dim aTracerPara(1) As Variant
cgTracerVorzugImport = "asImportCollect"
aTracerPara(0) = "Import WE-VorzügeTEST KUR"
aTracerPara(1) = "PDAllgemein"
If Not(xQAnfangID(aTracerPara)) Then
Print "Agent:TESTKUR ImportVorzug: Konnte Tracer/Logger/Protokoll nicht initialisieren. Abbruch der Funktion."
Exit Sub
End If ' If Not(xQAnfangID(aTracerPara)) Then
' *********** Öffnen des csv Datensatzes auf dem File System
cError = "asImportCollect ERROR: No CSV - File found"
On Error Goto EndeFileOpen
'************KUR***********
pathName$ = "E:\TestKUR\VerzeichnisTest\Vorzuege\*.csv"
cFilename$ = Dir$(pathName$, 0)
Do While cFilename$ <> ""
If Isempty(cFilename$) Then
Exit Sub
End If
PathFileName = "E:\TestKUR\VerzeichnisTest\Vorzuege" & Filename
'lese erste Zeile
fileNum% = Freefile()
Open filename For Input As filenum
Seek fileNum,1
On Error Goto ErrorPrint
Line Input #filenum, i
If i <> "" Then
i = i + cTrenn
iZaehler = iZaehler + 1 ' *** Datensatzzähler
Else
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
'******Ende Änderung KUR*****
' ********** 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 )
' **************
Set doc = dc.getFirstDocument
If Not doc Is Nothing Then ' *** Dokument mit gleichem Auftrag/Position gefunden
cError = "asNightImport ERROR: UpdateAndReplace " + cImString(4) + " / " + cImString(5)
On Error Goto ErrorPrint
Call UpdateAndReplace(doc, cDate) ' *** Überschreiben der Kopf und ersetzen der Pos-Daten
If dc.count > 1 Then
cError = "asImportCollect ERROR: Multiple Documents " + cImString(4) + " / " + cImString(5)
Call XQSchreiben("0", "1", cgTracerVorzugImport, cError, 632637&)
End If
Else
' **** kein übereinstimmen WE-Vorzug gefunden -> neues Dok wird angelegtm 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)
End If
End If ' *** Not doc Is Nothing Then
NextEntry:
Loop ' Until Eof (filenum) **** Neuen csv - Datensatz einlesen
' *** Schleife - lese neuen csv - Datensatz ******************************************************************************
Call XQSchreiben("0", "1", cgTracerVorzugImport, "Ende VorzugImport", 632637&)
EndeGut:
Close filenum
'Call XQSchreiben("0", "1", cgTracerVorzugImport, "Vorzug_Export_" + cDate + ".csv - gelöscht ", 632637&)
cText = Cstr(iZaehler) + " Datensätze bearbeitet"
Call XQSchreiben("0", "1", cgTracerVorzugImport, cText, 632637&)
i = 1
pathName$ = "E:\TestKUR\VerzeichnisTest\Archiv\Vorzug_Export_" + cDate + "*.csv"
cFilename$ = Dir$(pathName$, 0)
Do While cFilename$ <> ""
cPathname = Left(pathName$,29) ' *** 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
ascabg:
Hallo,
Nur so eine Vermutung.
Koennte es sein, dass Dein Code an dieser Stelle nicht saucher den Dateinamen der zu lesenden Datei bekommt.
PathFileName = "E:\TestKUR\VerzeichnisTest\Vorzuege" & Filename
Andreas
Driri:
Da kann auch nichts importiert werden.
--- Zitat ---Do While cFilename$ <> ""
If Isempty(cFilename$) Then
Exit Sub
End If
PathFileName = "E:\TestKUR\VerzeichnisTest\Vorzuege" & Filename
--- Ende Zitat ---
filename ist als String deklariert und erhält relativ weit oben im Code folgenden Wert zugewiesen :
"E:\TestKUR\VerzeichnisTest\Vorzuege\*.csv"
Das ergibt dann für PathFileName :
"E:\TestKUR\VerzeichnisTest\VorzuegeE:\TestKUR\VerzeichnisTest\Vorzuege\*.csv"
--- Zitat --- 'lese erste Zeile
fileNum% = Freefile()
Open filename For Input As filenum
--- Ende Zitat ---
PathFileName verwendest Du dann aber gar nicht, sondern Du benutzt wieder Filename, das immer noch den folgenden Wert enthält :
"E:\TestKUR\VerzeichnisTest\Vorzuege\*.csv"
Bring erstmal Ordnung in deine Variablen. Du hast da keinen Überblick mehr.
Dann würde ich Dir empfehlen, mit einer ForAll-Schleife zu arbeiten, die ist IMO ideal für die Verarbeitung einer Liste.
Alperen15:
Als was soll ihc dann filename deklarieren wenn nciht als String?
soll ich dann anstatt
PathFileName = "E:\TestKUR\VerzeichnisTest\Vorzuege" & Filename
PathFileName = Filename zuweisen??
somit wäre PathfileName NICHT
"E:\TestKUR\VerzeichnisTest\VorzuegeE:\TestKUR\VerzeichnisTest\Vorzuege\*.csv"
liege ich da richtig
Peter Klett:
wozu hast Du cFilename?
Die Deklaration der Variablen ist (abgesehen von dem Durcheinander) nicht das Problem, sondern die Inhalte
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln