从imanage / worksite / filesite下载文件

时间:2017-11-06 15:06:48

标签: vba excel-vba imanage excel

我在工作中遇到了这个问题,我必须用iManage(又名FileSite,DeskSite,WorkSite等)做很多事情,也许你已经听说过了。

无论如何,我要做的是写一个VBA代码,它能够根据InFin号码下载特定文件(上传时分配给每个文件的7位数字)到iManage)然后将文件放在某处;例如,在桌面上。 我知道iManage确实暴露了一个对象模型,我已经将引用设置为IManExtLib.dll

我相信我需要的命令是Copy.Cmd(我不想从WorkSite中删除某些内容,而只是为执行的任务下载文件的副本)。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

假设您已经有一个DMS会话,您需要获取您尝试获取的文档的IManDocument对象,然后调用GetCopy方法。例如,以下内容检索文档号123456的物理副本到临时文件夹。请注意,您需要添加对IManage.dll的引用,而不是IManExtLib.dll。

Dim dmsRoot As IManDMS
Dim dmsSession As IManSession
Dim dmsDatabase As IManDatabase
Dim doc As IManDocument

Dim tempDocName As String

Const ServerName As String = "YourDMS"
Const DatabaseName As String = "YourDatabaseName"
Const DocNumToFind = 123456
Const DocVerToFind = 1

    tempDocName = "C:\temp\mydoc.doc"

    Set dmsRoot = New ManDMS
    Set dmsSession = dmsRoot.Sessions.Add(ServerName)
    dmsSession.TrustedLogin

    Set dmsDatabase = dmsSession.Databases.ItemByName(DatabaseName)

    Set doc = dmsDatabase.GetDocument(DocNumToFind, DocVerToFind)
    doc.GetCopy tempDocName, imGetCopyOptions.imNativeFormat