【问题标题】:Using Find to find a user property in Outlook/Redemption使用 Find 在 Outlook/Redemption 中查找用户属性
【发布时间】:2019-12-14 20:40:25
【问题描述】:

我正在尝试从我们的 C# Windows 桌面应用程序从 Outlook 返回单个日历项。它不断返回此错误: Redemption.RDOItems 断言失败:字段数 == 1。

我在我创建的 Outlook 插件中使用了类似的代码,它工作正常。主要区别在于过滤器前缀。 在我使用的插件中:

string filterprefix = "[" +  OurCustomProperty.OurItemId + "] = '";  
var filter1 = filterprefix + parentItem.NeedlesId + "'";
var findItem = folder.Items.Find(filter1);

但此代码不适用于我们的桌面应用程序。

这是返回错误的桌面应用程序的代码:

约会.Id 包含我们在创建项目时设置的有效值。

string Filterprefix = "@SQL="+"http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/OurCustomProperty.OurItemId/0x0000001f = '";
RDOSession rdoSession = new RDOSession();
rdoSession.Logon("", "", false, false, null, false);

RDOFolder folderRDO = rdoSession.GetDefaultFolder(rdoDefaultFolders.olFolderCalendar);

var filter1 = filterprefix + appointment.Id + "'";
string ls_find = Filterprefix +  appointment.Id + "'" ;
var findItem = folderRDO.Items.Find(ls_find);

我尝试了几种语法变体,但似乎无法正确使用。 我也尝试使用 Sort 然后 Restrict 但也没有运气。

谢谢,瑞克

【问题讨论】:

    标签: outlook find outlook-redemption


    【解决方案1】:

    RDOItems.Find 接受 SQL 语句,请不要使用 @SQL= 前缀 - 它是 OOM 特定的。也不要忘记双引号 DASL 属性名称:

    "http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/OurCustomProperty.OurItemId/0x0000001f" = '<some value>'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多