0

同じプラグイン内のさまざまなエンティティからデータを返すために一般的に使用されるクエリがあります。クエリでは、new ColumnSet(true) を使用してすべての列を返すことを選択しました。

ほとんどの場合、これは問題なく機能しますが、いくつかのフィールドを元に戻すことができないエンティティが 1 つあります。これらのフィールドは別のプラグインを使用して計算されますが、値はフォームとビューに表示されるため、レコード自体に保持されているように見えます。ただし、クエリでは返されません。

私はロングショットとして、プラグインではなく自分で値を設定するインポートを介して独自のレコードを作成しようとしました。これらの値は、この方法で実行すると見つかりますが、他のレコードについてはまだ欠落しています。

誰かが何か問題を見つけた場合に備えて、以下にクエリをコピーしました。

//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

クエリ自体は問題ないように見えるので、2 つの問題のいずれかに遭遇しています。

  1. 値を計算しているプラ​​グイン、トリガーされていないプラグイン、計算された値を更新していないプラグイン、または現在実行中のプラグインの後にトリガーされているプラ​​グイン (プラグインステップを登録するときに「ランク」値があり、その順序を制御します)どのステップが実行されるか、それがあなたの問題である可能性があります.プラグインのステップとそれらがどのように登録されているかについての詳細情報が必要です.
  2. プラグインを実行しているユーザーが計算フィールドに対する権限を持たない、ある種のフィールドレベルのセキュリティがあります。
于 2013-09-18T13:06:19.423 に答える