限制 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>不允许。

如果你想快速绕过这个限制,你可以这样做(当规格出现问题时我们总是这样做):

  1. 将对 annotation 的查找添加到您的 new_studentinformation 实体(使其脱离形式)
  2. new_studentinformation(Pre-Op,Sync,Retrieve 和 RetrieveMultiple)上注册一个插件,您可以在其中使用对报告中所需记录的引用填充新属性。我预计最多需要 15 分钟。
  3. 现在将 link-entity 中的 from 属性切换为新属性

奖励:如果您的插件设计正确,自定义属性中的引用(以及您的报告)将自动自动更新。

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

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