Reporting Foundation を使用する

概要

Reporting クライアントの使用方法について説明します

前述の手順でインストールを実行すると、Reporting クライアントの使用準備が整います。

Reporting クライアントは Sitecore IoC Container に登録されており、Sitecore DI を使用している場合、IReportingClient をサービスに依存関係として追加できます。

または、ServiceLocator Sitecore.DependencyInjection を介して解決します。


Sitecore.DependencyInjection.ServiceLocator.ServiceProvider.GetService<IReportingClient>();

データをクエリーするには、メソッド GetFactAsync&lt;TFact&gt;(Action&lt;IFactQueryOptionsBuilder&gt;TFact&gt;&gt; ビルダー) を使用できます。このメソッドは、クエリーを構築する代理を受け入れます。以下の例を参照してください。

await _reportingClient.GetFactAsync<ProductSales>(cfg =>
            {
                cfg.UseConnectionStringName("MyConnectionStringName")
                    .QueryFrom(DateTime.Now.AddYears(-1))
                    .To(DateTime.Now)
                    .ExpandDimension(o => o.Country)
                    .FilterWithKey("MY")
                    .ExpandDimension(o => o.Product);
            });

備考:

  • Reporting クライアントのメソッドは非同期です。

  • クエリー ビルダーは、クエリーを構築する代理のパラメーターを受け入れます。

  • データのクエリー先 (つまり、SQL オブジェクトがあるデータベース) の接続文字列の名前 (Reporting など) を渡す必要があります。

  • QueryFrom…To は、ファクト オブジェクトの DateTime フィールドに基づいてデータをフィルタリングします。

  • ExpandDimension では、結果にディメンションが含まれます。

  • FilterWithKey は、ディメンションの DimensionKey に基づいて結果をフィルタリングします。

注記

クエリーには、少なくとも 1 つのフィルター (ディメンションまたは日時) と接続文字列の名前が含まれている必要があります。含まれていない場合は、ValidationException がスローされます。

ファクトのクエリーと同様に、ファクトの削除にも同じフィルターがあります。以下の例を参照してください。

await _reportingClient.DeleteFactsAsync<ProductSales>(cfg =>
            {
                cfg.UseConnectionStringName("MyConnectionStringName")
                    .DeleteFrom(DateTime.Now.AddYears(-1))
                    .To(DateTime.Now)
                    .DeleteThatHasDimension(o => o.Country)
                    .WithKey("MY");
            });

備考

  • ビルダーでは同じフィルターが (異なる名前で) 使用されます。

  • クエリーの削除ビルダーには、少なくとも 1 つのフィルターと接続文字列も含める必要があります。

データを追加または更新するには、メソッド AddOrUpdate async を使用し、データのリストとともに接続文字列の名前を渡します。以下の例を確認してく ださい。


await _reportingClient.AddOrUpdateAsync(_connectionStringName, data)