0

我有一个查询,通常用于从同一插件中的不同实体返回数据。在查询中,我选择使用 new ColumnSet(true) 返回所有列。

在大多数情况下,这没有任何问题,但我刚刚遇到一个实体,它未能带回许多字段。这些字段是使用单独的插件计算的,但这些值肯定似乎保存在记录本身上,因为它们在表单和视图中可见。但是,它们不会在查询中返回。

我尝试通过导入来创建自己的记录,我自己设置这些值,而不是通过插件。以这种方式完成后,确实可以找到这些值,但对于其他记录,它们仍然丢失。

我已经在下面复制了我的查询,以防有人发现它有问题。

//set up query for entity
                QueryExpression query;
                query = new QueryExpression();
                query.EntityName = entityName;
                query.ColumnSet = new ColumnSet(true);
                query.PageInfo.ReturnTotalRecordCount = true;

                //get the results                    
                EntityCollection SourceRecords = new EntityCollection();

                int pageNumber = 1;
                RetrieveMultipleRequest req;
                RetrieveMultipleResponse resp = new RetrieveMultipleResponse(); ;

                do
                {
                    query.PageInfo.Count = 5000;
                    query.PageInfo.PagingCookie = (pageNumber == 1) ? null : resp.EntityCollection.PagingCookie;
                    query.PageInfo.PageNumber = pageNumber++;

                    req = new RetrieveMultipleRequest();
                    req.Query = query;
                    resp = (RetrieveMultipleResponse)SourceOrgService.Execute(req);
                    SourceRecords.Entities.AddRange(resp.EntityCollection.Entities);
                }
                while (resp.EntityCollection.MoreRecords);
4

1 回答 1

0

查询本身看起来不错,因此您遇到了两个问题之一。

  1. 您的插件正在计算值,没有被触发,没有更新它计算的值,或者在当前执行的插件之后被触发(注册插件步骤时有一个“排名”值,它控制执行哪些步骤,这可能是您的问题。需要有关插件步骤及其注册方式的更多信息)。
  2. 您具有某种字段级别的安全性,其中执行插件的用户没有计算字段的权限。
于 2013-09-18T13:06:19.423 回答