Revealが標準でサポートしていないデータソースに直接接続したい場合があるかもしれません。例えば、独自のカスタムデータベースを持っているかもしれません。このニーズに対応するため、データソースとしてインメモリをサポートしています。また、ユーザーが要求したレポートの結果など、すでにメモリ内にあるデータをアプリケーションの状態の一部として使用する必要がある場合にも、このオプションを使用したいかもしれません。
インメモリデータソースは、ディスクドライブ上よりもメモリ内でのデータアクセスがはるかに高速であるため、取得速度などの他の利点も提供します。
このブログでは、この機能の使用方法を順を追って説明します。
データスキーマの定義
インメモリデータに一致するスキーマを持つデータファイルを定義することをお勧めします。データファイルは、例えばCSVファイルやExcelファイルである可能性があり、スキーマとは基本的にフィールドのリストと、各フィールドのデータ型です。以下の例では、指定されたスキーマを持つデータファイルの作成方法、そしてデータベースから情報を取得する代わりにメモリ内のデータを使用する方法の詳細が記載されています。
次の例では、社内の従業員リストのインメモリデータを使用して、HRシステムにHRメトリクスを表示するダッシュボードを組み込みます。そして、データベースから従業員リストを取得する代わりに、メモリ内のデータを使用します。
データファイルとサンプルダッシュボードの準備
以下の手順は、いくつかのプロパティしか持たない簡素化されたEmployeeに基づいています。
- EmployeeID: string
- Fullname: string
- Wage: numeric
まず、同じスキーマを持つCSVファイルを作成します:

- ファイルをDropboxやGoogle Driveなどの任意のファイル共有システムにアップロードします。
- ダミーデータを使用してダッシュボードを作成します。注意点として、実際の本番データは後でアプリケーションに提供することになります。
- ダッシュボードをエクスポートします(ダッシュボードメニュー → エクスポート → ダッシュボード)し、.rdashファイルとして保存します。
ダッシュボードの可視化と実際のデータの返却
次に、ダミーデータではなく、独自のデータを使用してダッシュボードを可視化する必要があります。
Replacing Data Sourcesで説明されているように、IRVDataSourceProviderを実装し、それをIRevealSdkContextのDataSourceProviderプロパティとして返します。
次に、メソッド ChangeVisualizationDataSourceItemAsync の実装では、以下のようなコードを追加する必要があります:

これにより、ダッシュボード内のCSVファイルへのすべての参照を、識別子「employees」によって識別されるインメモリデータソースに置き換えることができます。この識別子は、データが返される際に使用されます。
実際のデータを返すメソッドを実装するには、以下に示すようにIRVDataProviderを実装する必要があります:

Employeeクラスのプロパティは、CSVファイルの列名と完全に同じ名前であり、データ型も同じであることに注意してください。プロパティのフィールド名、フィールドラベル、および/またはデータ型を変更したい場合は、クラス宣言で属性を使用できます:
- RVSchemaColumn属性を使用して、フィールド名および/またはデータ型を変更できます。
- DisplayName属性を使用して、フィールドラベルを変更できます

さらに、IRVDataProviderを実装するには、IRevealSdkContext.DataProviderの実装を修正し、それを返す必要があります:

Revealについてさらに詳しく知りたい場合、またはまだ試していない場合は、デモをリクエストしてください。
データの力を活用する
リアルタイムのコンテキストデータでビジネスを成長させましょう。
