EWS合同通过XML搜索

时间:2017-10-03 10:36:17

标签: xml soap exchangewebservices

我想通过存在BusinessPhone或MobilePhone的EWS(在PhoneNumbers下)撤回联系人 - 请参阅示例联系信息

<Contact>
    <ItemId Id="XX2ASDFR"/>
    <PhoneNumbers>
        <Entry Key="MobilePhone">(02)9999-8888</Entry>
    </PhoneNumbers>
    <Surname>Test</Surname>
</Contact>

我的搜索标准存在以下

<Restriction>
<t:Or>
<t:Exists>
  <t:FieldURI FieldURI="contacts:PhoneNumbers" FieldURI="BusinessPhone" />
</t:Exists>
<t:Exists>
  <t:FieldURI FieldURI="contacts:PhoneNumbers" FieldURI="MobilePhone" />
</t:Exists>
</t:Or>
</Restriction>

如何搜索嵌套字段?

2 个答案:

答案 0 :(得分:0)

您需要使用Extended属性而不是Strongly Typed版本,例如对于BusinessPhone使用PidTagBusinessTelephoneNumber https://msdn.microsoft.com/en-us/library/cc839937(v=office.12).aspx,例如

       <m:Restriction>
      <t:IsEqualTo>
        <t:ExtendedFieldURI PropertyTag="14856" PropertyType="String" />
        <t:FieldURIOrConstant>
          <t:Constant Value="332332232" />
        </t:FieldURIOrConstant>
      </t:IsEqualTo>
    </m:Restriction>

答案 1 :(得分:0)

我想通了

<Restriction>
<t:Or>
    <t:Exists>
        <t:IndexedFieldURI FieldURI="contacts:PhoneNumber" FieldIndex="BusinessPhone" />
    </t:Exists>
    <t:Exists>
        <t:IndexedFieldURI FieldURI="contacts:PhoneNumber" FieldIndex="MobilePhone" />
    </t:Exists>
</t:Or>
</Restriction>