Domino 9 und frühere Versionen > Entwicklung
Aktualisierung von berechneten Feldern über einen Agenten
koehlerbv:
Um einem Feld (item) einen neuen Wert zu verpassen, einfach folgende Zuweisung treffen:
NotesDocument.Feld = Wert
Um den Code so kompakt wie möglich zu halten, würde ich folgendes machen:
- Eine Ansicht aller Hauptdokumente erstellen (ich weiß nicht, wie Du die unterscheiden kannst - Formname ? Notfalls darf een kein $Ref enthalten sein)
- Durch die Ansicht loopen
- zu jedem Dokument mit NotesDocument.Responses eine NotesDocumentCollection bilden
- Wenn deren count > 0, dann für jedes doc der collection prüfen, ob der Status dem Hauptdokument entspricht (docMain.Status (0) = docResponse.Status (0) , falls nicht:
docResponse.Status = docMain.Status (0)
- und speichern.
Das ist in ein paar Zeilen geschrieben.
Das selbe Verfahren - eben immer nur für ein Hauptdokument - kannst Du aber auch beim Speichern ausführen - das sollte eigentlich keine grossen Laufzeitprobleme erzeugen (es sei denn, Ihr habt 25000 Hauptdokumente und jeweils 200 Responses dazu).
HTH,
Bernhard
Micha:
Die Variante hört sich gut an, dann kann ich das berechnete Feld weglassen und brauche auch den $Ref eintrag nicht mehr.
Fraglich ist nur wie schnell das ganze ist.
Die Datenbank wird so von 10-30 MA's benutzt und pro Monat kommen so 100-400 Dokumente dazu, kann also schnell sehr groß werden, die pilotapp. hat so 860 MB.
Besten Dankerstmal, wenns geht setze ich den Punkt auf Erledigt
Micha:
So ich konnt ein paar Tage nich weiterarbeiten, aber nun gehts, hat insgesamt 60 min gedauert, so mag ich Programmierung ;D
Nur die Zeile
docResponse.Status = docMain.Status (0) ging nich.
Die hintere 0 musste weg dann war alles OK.
Ich bin aber immernoch nicht so ganz hinter die "Extended class" syntax gestiegen. ;)
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln