Autor Thema: Agent im WebQueryOpen  (Gelesen 1991 mal)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Agent im WebQueryOpen
« am: 02.10.03 - 12:21:46 »
Im WebQueryOpen rufe ich einen Agenten auf,
der folgende Fehler erzeugt:
Error creating product object

Jetzt sagt mir aber nicht, ich dürfte im WebQueryOpen
keine FrontEnd Befehle nutzen ?

Ciao
Don Pasquale

Sub Initialize
   Dim uiws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim session As New NotesSession
   Dim doc As NotesDocument
   Set uidoc = uiws.CurrentDocument
   Set doc = uidoc.Document
   Dim obj As NotesEmbeddedObject
   Dim rti As NotesRichTextItem
   
   OCXREG$ = "C:\TEMP\DATA\00001.txt"
   
   If uidoc.IsNewDoc Then
      If DoesFileExists ( OCXREG$ ) > 0 Then
         doc.subject = " Attachment"
         Set rti = New NotesRichTextItem( doc, "Body" )
         Set obj = rti.EmbedObject(EMBED_ATTACHMENT, "", OCXREG$)
         Call doc.save (True,True)
      End If
   End If
End Sub

Glombi

  • Gast
Re:Agent im WebQueryOpen
« Antwort #1 am: 02.10.03 - 13:31:22 »
Hi,
ich fürchte, ich muss Dir die grausame Wahrheit sagen: Du kannst keine UI Klassen verwenden.

In Web Agenten musst Du das so machen:

   Dim session As New NotesSession
   Dim doc As NotesDocument
  Set doc = session.DocumentContext
   Dim obj As NotesEmbeddedObject
   Dim rti As NotesRichTextItem
   
   OCXREG$ = "C:\TEMP\DATA\00001.txt"
   
   If doc.NewDoc(0)="" Then
      If DoesFileExists ( OCXREG$ ) > 0 Then
         doc.subject = " Attachment"
         Set rti = New NotesRichTextItem( doc, "Body" )
         Set obj = rti.EmbedObject(EMBED_ATTACHMENT, "", OCXREG$)
         doc.NewDoc = "0"
         Call doc.save (True,True)
      End If
   End If

Ob das aber mit dem RTF Feld funkioniert, musst Du mal testen.
Das Feld NewDoc ist der Trigger - das solltest Du in die Maske als berechnetes Feld einbauen:
Vorgabewert = ""
Eingabeumsetzung = "0"

Andreas

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Agent im WebQueryOpen
« Antwort #2 am: 02.10.03 - 14:11:37 »
@Glombi


Ich habe mal mit folgendem Code angefangen,
aber selbst der funktioniert nicht :

   Dim session As New NotesSession
   Dim doc As NotesDocument
   Set doc = session.DocumentContext
   Dim obj As NotesEmbeddedObject
   Dim rti As NotesRichTextItem
   
    doc.subject = " Attachment"
    Call doc.save (True,True)
 

Was will ich überhaupt:

Im Lotus-Webmail wird eine neue Memo erstellt.
Handelt es sich um ein neues Dokument,
wird ein Agent aufgerufen.

Der Agent wird auch tatsächlich aufgerufen,
er will mir aber nicht gelingen, die aktuelle
geöffnete Mail irgendwie zu verändern,
denn eigentlich will ich prüfen ob eine
Datei existiert und diese als Attachment
übergeben.

Ciao
Don Pasquale


Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:Agent im WebQueryOpen
« Antwort #3 am: 02.10.03 - 18:00:53 »
Don,
da ist Schicht mit WQO, das wird getriggert, bevor das InMemory-Dokument ausgeliefert wird, also viel zu spät, um noch was am Backend-Doc zu machen. Deshalb kommst Du da auch nicht mehr dran.

Der richtige Zeitpunkt zur Prüfung etc wäre das WQS, was spricht dagegen?
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Agent im WebQueryOpen
« Antwort #4 am: 03.10.03 - 10:58:19 »
Eine Alternative zu wflammes Vorschlag ist das folgende:

Der ich glaube klassische workaround besteht darin, die Werte der Felder beim öffnen des Dokuments als CGI Variablen zu übergeben:

Zitat
...?Open&Field=Value

and have the webQueryOpen agent (or a simple field @formula) get that value from the QUERY_STRING_DECODED CGI field.


See designer help for assistance on how to use CGI fields, or search this forum for QUERY_STRING_DECODED


Die Feldvariante ist besser als der sehr inperformante WQO-Agent.
Versuchs einfach mal aus und mach dir ein Feld mit der entsprechenden CGI-Formel. Zu faul jetzt den loNo Designer aufzumachen. Versuchs mit der Hilfe.

Gruß Axel
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz