Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Cobi am 10.07.07 - 14:27:55
-
Hallo alle miteinander,
ich habe versucht einen Agent zu schreiben, der mir Dokumente aus der DB löscht, wenn das Feld 'deleteDay' in den Dokumenten das heutige Datum erreicht hat.
@If(deleteDay=@Today;@DeleteDocument;"");
SELECT @All
leider tut sich da nix.... wäre sehr dankbar, wenn ihr mir einen kleinen Tip geben könntet warum nicht :-)
Ein schönen Dienstag noch!
Lg
-
Welches Format hat denn "deleteDay" ?
-
normales Textfeld. Bearbeitbar, aber versteckt...
-
... und welches Format liefert @today ?
-
Datum :-) also wäre
@If(deleteDay=@text(@Today);@DeleteDocument;"");
SELECT @All
besser???
-
Was sagt ein Test dazu ?
-
So:
SELECT @Date(deleteDay) = @Today;
@DeleteDocument
Das Select bestimmt, welche Dokument bearbeitet werden.
-
Was sagt ein Test dazu ?
So hats mal noch nicht funktioniert. Kein anderes ergebnis als vorher.
-
@glombi,
ich habe extra keine sofortige Lösung gegeben, weil ich mit meinen Fragen den Fragenden ein bisschen in die richtige Richtung stubsen wollte .....
-
So:
SELECT @Date(deleteDay) = @Today;
@DeleteDocument
Das Select bestimmt, welche Dokument bearbeitet werden.
Hier kommt zumindest mal ne Fehlermeldung. Falscher Datentyp für Operator oder @Funktion Zeit/datum erwartet...
-
Wenn man sich mal die DesignerHelp zur Hand nehmen würde, würde man schnell sehen, dass statt @Date @TextToTime verwendet werden müsste.
Bernhard
-
Stimmt, es ist ja ein Textfeld. Toll, wenn in Textfeldern Datumswerte stehen ;)
-
Richtig, die haben darin nichts verloren (wenn sie irgendeinem Zweck dienen sollen ausser "Angucken").
Weiters:
Was ist, wenn der Agent einem Tag mal nicht läuft?
Was ist, wenn in diesem "Datumsfeld" statt 10.07.2007 "Tante Hilda" steht?
Was ist, wenn der Agent auf einmal auf einem Server mit US-Zeitformat läuft (zum Beispiel nach dem Update von Version 8.0.12 auf Version 9.01 - also wenn sich keine Sau mehr an diese verquaste "Lösung" erinnert?
Bernhard
-
Also er löscht jetzt die Dokumente, allerdings löscht er alle. Egal ob da 11.7. oder 10.7 drin steht....
Richtig, die haben darin nichts verloren (wenn sie irgendeinem Zweck dienen sollen ausser "Angucken").
Weiters:
Was ist, wenn der Agent einem Tag mal nicht läuft?
Was ist, wenn in diesem "Datumsfeld" statt 10.07.2007 "Tante Hilda" steht?
Was ist, wenn der Agent auf einmal auf einem Server mit US-Zeitformat läuft (zum Beispiel nach dem Update von Version 8.0.12 auf Version 9.01 - also wenn sich keine Sau mehr an diese verquaste "Lösung" erinnert?
Bernhard
- Er läuft periodisch jeden abend.
- Das Feld ist berechnet und niemand kann es sehen, sodass "tante Hilda" nicht drin stehen kann
- Gute Frage, denke dass das für meine DB nicht in Frage kommt.
Ich wusste übrigens nicht, dass das Forum hier nur für Spezialisten wie koehlerbv ist...
-
Ich wusste übrigens nicht, dass das Forum hier nur für Spezialisten wie koehlerbv ist...
Das stimmt so nicht. Bernhard weist nur auf mögliche Gefahrenquellen hin. Und diese Erfahrungen bekommt man eben erst im Laufe der Jahre.
-
Noch etwas:
für solche Sachen habe ich mir immer eine versteckte Ansicht gebaut, wo die zu löschenden Dokumente drin stehen. Das hat für mich den Vorteil, dass ich sehen kann, was gelöscht werden soll.
Und einmal am Tag/Woche/Monat läuft dann ein Agent, der alle Docs in dieser Ansicht löscht.
-
Ah ok, das ist auch eine gute Möglichkeit mit der versteckten ansicht. danke für den Tip.
Und auch danke an alle andern für die Hilfe!
-
Also falls ihr noch einen Augenblick habt, dann könnte ich euch mein damit in Verbindung stehendes Problem schildern?!
ch habe ein Profildokument mit einem Feld(vom Format Zahl) dass eine Zahl enthalten soll.
dann habe ich noch die Maske, die das berechnete Feld mit diesem Code:
_var := @GetProfileField("setup";"deleteDays");
@Text(@Adjust(date;0;0;_var;0;0;0)) enthält.
Es berechnet also das erstelldatum + die Zahl aus dem Profildokument.
Das funktioniert beim Anlagen eines Dokuments auch wunderbar, allerdings, wenn ich das Profildokument ändere, dann ändert sich das Feld in der Maske ja leider nicht. Wie kann ich das anstellen, dass sich nach ändern des Profildokuments die Felder der schon erstellten Dokumente auch ändern??
Danke.
Gruss
-
Das würde jetzt eigentlich einen neuen Thread erfordern. Und: Es ist ein allseits so beliebtesDoppelposting (http://www.dominoforum.de/modules/newbb/viewtopic.php?topic_id=16116&forum=47&post_id=90117#forumpost90117).
Hier die letzte Nachfrage von "taurec" aus dem Dominoforum:
Die Frage ist: willst du den Wert nur bei neuen Dokumenten nach deiner Formel haben oder bei allen ?
Bei allen wäre es wie Dirk es sagt im QueryClose am besten, oder über einen Agenten
Die Frage gehört wirklich geklärt. Und das darfst Du jetzt zweimal machen ...
Bernhard