Grüß Euch!
Bei einem Kunden von uns werden Mail- und Fax-Daten in unsere Datenbank importiert. Funktioniert soweit wie gewünscht. Beim Kunden wird David.FX verwendet. Version: dvwin32 11.00a 3438, dvapi32: 11.00.a 0311
Einige Verbesserung könnte der Import allerdings nun doch vertragen.
1. Wie kann ich die Einträge filtern?
Zur Zeit werden immer ALLE Einträge gelesen und über die Abfrage auf das Statusdatum überlesen. Ich habe im DVApi Handbuch einiges über Filter gelesen, wurde aber nicht schlau daraus. Ideal wäre ein Filter, mit dem ich nur Einträge ab einem bestimmten Datum erhalte.
2. Wie kann ich auf den "Flag"-Eintrag (1. Spalte in der Ansichtstabelle, die mit der Fahne) abfragen? Wie heißt das Feld?
Ideal wäre für mich, wenn ich aufgrund dieses Flags filtern könnte. Das Erstellen des MessItem2 aus den Einträgen via GetArchiveEntryByID und das Ändern von Daten bekomme ich schon hin. Aber wie gesagt, ich weiß nicht, wie ich den Flag-Wert abfragen und ändern kann.
Zur Erläugerung nun ein Code-Ausschnitt, wie ich zur Zeit die Mail- und Faxeinträge abarbeite.
Es würde mich freuen, hier Lösungsansätze und Anregungen für meine Probleme zu finden.
Bin schon gespannt!
Norbert
Set oArchive_AllUser = oAcc.GetSpecialArchive(DvArchiveUserRoot)
For l = 1 To oArchive_AllUser.Archives.Count
'Schleife je User
Set oArchive_User = oArchive_AllUser.Archives.Item(l - 1)
For lArchZählerJeUser = 1 To oArchive_User.Archives.Count
'
'Schleife je Ordner eines Users
'
Set oArchive = oArchive_User.Archives.Item(lArchZählerJeUser - 1)
If UCase(Right(oArchive.ID, 2)) = "IN" Or UCase(Right(oArchive.ID, 3)) = "OUT" Or UCase(Right(oArchive.ID, 6)) = "COMMON" Then
If UCase(Right(oArchive.ID, 2)) = "IN" Then
sEinAus = "E"
End If
If UCase(Right(oArchive.ID, 6)) = "COMMON" Then
sEinAus = "E" 'können nur Eingänge sein
End If
If UCase(Right(oArchive.ID, 3)) = "OUT" Then
sEinAus = "A"
End If
Set oMails = oArchive.MailItems
If oMails.Count > 0 Then
For i = 0 To oMails.Count - 1
DoEvents
'
If bAbgebrochen Then
GoTo Raus
End If
'
Set oMail = oMails.Item(i)
vFehlerNr = oMail.Fields("ErrorNo").Value
dSendeEmpfangsDatum = oMail.StatusTime
'
If Val(vFehlerNr) = 0 Or sEinAus = "A" Then
'
If DateValue(dSendeEmpfangsDatum) >= DateValue(gVonDat.Text) And DateValue(dSendeEmpfangsDatum) <= DateValue(gBisDat.Text) Then