2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Outsystems】DataActionとAggregateの違い

Posted at

初めに

画面に情報を表示するために、基本的にはAggregateとDataActionを使っている。
自分のメモのために使い分けの基準をメモしておこうと思う。

環境

Service Studio Version 11.54.37
Reactive Web

DataActionとAggregateの違い

Aggregateはテーブルの機能の実装がしやすい

AggregateやDataActionをそのままScreenに配置すればTableが簡単に実装できるのは両方同じであるが、
Aggregateはそのままページネーションやソート機能が実装される。

DataActionはEntity以外のリソースにアクセスできる

AggregateはEntityからのみ情報を取得する。DataActionはServerActionから情報するためその他のリソースから情報を取得することができる。

SitePropertyの値を取得する

SitePropertyで設定されている値を取得するのに使うことができる。画面に表示する環境名を取得するのによく使っている。

外部APIの値を取得する

他システムから画面表示のために都度情報を取得する必要がある場合は、DataActionにて外部API経由で値を取得する。

DataActionは処理を実装することができる

AggregateやServerActionで取得した値を編集することができる。独自の集計処理や、データの整形処理を実行することができる。

DataActionは情報を隠匿できる

DataActionはAggregateで取得した値であっても、画面で利用しない値に関しては返却しない。

  • 隠匿したい情報が露出しにくい
  • データの通信料が削減できる

といったメリットがある。
Aggregateについても公式ドキュメントに利用しない値は返却しない旨があったと思ったのですが、Chromeの開発者ツールで確認したところDataActionは隠匿され、Aggregateでは隠匿されない結果となった。

さいごに

データの隠匿については双方変わりのないものと思っていたので意外だった。
またAggregateでTableを作成したときに自動でページネーションやソートが実装されるのはよいが、それが必要かどうかはきちんと考えて機能を削除するか残すかは考えないといけない認識をあらたにした。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?