使用查找在Outlook /兑换中查找用户属性

时间:2019-04-15 23:29:52

标签: outlook find outlook-redemption

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

我在创建的Outlook加载项中使用了类似的代码,并且工作正常。主要区别是filterprefix。 在AddIn中,我使用:

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 =新的RDOSession();

rdoSession.Logon(“”,“”,false,false,null,false);

RDOFolder文件夹RDO = rdoSession.GetDefaultFolder(rdoDefaultFolders.olFolderCalendar);

var filter1 = filterprefix +约会。Id+“'”;

string ls_find = Filterprefix +约会。Id+“'”;

var findItem = folderRDO.Items.Find(ls_find);

我尝试了几种语法变体,但似乎无法正确处理。 我还尝试过使用排序然后限制,但也没有运气。

谢谢,里克

1 个答案:

答案 0 :(得分:0)

RDOItems.Find使用一条SQL语句,请不要使用@SQL=前缀-它是OOM特定的。另外,请不要忘记在DASL属性名称中加上双引号:

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