通过SDK订阅用户My Matters

通过SDK订阅用户My Matters,sdk,autonomy,imanage,Sdk,Autonomy,Imanage,使用Autonomy WorkSite 8.5 SP2 SDK,我试图通过编程方式向其他用户添加快捷方式我的事情我被告知可以通过先向其他用户订阅我的事情、添加快捷方式然后取消订阅来完成 因此,我试图向其他用户订阅我的事项,但我在如何订阅方面遇到问题,通过以下代码,我能够找到该用户的我的事项: Dim objSFSP As IManSubscriptionFolderSearchParameters = oDms.CreateSubscriptionFolderSearchParameters o

使用Autonomy WorkSite 8.5 SP2 SDK,我试图通过编程方式向其他用户添加快捷方式我的事情我被告知可以通过先向其他用户订阅我的事情、添加快捷方式然后取消订阅来完成

因此,我试图向其他用户订阅我的事项,但我在如何订阅方面遇到问题,通过以下代码,我能够找到该用户的我的事项:

Dim objSFSP As IManSubscriptionFolderSearchParameters = oDms.CreateSubscriptionFolderSearchParameters
objSFSP.Add( imFolderAttributeID.imFolderOwner, sShortcutUser )
Dim objFolders As IManFolders = oMatters.FindRootSubscriptionFoldersNotSubscribedTo(oDatabaseList, objSFSP)
通过阅读COM参考指南,我应该能够使用以下代码向用户订阅我的事项:

Dim objWorkArea As IManWorkArea = oSess.WorkArea
Dim oFolderShortcuts As IManSubscriptionFolderShortcuts = objWorkArea.SubscriptionFolder.SubFolders
Dim oFolderShortcut As IManFolderShortcut = oFolderShortcuts.AddNewSubscriptionFolderShortcutInheriting(objFolders)
我遇到的问题是
addnewsubscriptionfoldershortcutheriting()
需要类型为
IManSubScriptionFolder
的对象,其中
FindRootSubscriptionFoldersNotSubscribedTo()
返回
IManFolders
对象


有谁能告诉我,我需要做什么才能获得用户的实例?我的问题是作为IManSubscriptionFolder对象吗?

也许我的回答对您来说会有点晚,但我希望它能帮助其他有同样问题的人

回答您的问题,为了获得其他用户My Matters作为IManSubscriptionFolder对象的实例,您只需要循环遍历objFolders集合,并将每个文件夹强制转换为IManSubscriptionFolder类型

请在下面找到我的工作解决方案:

ManDMS dms = new ManDMS();
string serverName = "dms.server.com";
IManSession session = dms.Sessions.Add(serverName);
string userID = "user";
string password = "password";
session.Login(userID, password);

ManStrings dblist = new ManStrings();
dblist.Add("TargetWsDbName");

IManSubscriptionFolderSearchParameters searchParams = ndms.CreateSubscriptionFolderSearchParameters();
string folderOwner = "AnotherUser";
searchParams.Add(imFolderAttributeID.imFolderOwner, folderOwner);
IManFolders nonSubscribedRootSubscriptionFolders = session.WorkArea.SubscriptionFolder.FindRootSubscriptionFoldersNotSubscribedTo(dblist, searchParams);

foreach (var folder in nonSubscribedRootSubscriptionFolders)
{
    //another user's subscription folder
    var subscriptionFolder = folder as IManSubscriptionFolder;
    if (subscriptionFolder != null)
    {
        //Current user's subscription folder shortcuts
        var subscriptionFolderShortcuts = session.WorkArea.SubscriptionFolder.SubFolders as IManSubscriptionFolderShortcuts;
        if (subscriptionFolderShortcuts != null)
        {
            subscriptionFolderShortcuts.AddNewSubscriptionFolderShortcutInheriting(subscriptionFolder);
        }
    }

请注意,上面的代码仅供参考,不是生产代码。

谢谢,这与我最终开发的代码非常相似。