限制 CRM online 2015 中 FetchXML 查询的结果
Limit the result from FetchXML query in CRM online 2015
我正在使用从 CRM ONLINE 获取数据并将其传输到 SQL 数据库以用于报告目的的服务。我正在使用以下 Fetch XML 查询来查询 CRM
string fetchXml = string.Format(@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='new_studentinformation' enableprefiltering ='1' prefilterparametername='CRM_Filterednew_studentinformation'>
<attribute name='new_studentid' />
<attribute name='new_primaryhomeroom' />
<attribute name='new_lastname' />
<attribute name='new_firstname' />
<attribute name='new_busnumber' />
<attribute name='new_schoolname' />
<attribute name='new_gradecode' />
<attribute name='modifiedon' />
<attribute name='new_studentinformationid' />
<filter type='and'>
<condition attribute='modifiedon' value='{0}' operator='on-or-after'/>
</filter>
<order attribute='modifiedon' descending='true' />
<link-entity name='annotation' from='objectid' to='new_studentinformationid' alias='Notes' link-type='outer'>
<attribute name='documentbody'/>
<filter type='and'>
<condition attribute='createdon' value='{0}' operator='on-or-after'/>
</filter>
<order attribute='createdon' descending='true' />
</link-entity>
</entity>
</fetch>"
Notes 实体中的每条记录都附加了不止一张图片,但是我只想传输最新的图片。我曾尝试在订单属性中使用 createdon
,但它一直将图像与记录一起带到最旧的图像。我只希望它带来最新的图像并停在那里并移动到下一条记录。
如何限制它只查询记录附带的最新图像?
很遗憾<link-entity>
不允许。
如果你想快速绕过这个限制,你可以这样做(当规格出现问题时我们总是这样做):
- 将对
annotation
的查找添加到您的 new_studentinformation
实体(使其脱离形式)
- 在
new_studentinformation
(Pre-Op,Sync,Retrieve 和 RetrieveMultiple)上注册一个插件,您可以在其中使用对报告中所需记录的引用填充新属性。我预计最多需要 15 分钟。
- 现在将
link-entity
中的 from
属性切换为新属性
奖励:如果您的插件设计正确,自定义属性中的引用(以及您的报告)将自动自动更新。
我有一个简单的解决方案可以解决您的问题,这将节省您制作插件所需的时间和精力。
您应该创建一个 javascript 资源,在您的表单上添加一个隐藏字段。
运行 在 OnSave 事件中 javascript。将该文档主体存储在文本视图中。
在检索图像时只需查询文档正文文本区域。
这可能听起来很骇人听闻!但它会提高代码的效率。
我正在使用从 CRM ONLINE 获取数据并将其传输到 SQL 数据库以用于报告目的的服务。我正在使用以下 Fetch XML 查询来查询 CRM
string fetchXml = string.Format(@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='new_studentinformation' enableprefiltering ='1' prefilterparametername='CRM_Filterednew_studentinformation'>
<attribute name='new_studentid' />
<attribute name='new_primaryhomeroom' />
<attribute name='new_lastname' />
<attribute name='new_firstname' />
<attribute name='new_busnumber' />
<attribute name='new_schoolname' />
<attribute name='new_gradecode' />
<attribute name='modifiedon' />
<attribute name='new_studentinformationid' />
<filter type='and'>
<condition attribute='modifiedon' value='{0}' operator='on-or-after'/>
</filter>
<order attribute='modifiedon' descending='true' />
<link-entity name='annotation' from='objectid' to='new_studentinformationid' alias='Notes' link-type='outer'>
<attribute name='documentbody'/>
<filter type='and'>
<condition attribute='createdon' value='{0}' operator='on-or-after'/>
</filter>
<order attribute='createdon' descending='true' />
</link-entity>
</entity>
</fetch>"
Notes 实体中的每条记录都附加了不止一张图片,但是我只想传输最新的图片。我曾尝试在订单属性中使用 createdon
,但它一直将图像与记录一起带到最旧的图像。我只希望它带来最新的图像并停在那里并移动到下一条记录。
如何限制它只查询记录附带的最新图像?
很遗憾<link-entity>
不允许。
如果你想快速绕过这个限制,你可以这样做(当规格出现问题时我们总是这样做):
- 将对
annotation
的查找添加到您的new_studentinformation
实体(使其脱离形式) - 在
new_studentinformation
(Pre-Op,Sync,Retrieve 和 RetrieveMultiple)上注册一个插件,您可以在其中使用对报告中所需记录的引用填充新属性。我预计最多需要 15 分钟。 - 现在将
link-entity
中的from
属性切换为新属性
奖励:如果您的插件设计正确,自定义属性中的引用(以及您的报告)将自动自动更新。
我有一个简单的解决方案可以解决您的问题,这将节省您制作插件所需的时间和精力。
您应该创建一个 javascript 资源,在您的表单上添加一个隐藏字段。 运行 在 OnSave 事件中 javascript。将该文档主体存储在文本视图中。 在检索图像时只需查询文档正文文本区域。 这可能听起来很骇人听闻!但它会提高代码的效率。