Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Don Pasquale 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
-
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
-
@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
-
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?
-
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:
...?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