这有可能在fetchxml中制作投射场吗?

时间:2018-02-01 21:25:23

标签: dynamics-crm fetchxml

是否可以在fetchxml中将标识符转换为字符串? 我有这个问题:

select *
from table1 t1 left outer join table2 t2
on t1.stringId=CAST( t2.id as varchar(40))
where t2.id is null and t1.childid is not null

此行t1.stringId=CAST( t2.id as varchar(40)) 不能在fetchxml中制作字段" stringId"是字符串,但它的值是GUID 我希望有这种平等。

在fetchxml中:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" >
  <entity name="table1 " >
    <attribute name="stringid" />
    <attribute name="te_name" />
    <link-entity name="table1" from="id" to="stringid" link-type="outer" alias="s" />
    <filter type="and" >
      <condition entityname="s" attribute="stringid" operator="null" />
    </filter>
  </entity>
</fetch>

2 个答案:

答案 0 :(得分:4)

我不知道我是否遗漏了某些内容,但在加入类型时,Dynamics CRM / 365非常宽容。 很可能将字符串字段连接到guid字段。 请参阅此示例,其中我在联系人的传真属性中放置了帐户的guid:

<fetch version='1.0' output-format='xml-platform' mapping='logical' >
  <entity name='contact' >
    <attribute name='fullname' />
    <attribute name='fax' />
    <attribute name='parentcustomerid' />
    <filter type='and' >
      <condition attribute='statecode' operator='eq' value='0' />
    </filter>
    <attribute name='contactid' />
    <link-entity name='account' from='accountid' to='fax' link-type='outer' >
      <attribute name='name' />
    </link-entity>
  </entity>
</fetch>

所以是的,你是正确的,无法进行投射,但你的例子中的查询仍然可以很好地执行,我猜这是所有目标。

答案 1 :(得分:1)

fetchxml中无法进行强制转换。 (我无法马上测试。)

链接实体加入关键GUID(主要和外键)上的2个实体,最好创建关系以维护数据库设计&amp;查询它们。

有趣的是,MSDN在模式中将Id称为字符串:

<!--

link-entity element - used for joining one entity to its "parent"

-->
  <!-- [XDR-XSD] "link-entity" element  -->
  <xs:complexType name="FetchLinkEntityType">
    <xs:choice minOccurs="0"
               maxOccurs="unbounded">
      <!-- -->
      <xs:element ref="all-attributes"
                  minOccurs="0" />
      <xs:element name="attribute"
                  type="FetchAttributeType"
                  minOccurs="0"
                  maxOccurs="unbounded" />
      <xs:element name="order"
                  type="FetchOrderType"
                  minOccurs="0"
                  maxOccurs="1" />
      <xs:element ref="filter"
                  minOccurs="0" />
      <xs:element name="link-entity"
                  type="FetchLinkEntityType" />
    </xs:choice>
    <!-- -->
    <xs:attribute name="name"
                  use="required"
                  type="xs:string"></xs:attribute>
    <xs:attribute name="to"
                  type="xs:string"></xs:attribute>
    <xs:attribute name="from"
                  type="xs:string"></xs:attribute>
    <xs:attribute name="alias"
                  type="xs:string"></xs:attribute>
    <xs:attribute name="link-type"
                  type="xs:string"></xs:attribute>
    <xs:attribute name="visible"
                  type="xs:boolean"></xs:attribute>
    <xs:attribute name="intersect"
                  type="xs:boolean"></xs:attribute>
  </xs:complexType>

更新

本地,fetchxml使用guid键加入(例如来自高级查找)。但似乎我们可以用任何字段覆盖fromto。它今天起作用,可能没有文档,因此不支持。