通过SDK订阅用户My Matters
Subscribe to a users My Matters via SDK
使用 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)
我遇到的问题是 AddNewSubscriptionFolderShortcutInheriting()
需要一个 IManSubScriptionFolder
类型的对象,其中 FindRootSubscriptionFoldersNotSubscribedTo()
returns 一个 IManFolders
对象。
任何人都可以指出我需要做什么才能将用户“我的事项”的实例作为 IManSubscriptionFolder 对象获取吗?
可能我的回复对你来说有点晚了,但我希望它能帮助其他遇到同样问题的人。
回答您的问题,为了将其他用户“我的事项”的实例作为 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);
}
}
请注意,上面的代码仅供参考,并非生产代码。
使用 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)
我遇到的问题是 AddNewSubscriptionFolderShortcutInheriting()
需要一个 IManSubScriptionFolder
类型的对象,其中 FindRootSubscriptionFoldersNotSubscribedTo()
returns 一个 IManFolders
对象。
任何人都可以指出我需要做什么才能将用户“我的事项”的实例作为 IManSubscriptionFolder 对象获取吗?
可能我的回复对你来说有点晚了,但我希望它能帮助其他遇到同样问题的人。
回答您的问题,为了将其他用户“我的事项”的实例作为 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);
}
}
请注意,上面的代码仅供参考,并非生产代码。