Domino 9 und frühere Versionen > ND7: Entwicklung

Ältestes Dokument in DB ermitteln

<< < (2/3) > >>

eknori:

--- Zitat ---du und ich sind wohl die einzigen, die hier noch arbeiten
--- Ende Zitat ---
Ich mache das momentan nicht ganz freiwillig. Irgendwie geht mir die Archivierung nicht aus dem Kopf. Bis Mittwoch brauche ich ein paar konkrete Zahlen, um die Jobs entsprechend zu konfigurieren.
Leider kann ich da von den beteiligten Consultants nicht viel fachliche Unterstützung erwarten. Sind halt Consultants und haben vom richtigen Leben keine Ahnung.
Ausserdem wollen die für jeden Pups auch noch Kohle sehen. ( "Steht so nicht im Pflichtenheft, Haben Sie so nie geordert" ) . Die ganze Palette die diese Zunft so an BlahBlah ablässt.
Und die zu fragen, ob die denn schon mal in einem anderen Projekt die Mengen an Daten, die bei einer initialen Archivierung ermittelt haben,über den Draht gehen, würde wahrscheinlich deren Horizont übersteigen. Da machen die dann wieder ein projekt mit 20 Mannjahren draus.

Also muss ich wieder selber ran ...

koehlerbv:
In Collections und Ansichten werden Dokumente nur mittelbar nach dem Erstellungsdatum sortiert, korrekt ist: Sie werden nach der NoteID einsortiert.

Das heisst u.a. folgendes:
- Die Collection wird in jeder Replik andere Ergebnisse liefern - es zählt ja der Zeitpunkt der Einlieferung in *dieser* DB, welche NoteID zugeordnet wird.
- Wenn jemand lokal am 31.12.1999 ein Dokument erstellt und erst am 03.01.2000 reoliziert, jedoch am 02.01.2000 auf dem Server ein Dokument erstellt hat, dann wird das 1999er Dokument *nach* dem vom 02.01.2000 einsortiert.

Das Verfahren mit der Collection ist also "unscharf", könnte aber für Deine Zwecke ausreichend sein.

HTH,
Bernhard

eknori:
Ich werde das jetzt pro Datenbank in umgekehrter Reihenfolge machen. Ausgehend von 2008 gehe ich dann weiter in der Zeit zurück, bis der col.count = 0. Dann weiter zur nächsten DB.

Ich brauche eh die Daten aller Jahrgänge. Das ganze Zahlenzeugs dann in eine db und schwupps kann ich da schöne bunte Bilder zaubern.


eknori:
So, 45 Minuten und 40 Zeilen Code später habe ich jetzt soweit alles, was ich brauche:


--- Code: ---Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim dt As Variant
Dim intDocs As Integer
Dim dblLenght As Double
Dim strYear As String
Dim varRes As Variant
Dim dblSize As Double
Dim intAtt As Integer

Set db = session.CurrentDatabase
Set col = db.Search ( MACRO_HAS_ATTACHMENTS , Nothing,0)

If col.Count > 0 Then
intDocs = 0
dblSize = 0
intAtt = 0
Set doc = col.GetFirstDocument
dt = Evaluate (MACRO_THE_YEAR, doc )
strYear = dt(0)
While ( Not doc Is Nothing )

dt = Evaluate ( MACRO_THE_YEAR, doc )

If (Not strYear  = dt(0) ) Then
Print strYear & " Docs: " & Cstr (intDocs) & " Size: " & Cstr(dblSize) & " Count: " & Cstr(intAtt)
strYear = dt(0)
intDocs = 0
dblSize = 0
intAtt = 0
End If

varRes = Evaluate ( {@Sum(@AttachmentLengths)}, doc )
dblSize = dblSize + varRes(0)
varRes = Evaluate ( {@Attachments}, doc )
intAtt = intAtt + varRes(0)
intDocs = intDocs +1
Set doc = col.GetNextDocument (doc)
Wend
End If
End Sub
--- Ende Code ---

Der Code wirft mir die Anzahl der Documente, die Anhänge enthalten pro Jahr aus. Dabei wird die Anzahl der Attachments ermittelt und die  Länge der Attachments summiert.


eknori:
Na, so ganz zuverlässig ist das noch nicht. Habe es gerade mal auf einer Datenbank mit kanpp 10GB getestet. Die Laufzeit ist OK; knapp 5 Sekunden. Aber bei den ganz alten Docs scheint die Sortierung in der col ein wenig durcheinandergeraten zu sein.
Gut, dann bauen wir das noch ein wenig um, damit die Docs in den richtigen Jahrgang einsortiert werden.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln