限制CRM online 2015中的FetchXML查询结果

时间:2015-05-22 11:45:21

标签: dynamics-crm-2011 crm dynamics-crm-online fetchxml

我正在使用从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,但它会继续将带有记录的图像带到最旧的图像。我只希望它带来最新的图像并将其停在那里并移动到下一条记录。

如何将其限制为仅查询记录附带的最新图像?

2 个答案:

答案 0 :(得分:2)

不幸的是<link-entity>不允许这样做。

如果你想快速作弊这个限制,你可以做到这一点(我们在规格疯狂的时候一直这样做):

  1. annotation实体添加查询new_studentinformation(保持形式不变)
  2. new_studentinformation(Pre-Op,Sync,Retrieve和RetrieveMultiple)上注册一个插件,在该插件中,您可以使用对报表中所需记录的引用来填充新属性。我希望这需要15分钟的时间。
  3. 现在将from中的link-entity属性切换为新的
  4. BONUS:如果您的插件设计正确,自定义属性中的引用(以及您的报告)将自动更新。

答案 1 :(得分:0)

我为您的问题提供了一个简单的解决方案,这将节省您制作插件所需的时间和精力。

您应该创建一个javascript资源,在表单上添加一个隐藏字段。 在OnSave事件上运行该javascript。将文档正文存储在文本视图中。 只需在检索图像时查询文档正文文本区域即可。 这可能听起来像是黑客!但它会提高代码的效率。