Как фильтровать, используя fetch, чтобы получить точные результаты? - PullRequest
0 голосов
/ 14 мая 2018

Мне нужно получить все учетные записи с телефонными вызовами в state , а не open, поэтому я создал запрос при получении и получил некоторые результаты.

После проверки моих результатов я обнаружил, что у меня есть все учетные записи, которые имеют как минимум 1 телефонный звонок, который не был открыт, но мне нужно получить учетные записи, которые все их подключенных телефонных звонков не открыты (не могу есть даже 1 в открытом состоянии) можно ли сделать выборку?

** под НЕ ОТКРЫТО Я имею в виду состояние Отменено или Завершено.

Вот мой запрос на выборку:

@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>
  <entity name='account'>
    <attribute name='name' />                                        
    <order attribute='accountamount' descending='true' />
    <link-entity name='phonecall' from='regardingobjectid' to='accountid' alias='ab'>
      <filter type='and'>
        <condition attribute='statecode' operator='ne' value='0' />
      </filter>
    </link-entity>
  </entity>
</fetch>";

1 Ответ

0 голосов
/ 14 мая 2018

То, что вы ищете, - это запрос Unmatch. Это может быть достигнуто в 2 запросах с использованием fetchxml.

Первый запрос : Вы должны удалить все учетные записи с открытыми телефонными звонками.

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" >
  <entity name="account" >
    <attribute name="accountid" />
    <order attribute="accountamount" descending="true" />
    <link-entity name="phonecall" from="regardingobjectid" to="accountid" alias="ab" >
      <filter type="and" >
        <condition attribute="statecode" operator="eq" value="0" />
      </filter>
    </link-entity>
  </entity>
</fetch>

Второй запрос : Выполните итерацию и передайте первый запрос Account Account как <value>, как показано ниже, чтобы отфильтровать их.

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" >
  <entity name="account" >
    <attribute name="name" />
    <attribute name="primarycontactid" />
    <attribute name="telephone1" />
    <attribute name="accountid" />
    <order attribute="name" descending="false" />
    <filter type="and" >
      <condition attribute="accountid" operator="not-in" >
        <value><GUID of ACCOUNT1 with OPEN PHONECALL></value>
        <value><GUID of ACCOUNT2 with OPEN PHONECALL></value>
        <value><GUID of ACCOUNT3 with OPEN PHONECALL></value>
      </condition>
    </filter>
  </entity>
</fetch>

Прочитать за идею

...