Skip to main content

 

 

 

 
Language:
 
Service Studioバージョン :
 
 
OutSystems

Aggregate

最適化されたクエリを使用してデータを取得します。Aggregateはローカルデータベースのサーバーからデータを読み込むことができ、複数のエンティティの組み合わせや高度なフィルタリングをサポートします。

クライアント側のAggregate

クライアント側のAggregateは、クライアントロジックで実行されます。画面やブロックの読み込み時に、ウィジェットのデータを取得するときに使用します。以下の手順を実行します。

  1. 画面またはブロックを右クリックし、[Fetch data from Database]を選択します。空のAggregateが開き、エンティティを追加する必要があることがService Studioに表示されます。

    新しいAggregateの作成

  2. Aggregateを開いたまま、[Data]タブのEntities > Databaseに移動します。

  3. いずれかのエンティティを[Aggregate]ウィンドウにドラッグします。エンティティのアトリビュートに対応する列がAggregateに追加されます。また、名前も変更されます。MyEntityというエンティティの場合、AggregateはGetMyEntityという名前になります。

    データベースから取得されたAggregateの列

  4. 画面またはブロックに戻り、データを使用するように要素を設定します。たとえば、Listウィジェットの場合、ListウィジェットのSourceを「GetMyEntity.List」に設定します。Aggregateをダブルクリックして、エンティティの追加、データの結合、フィルタの作成をいつでも行うことができます。

サーバー側のAggregate

サーバー側のロジックで実行されるAggregateは、ロジックフローに含まれます。サーバーロジックにAggregateを追加するには、ツールボックスからAggregateをアクションのフローにドラッグします。

サーバー側のAggregate

クライアント側のロジックですべてのレコードを取得する

ドロップダウンリストへの読み込みのときなど、データベースから常にすべてのレコードを取得する必要がある場合があります。これを行うには、以下の2つの方法があります。

  • 画面のAggregateを使用し、Max. Recordsを期待される最大レコード数より高く設定します。ただし、データが多いとユーザーインターフェイスが低速になり、アプリの応答が悪くなる場合があります。
  • 画面のAggregateではなくデータアクションを使用し、[Max. Records]フィールドを空にします。データアクションではMax. Recordsの値はオプションです。値を指定しなかった場合、データアクションによってすべてのレコードがデータベースから取得されます。

従来のWebアプリ

従来のWebアプリでは、Aggregateはサーバー上で実行されるため、サーバー側のAggregateのみを追加できます。

従来のWebアプリで画面の読み込み時にデータを読み込むには、Preparationアクション(画面を右クリックして[Add Preparation]を選択)内にAggregateを配置します。Preparationがあるのは、従来のWebアプリのみです。

従来のWebアプリのPreparation

プロパティ

名前 説明 必須 デフォルト値 備考
Name 画面、アクション、モジュールといった、定義されているスコープ内の要素を識別します。 Yes
Description 要素を文書化するテキスト。 文書化の際に便利です。
このプロパティの最大サイズは2,000文字です。
Timeout Communication Exceptionをトリガーする前にAggregateがデータを返すまで待機する最大時間(秒単位)。モジュールで定義されているデフォルトのタイムアウトを上書きします。 このプロパティに値が指定されていない場合、タイムアウトはPlatform Serverの構成ツールで指定されたDefault query timeoutパラメータになります。
プロパティはクライアントアクションでは使用できません。
Cache in Minutes 内容や結果がメモリに保存される最大時間。定義されていない場合、何もキャッシュされません。 プロパティはクライアントアクションでは使用できません。
Max. Records データベースから読み出されたレコードの最大数。 従来のWebアプリの場合のみ。未定義の場合のデフォルト値:
– ウィジェット: : StartIndex + LineCount + 1;
– Excelにエクスポート: 無制限。
Start Index 繰り返しの最初のリストアイテムのインデックス。Expressionにすることができます。 このプロパティで使用されるExpression(存在する場合)は、Web画面のPreparationの前に評価されます。
Fetch Yes At start
イベント
On After Fetch Aggregateがデータソースからデータを取得した後に実行されるアクション。

ランタイムプロパティ

名前 説明 読み取り専用 備考
List 実行したクエリが返すレコードの集合。 Record List
カウント Countクエリが返すレコード数。 Long Integer
IsDataFetched データがデータベースから取得され、使用可能状態にある場合はTrue。 Yes Boolean
HasFetchError サーバーエラーまたは通信タイムアウトのためにデータ取得中にエラーが発生した場合はTrue。 Yes Boolean
  • Was this article helpful?