Dann stimmt eben was bei deiner Löschprüfung nicht.
Und um das zu prüfen gibt es den Debugger. Verwende ihn doch mal
Dann stimmt eben was bei deiner Löschprüfung nicht.
Und um das zu prüfen gibt es den Debugger. Verwende ihn doch mal
Lass Dir doch die Ergebnisse Deiner Prüfung mal in 2 Variablen ausgeben um im Debugger zu prüfen, ob da wirklich exakt das gleiche steht.
Ich glaube wie taurec, das was an der Löschbedingung nicht zutrifft.
Ich bin mit dem Debugger dort durchgegangen und da steht tatsächlich das gleich nur macht mein Script nichts.
Kann jemand schauen ob da ein Fehler im Script ist welches ich übersehe.
Groß-/Kleinschreibung passt ?
Keine zusätzlichen/fehlenden Leerzeichen ?
Sonderzeichen ?
Unterschiedliche Datentypen
Also ich habe folgendes heraus gefunden, die Ansicht, sieht der Agent jetzt und kann auch Doukumente löschen. Tut es bislang auch einwandfrei nur nicht alle Dubletten. Ich habe probiert die Dokumente manuell zu entfernen welche der Agent nicht löschen konnte und bekomme die Fehlermeldung, dokument kann nicht gelöscht werden, da das Dokument nicht gefunden wurde. Irgendeine Idee was mit den Dokumenten nicht stimmt?
Sieht nach einem defekten Ansichtsindex aus. Bau den doch mal neu auf
Also ich habe die Ansicht nochmal komplett neu angelegt und die Dokumente neu indexiert, trotzdem bekomme ich diese Fehlermeldung. Die lautet genau:
"Dokument wurde nicht gefunden"
wenn ich dann die genauen Informationen aufmache, steht folgendes drinne:
"Agent '(agNtsDocDelete) | agNtsDocDelete' wurde am 01.04.2009 12:15:17 gestartet
Fehler in Formel: Dokument wurde nicht gefunden.
0 Dokument(e) wurden durch die Formel geändert
Agent '(agNtsDocDelete) | agNtsDocDelete' wurde am 01.04.2009 12:15:23 beendet"
SO Problem mit den Dokumenten ist jetzt auch erledigt, ich habe die Dokumente neuangelegt und es hat funktioniert, war wohl ein Fehler in den Dokumenten.
Jetzt habe ich nur noch eine Bitte an euch mir zu helfen den Agenten einbisschen anzupassen.
Es ist folgendes was ich herausgefunden habe, der Agent löscht erstens nicht nur Dubletten, sondern auch das Original gleich mit :).
und zweitens hört er auf nach Dubletten zu suchen sobald welche gefunden hat und Sie gelöscht hat. Er muss aber weiterhin bis zum letzten Dokument alles durchsuchen um sicherzustellen ob auch wirklich keine Dubletten mehr vorhanden sind.
Hier nochmal der code:
Sub Initialize
Dim s As NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim doc_temp As NotesDocument
Set s = New NotesSession ' Objekt NotesSession initialisieren (Einstiegspunkt)'
Set db = s.CurrentDatabase
Set view = db.GetView("String")
Set doc = view.GetFirstDocument
'Schleife über alle Dokumente in der Ansicht'
While Not doc Is Nothing
Set doc_temp = view.GetNextDocument(doc)
' prüfen ob die Dokumente den gelichen Text in der ersten Spalte in der Ansicht haben'
If doc.ColumnValues(0) = doc_temp.ColumnValues(0) Then
Set doc = view.GetNextDocument(doc_temp)
doc_temp.RemovePermanently(True)
Else
Set doc = view.GetNextDocument(doc)
End If
Wend
End Sub
Alles anzeigen
Und wie gesagt, vielen Dank für die Hilfe jungs, wie gesagt falls einer ein Bierchen will gebe ich einen aus. :pint:
Na dann hat deine Auswahlformel im Agenten einen Fehler
Ja darauf bin ich auch gekommen, nur wo der Fehler liegt, da brauche ich Hilfe, für mich sieht alles richtig aus, deswegen poste ich hier ja auch, weil ich selber nicht dahinter komme.
Bin noch Anfänger was Lotus Script Programmierung angeht.
Das hat nichts mit deinem Script zu tun, sondern mit dem was du unter Dokumentauswahl für eine Formel hinterlegt hast.
Wobei die ja eigentlich überflüssig ist
Moment, ich komme nicht hinterher... Kannst du dies bitte näher erklären?
Agent im Designer öffnen, links auf Dokumentauswahl klicken und dir die Formel anschauen
Achso, ok jetzt weiss ich was du meinst, aber wieso muss ich Ihm eine Bedingung hinzufügen, wenn ich doch schon im Script sag, dass er die View ("String") benutzen soll?
Und wie kann ich in dieser Bedingung diese View auswählen, ich habe Sie ja mit runden Klammern angelegt, somit ist Sie dort nicht sichtbar.
Da sollte eben nichts drin stehen. Hab ich ja auch so geschrieben.
Bitte lies doch auch ganz was man dir schreibt
Sorry war einen Moment verirrt, aber trotzdem in der Dokumentenauswahl ist keine Bedingung hinterlegt. Es ist leer.
Somit sind wir wieder auf dem Ausgangspunkt.
Auf was ist das Ziel des Agenten eingestellt ?
Alle Dokumente in der Datenbank
Kann mir noch jemand sagen, wie ich eine Prüfung einbauen kann, bevor der Agent die Dublette löscht. Ich will, dass er die Dublette vor dem Löschen erstmal mit dem Original vergleicht, welche von Ihnen zuletzt geändert wurde und dann die mit der älteren Änderung löschen.
Indem du die Eigenschaft LastModified des NotesDocument prüfst