Sammeln von Kalendereinträgen (AD)

Hallo Helper :smile:

Ich habe ein „Entwicklungs-Problem“:

Zur Darstellung einer „Abteilungsplanung/auslastung“ habe ich einen
Agenten geschrieben, der mir Nachts aus allen Maildatenbanken der
User die Dokumente des Ordners in eine seperate
Datenbank kopiert, wo diese dann grafisch aufbereitet werden. Ich
benötige dabei hauptsächlich die Zeiteinträge und den
Appointment_Type.

Die drauf folgende Nacht lösche ich die Daten der Datenbank wieder
komplett und kopiere alle Einträge neu, da ich den aktuelen Stand
haben will. Keine ahnung wie ich nur Änderungen kopieren könnte.
Ich will die Kalendereinträge in den Maildatenbanken nicht bearbeiten
(z.B. duch Setzen eines Flags).

Dies alles ist von der Technik her ja alles kein Problem.
Jedoch befürchte ich sehr starke Perfomance-Auslastung und Laufzeiten
des Agent von mehr als 1 Stunde.

Hat irgendein Entwickler vielleicht einen Tip für mich, wie man das
geschickter machen kann?
Gibt es Hilfen (Tasks) für das Sammeln von Kalendereinträgen?
Gibt es Möglichkeiten mit der busytime.nsf zu arbeiten ?

Im vorraus vielen Dank !

Carsten1977
Prin CLP AD
[email protected]

Zur Darstellung einer „Abteilungsplanung/auslastung“ habe ich
einen
Agenten geschrieben, der mir Nachts aus allen Maildatenbanken
der
User die Dokumente des Ordners in eine
seperate
Datenbank kopiert, wo diese dann grafisch aufbereitet werden.
Ich
benötige dabei hauptsächlich die Zeiteinträge und den
Appointment_Type.

Die drauf folgende Nacht lösche ich die Daten der Datenbank
wieder
komplett und kopiere alle Einträge neu, da ich den aktuelen
Stand
haben will. Keine ahnung wie ich nur Änderungen kopieren
könnte.
Ich will die Kalendereinträge in den Maildatenbanken nicht
bearbeiten
(z.B. duch Setzen eines Flags).

Dies alles ist von der Technik her ja alles kein Problem.
Jedoch befürchte ich sehr starke Perfomance-Auslastung und
Laufzeiten
des Agent von mehr als 1 Stunde.

Da gerade das Schreiben von Dokumenten eine „teuere“ Angelegenheit ist, könntest Du vielleicht insgesamt Laufzeit verringern, wenn Du aktualisierst, statt wegzuschmeissen:

  1. In deinen Dokumenten NotesUniqueID des Originals speichern.
  2. Zuerst für alle Benutzer eine Runde über Deine Dokumente: Gibt es noch das Original-Dokument? Wenn nicht, Dein Dokument auch löschen.
  3. Für alle Benutzer: Eine Runde über die Dokumente in der Mail-DB. Zu jedem: Gibt es schon eins Deiner Dokumente mit der NotesUniqueID? Wenn nicht, erstelle ein neues. Wenn ja, prüfe für alle interessanten Felder, ob sie sich verändert haben und ersetze für diesen Fall diesen Feldinhalt. Wenn sich mindestens ein Inhalt geändert hat, speichere das Dokument.

Tip:
Schreibe eine Funktion, der Du Dein Dokument, einen Feldnamen und den neuen Wert übergibst, und die den Inhalt dieses Felds überschreibt, falls der alte ungleich dem neuen Wert ist. Diese gibt wahr zurück, falls der Wert überschrieben wurde. Und dann:

irgendeinerGeändert = False
irgendeinerGeändert = irgendeinerGeändert or ändereWennNötig(doc, "Anfangszeit", neueAnfangszeit)
[...]
If irgendeinerGeändert Then
 call doc.Save(True, True)
End If

HTH
Thomas Bahn