我正在使用从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
,但它会继续将带有记录的图像带到最旧的图像。我只希望它带来最新的图像并将其停在那里并移动到下一条记录。
如何将其限制为仅查询记录附带的最新图像?
答案 0 :(得分:2)
不幸的是<link-entity>
不允许这样做。
如果你想快速作弊这个限制,你可以做到这一点(我们在规格疯狂的时候一直这样做):
annotation
实体添加查询new_studentinformation
(保持形式不变)new_studentinformation
(Pre-Op,Sync,Retrieve和RetrieveMultiple)上注册一个插件,在该插件中,您可以使用对报表中所需记录的引用来填充新属性。我希望这需要15分钟的时间。from
中的link-entity
属性切换为新的BONUS:如果您的插件设计正确,自定义属性中的引用(以及您的报告)将自动更新。
答案 1 :(得分:0)
我为您的问题提供了一个简单的解决方案,这将节省您制作插件所需的时间和精力。
您应该创建一个javascript资源,在表单上添加一个隐藏字段。 在OnSave事件上运行该javascript。将文档正文存储在文本视图中。 只需在检索图像时查询文档正文文本区域即可。 这可能听起来像是黑客!但它会提高代码的效率。