Domino 9 und frühere Versionen > ND7: Entwicklung
Suchen & Ersetzen Agent in Notes Script - Tipps für Anfänger?
watschn:
Hallo nochmal, ich bin übers Wochenende nicht zu programmieren gekommen.
Hab den Tipp von Dirk_2909 probiert, bekomme aber immer noch die Meldung "Variant does not contain an object".
Nochmal zum Verständniss, ich möchte die Änderungen auf alle Dokumente meiner Ansicht anwenden. Nicht nur auf ein einzelnes Dokument.
Mit @ReplaceSubstring funktioniert das ganz prima. Nur muss ich für jede Namensänderung den Agent umprogrammieren. Um dies zu vereinfachen wollte ich eben die Namensauswahl per Dialogbox machen.
dirk_2909:
Wenn Du @ReplaceSubstring benutzt, dann doch sicher in einem Agenten, der als Ziel Markierte Dokumente oder Alle Dokumnte in der Ansicht hat.
"intern" werden dann die Dokumente einzeln verarbeitet.
Wenn Du das mit LS machst, musst Du selber die einzelnen Doks verarbeiten.
Also :
db.UnprocessedDocuments ...
set doc = coll.getFirstDocument ...
While not doc is nothing .....
(nur so als Ansatzhilfe)
watschn:
Stimmt, der ganze Vorgang wird per Agent ausgeführt und ich habe dort "Alle Dokumente in der Ansicht" eingestellt. Das funktioniert doch dann auch, wenn ich es mit LS mache?
Jetzt läuft mein Agent immerhin ohne Fehlermeldung durch. Allerdings greift er wohl auf das falsche DOC zu. Bin immer im Rückwantwort-Dokument, die Änderungen sollen aber für das Antwortdok angewendet werden. Ich habe mir hierfür eine Ansicht erstellt, die ich auswähle bevor ich den Agent starte. Funktioniert aber nicht.
Das ist im moment mein Code
Sub Initialize
Dim workspace As New NotesUIWorkspace
Dim varResult As Variant
Dim session As New NotesSession
Dim collection As NotesDocumentCollection
Set db = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
Set uiview = workspace.Currentview
Set collection = db.AllDocuments
Set doc = collection.GetFirstDocument
'Const C_strFormula = |@ReplaceSubstring( VKenntnis; SSuchen ; SErsetzen)|
Const C_strFormula = |@ReplaceSubstring( VKenntnis; "Michael" ; "Hans")|
varResult = Evaluate(c_strFormula, doc)
End Sub
dirk_2909:
--- Zitat ---Set collection = db.AllDocuments
--- Ende Zitat ---
Ist hier nicht so sinnvoll, wenn Du auf Dokumente/markierte Dokument in der Ansicht gehst ;-)
Ersetzt das mal durch:
set coll = db.UnprocessedDocuments
lese Dir auch unbedingt das entsprechende Dokument in der Designerhilfe durch !!
Dann benötigst Du noch eine Schleife, um alle Dokumente der Collection zu verarbeiten:
While not( doc is Nothing )
....
set doc = ......
Wend
MadMetzger:
Hm... Vielleicht liege ich auch ganz falsch, aber kann man sich das alles nicht sparen, wenn man hier mit Namensfeldern arbeitet? Dann würde der Administrationsprozess die Änderungen automatisch mitmachen, wenn sich der Name eines Benutzers ändert. Das geht natürlich nur, wenn du in den betroffenen Feldern nur Notes-Benutzer enthalten haben kannst. Dauert dann zwar, aber man vergisst es auch nicht... ;D
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln