Set rtitem=dokument.Getfirstitem("Body") Forall obj In rtitem.Embeddedobjects fileName=Environ("TEMP")+"\"+obj.Source Call obj.extractFile(fileName) End ForAll
Hm now we have the attachment in the temp directory, but how can we launch this attachment? My first guess was to use shell(fileName). But Notes quits this with an "illegal function call" error. I have tried many ways to call the shell function, but could not get it to work. So i have searched for another solution and found out, that the easiest way to workaround this problem is to use the Windows Scripting host to execute the PDF file.
Set objShell = CreateObject("WScript.Shell") returnValue = objShell.Run(fileName, 3, false)
This works very well for all other file types your windows system recognize too. You can find a detailed description of the WScript.Shell function on MSDN
If you got only one attachment in document, you can use separate Form with Auto launch set to -First attachment-
ReplyDeleteNo need for Windows-specific scripts.
Here is an example how to open attachment after promp:
Dim ws As New NotesUIWorkspace
Dim ns As New NotesSession
Dim db As NotesDatabase
Set db = ns.CurrentDatabase
Set coll = ws.PickListCollection(3,False,"",db.FilePath,"($docswithattachments)","Choose doc to open","Open attachment")
If coll.Count > 0 Then
Dim doc As NotesDocument
Set doc = coll.GetFirstDocument
If Not doc Is Nothing Then
doc.Form ="OpenAttachment" 'Form with autolaunch set to First attachment
Call ws.EditDocument(False, doc)
End If
End If
Thank you for this very interesting idea.
ReplyDeleteWe have succesfully used that for a while and it works well. There was a problem with Symantec virus scanner which added fields to document and saved it without asking.
DeleteFortunately there is fix(2641800) for that:
http://www.symantec.com/business/support/index?page=content&pmv=print&impressions=&viewlocale=en_US&id=TECH103087
I've not tried it with a PDF, but the below code works with Excel. It does require that you know the default application to create the object with.
ReplyDeleteSet objExcel = CreateObject( "Excel.Application" )
objExcel.Visible = False
objExcel.Workbooks.Open strTemplateFilename, , True
Cheers,
Brian
Thank you Brian for your input, but your way to open the excel sheet has one big problem, that it will not work if excel is not installed on the computer. Today many computers have installed other spreadsheet applications like Libreoffice Calc. With your approach you will get an error, but with mine or Olli's way it will work on such computes too.
ReplyDeleteThere are many different formats in which the index PDF works. You can choose for a CSV format, where the different indexed entities would be separated by a comma. Adobe After Effects CC 2015
ReplyDelete