Запрос FetchXML для возврата всех записей, принадлежащих подчиненным текущего пользователя - PullRequest
0 голосов
/ 11 октября 2019

У меня есть организация, которая использует иерархию управления для организации сотрудников (пользователей). Они хотели бы мнение для менеджеров. Это представление должно возвращать все открытые возможности, принадлежащие пользователям, которыми управляет текущий пользователь, ИЛИ управлять кем-то, кто управляется текущим пользователем, ИЛИ управлять кем-то, кто управляется кем-то, кто управляется текущим пользователем. Эти 3 уровня - это все, что нам нужно.

Я уже разработал запрос FetchXML, который возвращает все проекты, принадлежащие пользователям, которыми управляет текущий пользователь.

  <entity name="opportunity">
    <attribute name="name" />
    <attribute name="estimatedvalue" />
    <attribute name="statuscode" />
    <attribute name="parentcontactid" />
    <attribute name="parentaccountid" />
    <attribute name="opportunityid" />
    <order attribute="name" descending="false" />
    <filter type="and">
      <condition attribute="statecode" operator="eq" value="0" />
    </filter>
    <link-entity name="systemuser" from="systemuserid" to="owninguser" link-type="inner" alias="ad">
      <filter type="and">
        <condition attribute="parentsystemuserid" operator="eq-userid" />
      </filter>
    </link-entity>
  </entity>
</fetch>

Ниже приведеноальтернатива, которая также не работает. Это возвращает все Возможности, которые принадлежат кому-то, которым управляет текущий пользователь, который управляет им самостоятельно.

  <entity name="opportunity">
    <attribute name="name" />
    <attribute name="estimatedvalue" />
    <attribute name="statuscode" />
    <attribute name="parentcontactid" />
    <attribute name="parentaccountid" />
    <attribute name="opportunityid" />
    <order attribute="name" descending="false" />
    <filter type="and">
      <condition attribute="statecode" operator="eq" value="0" />
    </filter>
    <link-entity name="systemuser" from="systemuserid" to="owninguser" link-type="inner" alias="aa">
      <filter type="and">
        <condition attribute="parentsystemuserid" operator="eq-userid" />
      </filter>
      <link-entity name="systemuser" from="systemuserid" to="parentsystemuserid" link-type="inner" alias="ab">
        <filter type="and">
          <condition attribute="parentsystemuserid" operator="eq-userid" />
        </filter>
        <link-entity name="systemuser" from="systemuserid" to="parentsystemuserid" link-type="inner" alias="ac">
          <filter type="and">
            <condition attribute="parentsystemuserid" operator="eq-userid" />
          </filter>
        </link-entity>
      </link-entity>
    </link-entity>
  </entity>
</fetch>

1 Ответ

1 голос
/ 11 октября 2019

Вас могут заинтересовать следующие операторы-владельцы:

  • eq-useroruserhierarchy
  • eq-useroruserhierarchyandteams
  • eq-useroruserteams
  • eq-userteams

Из вашего описания вы можете захотеть eq-useroruserhierarchy

Вы используете его так:

<fetch top="50" >
  <entity name="opportunity" >
    <all-attributes/>
    <filter>
      <condition attribute="ownerid" operator="eq-useroruserhierarchy" />
    </filter>
  </entity>
</fetch>
...