Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: inu am 23.01.09 - 08:10:19
Titel: Agent mit Dokumentenauswahl bringt Fehler
Beitrag von: inu am 23.01.09 - 08:10:19
Hallo Leute,
in einer Datenbank erfassen wir Lizenzen (Maske "lizenz"). In dieser Maske gibt es ein verstecktes Feld "_restlaufzeit". Dieses Feld soll per Agent einmal in der Nacht neu berechnet werden. Gleichzeitig haben wir in der Maske ein Feld "flag_delete" (Zahlenfeld; Vorgabe 0). Löschen wir ein Dokument, wird dieser Löschvorgang über den Event "querydocumentdelete" abgefangen und das Feld "flag_delete" auf 1 gesetzt.
Nun möchte ich erreichen, das der Agent nur die "ungelöschten" Dokumente bearbeitet und dachte mit, dass ich das ganze per Dokumentenauswahl im Agent definieren kann. Ich habe folgendes eingetragen:
Benutzt Maske 'lizenz' AND Feld flag_delete ist nicht gleich mit 1
A-Bär: Hier erhalte ich von der Domino-Konsole diesen Fehler:
AMgr: Error executing agent 'Berechnung Restlaufzeiten Lizenzen' in 'datenbank.nsf'. Agent signer 'Mein Name/Organisation': Relational operators are not supported in text fields
Habt ihr eine Idee, wie ich das ganze zum Laufen bekommen kann?
Titel: Re: Agent mit Dokumentenauswahl bringt Fehler
Beitrag von: thomson666 am 23.01.09 - 16:14:07
entweder denke ich zu kompliziert oder...
db.search? oder als alternative 2 Ansichten rein. 1x eine mit den zu löschenden markierten und 1x die die noch zu bearbeiten sind!?
Titel: Re: Agent mit Dokumentenauswahl bringt Fehler
Beitrag von: HH am 23.01.09 - 17:08:30
Folgendes hab ich zu der möglichen Ursache gefunden:
Titel: Re: Agent mit Dokumentenauswahl bringt Fehler
Beitrag von: inu am 24.01.09 - 06:57:12
@thomson666:
da es sich um einen zeitgesteuerten Agenten handelt, habe ich nur folgende Auswahl als Laufzeitziel:
- alle Dokumente in dieser Datenbank - alle neuen und geänderte Dokumente
Wie soll ich dann dieses db.search "verbauen"?
Titel: Re: Agent mit Dokumentenauswahl bringt Fehler
Beitrag von: HH am 24.01.09 - 08:41:07
Laufzeitziel: Alle Dokumente in dieser Datenbank
Code
search = |form="lizenz" & flag_delete != 1|
set col = db.search( search, nothing, 0 )
set doc = col.getfirstdocument
...
Hubert
Titel: Re: Agent mit Dokumentenauswahl bringt Fehler
Beitrag von: inu am 24.01.09 - 11:26:00
... und der Agent durchläuft diesen Code nicht so oft, wie er lt. Definition in der Dokumentenauswahl Dokumente findet? ...
Titel: Re: Agent mit Dokumentenauswahl bringt Fehler
Beitrag von: HH am 24.01.09 - 11:35:02
Du benötigst keine gesonderte Dokumentenauswahl. Es werden alle Dokumente die db.search findet in die collection gebracht. Die musst du dann abarbeiten. In der Hilfe gibt es dazu jede Menge Beispiele.
Du könntest das Laufzeitziel auch auf "keines" setzen. Das Script wird dann genauso abgearbeitet.