Domino 9 und frühere Versionen > ND6: Entwicklung

Doppelklick auf Dokument in Ansicht soll Agenten starten

<< < (4/4)

Axel:
Ich habe das Ganze mal auf die Schnelle getestet und es funktioniert ohne Probleme.
Code im QueryOpendocument der Ansicht:

--- Code: ---Sub Queryopendocument(Source As Notesuiview, Continue As Variant)

Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim agent As NotesAgent
Dim session As New NotesSession
Dim db As NotesDatabase

Set db = session.CurrentDatabase
Set collection = source.Documents
Set doc = collection.GetFirstDocument

Set agent = db.GetAgent("(Testagent)")
If agent.Run(doc.NoteID) = 0 Then
Messagebox "Agent ran",, "Success"
Else
Messagebox "Agent did not run",, "Failure"
End If
continue = False
End Sub

--- Ende Code ---

Die Messagebox habe ich nur zu Testzwecken eingefügt und kann auch weggelassen werden.

Der Agent sieht so aus:

--- Zitat ---Sub Initialize
   Dim s As New NotesSession
   Dim agent As NotesAgent
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   
   Set db = s.CurrentDatabase
   Set agent = s.CurrentAgent
   
   Set doc = db.GetDocumentByID(agent.ParameterDocID)
   
   doc.Testfeld = "Bearbeitet"
   Call doc.Save(True, False)
   
End Sub

--- Ende Zitat ---

Als Ziel in den Agenten-Eigenschaften muss "Keines" eingetragen werden. Sonst wird untenstehende Fehlermeldung angezeigt.  


--- Zitat von: iukhdh am 31.07.08 - 17:35:07 ---Ergänzung:
Nachdem ich mal Notes und Designer neu gestartet habe, kommt nun bei der Zeile agent.run folgende Fehlermeldung:

Im Hintergrund ausgeführter oder eingebetteter Agent verwendet einen nicht unterstützten Auslöser und Suchtyp.

--- Ende Zitat ---


--- Zitat ---...
continue = False
...

--- Ende Zitat ---

Diese Zeile verhindert das Öffnen des Dokuments (und das macht es auch!).

Da das ein, auf die Schnelle zusammengestrickter Code ohne irgendeine Fehlerbehandlung.

Axel

Axel:

--- Zitat von: iukhdh am 01.08.08 - 08:39:30 ---und nun? Mit Script kann ich die Frontendagenten nicht laufen lassen, und mit Formelsprache kann ich das Continue=False  nicht ausführen.

--- Ende Zitat ---

Dir bleibt nur der Weg über einen Agent mit Backend-Funktionen.

Axel

iukhdh:
Nun gut, dann werd ich das mal die nächsten Tage zurückstellen, denn die ganzen Frontendagenten in Formelsprache muss ich dann ja wohl mal genauer anschauen und umbauen. Und dann mache ich es gleich so wie von dir oben vorgeschlagen ohne die Klickorgie.

Danke.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln