【问题标题】:Hyperlinking a folder stored on iManage超链接存储在 iManage 上的文件夹
【发布时间】:2017-11-18 22:16:05
【问题描述】:

我正在寻找一种方法来创建指向 Worksite 中特定文件夹的超链接。 到目前为止,我只根据数据库编号提出了一个宏链接文件,但文件夹没有数据库编号(我认为)。 另一件事是我希望在 Outlook 中打开文件夹(Worksite 与 Outlook 连接,我们通过它访问文件夹) 我试图完成的是在 Excel 中创建超链接以便于访问文件夹(就像文件的超链接一样)。 有人知道它是否可能吗?如果是的话,我会很感激这个代码的例子。 提前致谢。

【问题讨论】:

    标签: hyperlink directory imanage worksite-sdk


    【解决方案1】:

    是的,这是可能的。

    您没有提及您正在使用哪个版本的 iManage 客户端,但我将假设 FileSite 9.x。与该客户端一起安装的是支持自定义 URI 方案的自定义协议处理程序。

    实际上,这允许您使用纯文本编写超链接,然后您可以将其嵌入到您的网页中,或者只是在 Windows 中启动一个新进程以让默认浏览器加载它。

    自定义协议处理程序将对其进行解析,然后启动它可以启动的任何 iManage 客户端(在您的情况下为 FileSite),然后导航到正确的文件夹。

    格式为iwl:dms=[ServerName]&&lib=[DatabaseName]&&page=[FolderID]

    这是构建出这样一个字符串的一些 C#

    var serverName = "MYSERVERNAME";
    var databaseName = "MYDBNAME"; 
    var serverName = "1234"; // internal numeric ID of folder (MHGROUP.PROJECTS.PRJ_ID in database, or IManFolder.FolderID via iManage COM API object model
    
    var sb = new StringBuilder("iwl:");
    
    sb.Append($"dms={serverName}");
    sb.Append("&&");
    
    sb.Append($"lib={databaseName}");
    sb.Append("&&");
    
    sb.Append($"page={serverName}");
    
    // sb.ToString() will now output the hyperlink reference to your folder which you can pass to your web browser..
    

    【讨论】:

    • With Selection .Hyperlinks.Add Anchor:=Selection, Address:="iwl:dms={serverName}&&lib={databaseName}&&num={dat‌​abaseNumber - 7digits}&&ver=1&&latest=1", TextToDisplay:="link" End With
    • 嘿。非常感谢您的回复。我认为的主要问题是定义文件夹的 ID。哪里可以得到这样的财产。当您进入文件夹的属性时,没有任何信息。文件有我用来在 VBA 中超链接的数据库编号 - 请参见上文
    • 是否可以通过使用 ImanFolder.path 来通过 VBA 获取 ImanFolder.FolderID?
    • 是的。如果您使用 Excel、Word 或 PowerPoint,则可以通过引用计算机本地安装的 iManage COM API (iManage.dll) 来访问它。也许编辑问题以阐明您当前如何从代码中访问 iManage 对象模型(如果有的话)
    • 嘿。我已经发布了我试图在下面构建一些东西的代码。我正在为 ImanFolder 的语法苦苦挣扎,我知道这是错误的。在这方面获得一些帮助会很棒。我需要一个指向工作站点上文件夹的链接,但我可以使用的唯一唯一值是位置。我得到了对图像库的引用。
    【解决方案2】:
    Sub Folder_link
    
    Dim dmsIM As IManDMS
    Dim dmsS As IManSession
    Dim dmsD As IManDatabase
    Dim FdR As IManFolder
    Dim FdrLoc As String
    Dim FdrID As Long
    
    Const ServerName As String = <DMS name>
    Const DatabaseName As String = <DatabaseName>
    FdrLoc = "\\{DMS name}\{DatabaseName}\Main Folder\SubFolder\SubSubFolder\TargetFolderName"
    
    Set dmsIM = New ManDMS
    Set dmsS = dmsIM.Sessions.Add(ServerName)
    dmsS.TrustedLogin
    
    Set dmsD = dmsS.Databases.ItemByName(DatabaseName)
    
    Set Fdr = Imanage.ImanFolder.Location (FdrLoc)
    
    FdrID = Fdr.FolderID
    
    With ThisWorkBook.WorkSheets(1).Range("A1")
        .Hyperlinks.Add _
        Anchor:=Selection, _
        Address:="iwl:dms={serverName}&&lib={databaseName}&&page=" & FdrID, _
        TextToDisplay:="link" 
    End With
    
    End Sub
    

    【讨论】:

    • 有人可以帮忙吗?
    猜你喜欢
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    • 2016-06-13
    • 2013-09-23
    相关资源
    最近更新 更多