Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: pimpfling am 28.05.08 - 16:46:18

Titel: @Mailsend und @Command([FileImport]; "GIF Image"; "c:\\picture.gif");
Beitrag von: pimpfling am 28.05.08 - 16:46:18
Hallo

Ich schicke per @Mailsend eine Mail mit Text und einer HTTP URL auf das Dokument.
Nun möchte ich bei dem Text an einer Stelle ein kleines Bild einfügen.
Ich habe das wie folgt probiert:


FIELD ToDo_done:=ToDo_done;
@SetField("ToDo_done";"Done");
@Command([FileSave]);
picture:=@Command([FileImport]; "GIF Image"; "c:\\picture.gif");
tmp := @Text(@DocumentUniqueID);
urlstring := "http://Dominoserver/datenbank.nsf/0/"+tmp+"?OpenDocument";

@MailSend("Mailempfänger@domain.de";"";"";"Dokument: " + ToDo_MainTitel; + "Zum Thema " + ToDo_MainTitel + " wurde folgendes ToDo von " + @Name([CN];@UserName) + " erledigt: "  + @NewLine + picture + ToDo_header; @NewLine + "Link zum Dokument: " + urlstring)


Ich bekomme immer die Meldung: Cannot execute the specified command.
Gibt es noch einen Trick wie ich ein Bild in eine per @Mailsend verschickte Mail einfügen kann?

Titel: Re: @Mailsend und @Command([FileImport]; "GIF Image"; "c:\\picture.gif");
Beitrag von: Driri am 29.05.08 - 08:21:28
Ich behaupte jetzt mal, daß Du das mit @Mailsend nicht hinbekommen wirst (ich lasse mich natürlich gerne eines besseren belehren  ;)).
Zumindest kannst Du das @Command([FileImport]) nicht einer Variable zuweisen, das ist quasi eine UI-Funktion.

Mit Script sollte das kein Problem sein, denn da kannst Du ja in einem Mail-Document ein Richtextitem erzeugen und in dieses dann via EmbedObject ein Bild einfügen.

Wobei sich auf jeden Fall die Frage stellt, wer diesen Agenten oder diese Aktion später alles ausführt. Ich gehe mal davon aus, daß nicht jeder User genau die Datei auf Laufwerk C: liegen hat.
Titel: Re: @Mailsend und @Command([FileImport]; "GIF Image"; "c:\\picture.gif");
Beitrag von: pimpfling am 29.05.08 - 09:20:24
Vielen Dank für den Hinweis
Ich hatte das schon fast befürchtet das ich da mit LS ran muss.
Leider fehlt mir noch das das Knowhow um das jetzt umzusetzen - werde mich also erstmal durch ein paar Beispiele wühlen müssen - falls also jemand den einen oder anderen Ansatz oder Hinweis auf ein Beispiel hat... ;)

Das mit der Datei auf C:\ ist mir bewusst - war auch nur zum testen gedacht - später liegt das GIF auf einem Server oder schon in der DB drin.

Vielen Dank
Stefan
Titel: Re: @Mailsend und @Command([FileImport]; "GIF Image"; "c:\\picture.gif");
Beitrag von: dirk_2909 am 29.05.08 - 09:25:34
Super Beispiele und "Hilfe" gibt es in der Designerhilfe ;-)

Hier mal zwei (hilfreiche) Auszüge:

Code
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
doc.Form = "Memo"
doc.SendTo = "Elissa Minty"
doc.Subject = "Here's the document you wanted"
Call doc.Send( False )

Code
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
Set rtitem = New NotesRichTextItem( doc, "Body" )
Set object = rtitem.EmbedObject _
( EMBED_ATTACHMENT, "", "c:\jim.sam")
doc.Form = "Main Topic"
doc.Subject = "Here's Jim's document, as an attachment"
Call doc.Save( True, True )
Titel: Re: @Mailsend und @Command([FileImport]; "GIF Image"; "c:\\picture.gif");
Beitrag von: pimpfling am 29.05.08 - 15:48:03
Vielen Dank für die beiden LS Hinweise.
Damit bin ich schon mal gut voran gekommen, allerdings bekomme ich mit dem
Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", "c:\picture.gif")
das Image nur als Attachment angezeigt und mit
Set object = rtitem.EmbedObject ( EMBED_OBJECT, "", "c:\picture.gif")
das Image als leeres Objekt.
Mit der Methode rtitem.EmbedObject komme ich hier glaube ich nicht weiter.
Ne andere habe ich in der Hilfe aber leider nicht gefunden.
Gibts noch eine Methode um ein Bild als Bild in ein rtitem einzufügen?

Gruß Stefan
Titel: Re: @Mailsend und @Command([FileImport]; "GIF Image"; "c:\\picture.gif");
Beitrag von: Driri am 29.05.08 - 17:21:57
Bei EMBED_OBJECT ist der 2. Parameter wichtig. Dort mußt Du Notes sagen, was für ein File als Objekt importiert werden soll.

In deinem Fall müßte das vermutlich so aussehen (Achtung : Bin mir nicht 100%ig sicher, daß die Class so heißt) :

Set object = rtitem.EmbedObject ( EMBED_OBJECT, "GIF Image", "c:\picture.gif")
Titel: Re: @Mailsend und @Command([FileImport]; "GIF Image"; "c:\\picture.gif");
Beitrag von: pimpfling am 30.05.08 - 09:35:09
Ne, leider nicht... :(
Es kommt die folgende Fehlermeldung:

Must provide either class or source, but not both

Wenn ich jetzt z.B. die Source weglasse...

Set object = rtitem.EmbedObject ( EMBED_OBJECT, "GIF Image", "")

...kommt die folgende Fehlermeldung:

Embedded object class not found in registry

Mir scheint als ob es mit rtitem.EmbedObject nicht klappt

Gruß Stefan

Bei EMBED_OBJECT ist der 2. Parameter wichtig. Dort mußt Du Notes sagen, was für ein File als Objekt importiert werden soll.

In deinem Fall müßte das vermutlich so aussehen (Achtung : Bin mir nicht 100%ig sicher, daß die Class so heißt) :

Set object = rtitem.EmbedObject ( EMBED_OBJECT, "GIF Image", "c:\picture.gif")
Titel: Re: @Mailsend und @Command([FileImport]; "GIF Image"; "c:\\picture.gif");
Beitrag von: dirk_2909 am 30.05.08 - 10:03:20
Hallo

das mit dem Import klappt wohl nur im UI.

Folgendes Script klappt bei mir:

Code
...
set uidoc = ws.EditDocument( true , docMemo )
strFileName  = "c:\temp\dummy.gif"
strImportType = "GIF Image"
call uidoc.FieldClear("fldRT" )
Call uidoc.FieldClear( "fldRT" )
Call uidoc.GotoField("fldRT")	
Call uidoc.Import( strImportType , strFileName  )	
...
Titel: Re: @Mailsend und @Command([FileImport]; "GIF Image"; "c:\\picture.gif");
Beitrag von: Driri am 30.05.08 - 11:01:54
@Stefan :

Sorry, da hab ich selber die Hilfe nicht gelesen. Da steht auch direkt im oberen Abschnitt :

Zitat
The object is created using either the application or the file you specify.