メインコンテンツまでスキップ

Data & State Management(データ&ステート管理)

データ概念の全体像

備考

このウィジェットはFree プランではロックされており、Pro・Enterprise プランで使用できます。

Lucy StudioにおけるData Managementは、以下の概念が順につながる流れです。

  1. Data Provider - 外部サーバーとどう通信するかを定義
  2. Provider Instance - その定義を実際に呼び出すために名前を付けて作る実行単位
  3. Data Set - Provider Instanceの応答構造を複製して、メモリに保持しておくデータ
  4. Data Binding - ウィジェットのプロパティに接続する作業

Data Provider - 外部データ連携の定義

Data Providerは、外部API(またはリアルタイムソケット)接続を1つ、名前を付けて登録しておくものです。まだ「呼び出す」段階ではなく、どのアドレスに、どんな値を送り、どんな値を受け取るかをあらかじめ定義しておきます。

Data Providerの設定画面

Data Providerを作るときに決めること:

  • 名前/説明: 他の画面でこのProviderを探すときに使う名前
  • 連携方式: 通常のAPI呼び出しか、リアルタイムでデータが継続的に届くソケット方式か
  • リクエスト形式: サーバーに送る値(ヘッダー/クエリ/ボディにどの項目が入るか、各項目がテキスト/数値/真偽値/日付のどれか、リスト形式かどうか)
  • レスポンス形式: サーバーから返る値も同様に項目ごとに定義
ヒント

複数の項目を持つ複雑なレスポンスでも、Call / Response フィールドを定義しておけば、以後どの画面でもその構造をそのまま再利用できます。

Provider Instance - Providerを実際に使う

Data Providerは「定義」にすぎないため、画面で実際にデータをリクエストするには、そのProviderをもとにProvider Instanceを作っておきます。Provider Instanceは、Providerに実際に送る値(パラメータ)を入力して名前を付けた、「すぐに呼び出せる状態」の実行単位です。

Provider Instanceの設定画面

同じData Provider 1つから、パラメータだけを変えて複数のProvider Instanceを作ることもできます。例えば「銘柄気配値照会」というProviderを1つ用意し、銘柄コードだけを変えたProvider Instanceを複数作って、画面ごとに異なる銘柄を照会する、といった使い方です。

スクリプトからデータをリクエストする際は、ProviderではなくProvider Instanceの名前を使います。

// "stockInfo"という名前のProvider Instanceにデータをリクエスト
$vm.requestData("stockInfo");

リクエストへの応答を受け取ると、そのProvider Instanceに接続された変数・Data Set・ウィジェットが自動的に更新され、スクリプトを使ってData Setの値を読み書きできます。

Data Set - データセットの定義

Data Setは、特定のProvider Instanceの応答構造を複製(clone)して、受け取ったデータを画面(フォーム)が実行されている間メモリに保持できるようにする構造です。Provider Instance自体を参照するのではなく、作成した瞬間の応答構造を複製して独立して保持する点が特徴です。

Data Setの設定画面

Data Setを作るときに決めること:

  • 名前/説明
  • ベースとなるProvider Instance - このInstanceのリクエストまたはレスポンス構造を取り込んでData Setの型として使うには、まずこのProvider InstanceとData Setを接続する必要があります。接続しておくと、以後このProvider Instanceでデータをリクエストするたびに、その応答が自動的にこのData Setへ反映されます。
  • Data Fieldの構成 - Provider Instanceの構造を取り込むか、空のData Setから始めた後、実際に保持するフィールドを自由に追加・削除・変更できます。
ヒント

Data Setは「今この構造を基準に画面を作る」というスナップショットを取っておくものなので、その後元のProvider Instanceの応答構造が変わっても、Data Setが自動的に追従して変わることはありません。構造が変わった場合はData Setも合わせて調整する必要があります。

ウィジェットのプロパティを接続する(Binding)

Bindingは、ウィジェットのプロパティ1つの値をData Setや変数に接続しておく機能です。

ウィジェットを選択すると、プロパティパネルにProperty / Event / Bindingの3つのタブが表示され、この中のBindingタブを選ぶと、そのウィジェットでバインディング可能なプロパティが一覧で表示されます。

接続はドラッグ&ドロップで行います。**「Select Data Source and Variable」**ウィンドウで接続したいData Setのフィールドや変数を探し、一覧にあるプロパティの上にドラッグ&ドロップすれば接続完了です。

Bindingの設定画面

ヒント

接続した値はそのまま使う以外にも、コンバーター・桁数の丸め・正規表現・文字列の切り出し(Slice)/結合(Join)といった値の加工設定を追加で適用できます。