Das Notes Forum
HCL Notes / Domino / Diverses => Entwicklung => Thema gestartet von: NeulingInNote am 16.02.21 - 13:01:51
-
Hallo zusammen,
Ich hoffe das ich an der richtige Stelle poste!
Arbeite mit HCL ND 11 Agent sol von einem Ansicht die Dokumente Loopen und passende Dokumente automatisiert löschen.
Den Agent habe ich so weit geschrieben, das Problem ist wenn der Agent serverseitig gestartet wird, werden keine Dokumente gelöscht obwohl passende Dokumente vorhanden sind.
Wenn ich allerdings den Agent händich starte werden die Passende Dokumente gelöscht!
view.AutoUpdate = False
Do Until doc Is Nothing
Set tempDoc = doc
Set doc = view.GetNextDocument(doc)
If tempDoc.verified(0) = "3" Then
Call tempDoc.Removepermanently(true)
End If
Loop
Der Agent wird von WebQueryOpen mittels @Command([ToolsRunMacro]; "(change)") gestartet.
Vielen Dank imvoraus!
-
Wer führt das Script aus?
Welchen Zugriff hat derjenige auf die Datenbank?
Welcher maximale Zugriff aus dem Internet ist in der ACL eingerichtet?
Welche Sicherheitsstufe hat der Agent?
Wenn es dann funktionieren sollte, hältst Du es für eine gute Idee, dass Benutzer über Web Löschrechte auf die Datenbank haben?
Alternative: Lass den Agenten periodisch laufen. Auf Grund des Status (verified = "3") kannst Du die Dokumente in der Ansicht nicht anzeigen lassen, wozu dann löschen beim Öffnen?
-
Danke für den schnelle Antwort.
Sorry ich hätte ausführliche schreiben sollen.
Das ganze soll stamm daten aktualisieren es wird nicht von web zugegriffen sondern der jenige füllt über web seite eine formular ein und schickt es. Nach dem der sein daten bestätigt hat (E-Mail Bestätigung) wird anhand eine Agent wird die Neu Dokument gegen alten anhand E-Mail geprüft ob der jenige schon vorhanden ist wenn der fall zutrifft wird der alte Dokument.verified wird auf 3 gesetzt und gespeichert. Das neue Dokument mit verified 2 gespeichert anschliesend wird eine Web-Seite, umzu Bedanken vorgeblendet beim öffnen dieser Seite wird der Agent zum löchen mittels WebQueryOpen gestartet.
Es wird nicht gelöscht wenn der Agent zum löchen mittels WebQueryOpen gestartet wird, testweise starte ich es händich dann löcht er die passende Dokumente.
Wer führt das Script aus? automatisch über WebQueryOpen wenn die Danke seite geöfnet wird.
Welchen Zugriff hat derjenige auf die Datenbank? keine
Welcher maximale Zugriff aus dem Internet ist in der ACL eingerichtet? hmm lesen, anonymous??
Welche Sicherheitsstufe hat der Agent? ist nicht sichtbar
Wenn es dann funktionieren sollte, hältst Du es für eine gute Idee, dass Benutzer über Web Löschrechte auf die Datenbank haben? Benutzer hat über Web keine Löschrechte!
Hoffe konte ich das Problematik darstellen wenn nicht bitte fragen, bin anfänger ohne notes Erfahrung der jenige der dafür zuständig war ist in die Rente gegangen.
-
Du solltest Dich mit den Sicherheitsmechanismen von Notes auseinandersetzen, ist ein wichtiges Thema.
Wer führt das Script aus? automatisch über WebQueryOpen wenn die Danke seite geöfnet wird.
Wer ist die Frage, irgendein User muss es sein, und dieser benøtigt entsprechende Rechte, um Dokumente löschen zu können
Welchen Zugriff hat derjenige auf die Datenbank? keine
Wenn er keine Zugriffsrechte hat, kann er auch nichts löschen
Welcher maximale Zugriff aus dem Internet ist in der ACL eingerichtet? hmm lesen, anonymous??
Steht in der ACL, Reiter Erweitert
Welche Sicherheitsstufe hat der Agent? ist nicht sichtbar
Ist eine Eigenschaft des Agenten, siehst Du im Designer
Wenn es dann funktionieren sollte, hältst Du es für eine gute Idee, dass Benutzer über Web Löschrechte auf die Datenbank haben? Benutzer hat über Web keine Löschrechte!
Und Du fragst, warum der Agent dann nicht funtkioniert? Wenn er keine Rechte hat, etwas zu tun, dann kann er es auch nicht
Wie ich schon empfohlen hatte, lass die Löschung periodisch durch einen Agenten ausführen, der die entsprechenden Rechte hat, und nicht von dem Benutzer im Web
-
Vielen Dank für die Hilfe
bin jetzt dein vorschlag nachgegangen und mir ein Agent geschrieben der Zeitgesteuert (Testweise alle 15 minuten) läuft.
Agent läuft unter meinem Name, habe Manager rechte auf der DB
Sicherheitstufen habe ich alle 3 ausprobiert dennoch funktioniert es leider nicht was mache ich falsch?
Hier der Agent:
Option Public
Sub Initialize
Dim sess As New NotesSession
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim view As NotesView
Set db = sess.CurrentDatabase
Set doc = sess.DocumentContext
Set view=db.GetView("XYZ")
Set doc = view.GetFirstDocument
view.AutoUpdate = False
Do Until doc Is Nothing
Set tempDoc = doc
Set doc = view.GetNextDocument(doc)
If tempDoc.verified(0) = "3" Then
Call tempDoc.Removepermanently(true)
End If
Loop
End Sub
-
WAS funktioniert denn nicht?
Werden keine Dokumente gefunden? Nicht einmal das Erste? Gibt es Fehlermeldungen auf der Server Konsole?
Agent läuft in deinem User Context. Fein. Werden Leser-/Autorenfelder in den Docs verwendet, und Du stehst evtl. Nicht drin?
Mehr Input, mehr output.
-
Vielen Dank Peter und eknori für die hinweise,
es hat tatsächlich an zugrifsrechten gelegen periodische Löschung funktioniert!