Показать сообщение отдельно
Старый 06.07.2015, 21:13   #8  
vasya-serega is offline
vasya-serega
Участник
 
145 / 17 (1) ++
Регистрация: 12.05.2013
Адрес: Украина
Да, действительно, собака была зарыта именно там. Если коннекшн роль подходит только для указанной сущности, то внутри connectionroleobjecttypecode в нужной записи поле associatedobjecttypecode будет содержать имя сущности, а если для всех - то "none". Соответственно, указанный выше код достаточно переписать на
X++:
 Conditions = {
          new ConditionExpression("associatedobjecttypecode", ConditionOperator.In, new []{entityName, "none"})
          }
Когда переписывал запрос под fetchXml, столкнулся с неожиданностью, что вместо символьного имени сущности необходимо подставлять код. Н-р:
X++:
<fetch distinct="true" mapping="logical" output-format="xml-platform" version="1.0">
 <entity name="connectionrole">
  <attribute name="category"/>
  <attribute name="name"/>
  <attribute name="connectionroleid"/>
    <order descending="false" attribute="category"/>
     <link-entity name="connectionrole" to="connectionroleid" from="connectionroleid">
     <link-entity name="connectionroleobjecttypecode" to="connectionroleid" from="connectionroleid" alias="ab">
      <filter type="and">
       <condition attribute="associatedobjecttypecode" operator="in">
        <value>0</value>   <!--  none  0 -->
        <value>1</value>   <!--  account   -->
       </condition>
     </filter>
   </link-entity>
  </link-entity>
 </entity>
</fetch>
Если кто подскажет, почему так, буду благодарен.