0
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】複数エンティティの情報を取得する

Posted at

概要

この記事では、複数エンティティの情報を取得する方法を紹介します。
ついこの前まで、エンティティとレコードの関係がいまいち分からず苦戦したので、使い方を整理しました。

エンティティとは

OutSystemsでデータを格納できるテーブルのこと。

通常のシステム開発では、データを保管する場合、データベースとその中のテーブル作成が必要になる。
OutSystemsでは、エンティティという格納場所を作成することでデータの保存が可能になる。
「Service Studioから操作できるDBのテーブル」と考えれば分かりやすい。

下記画像は、エンティティを作成しデータを登録したもの。
77764c6c91a88425483765d3ada03281.png

単一エンティティのデータを取得する

単一のエンティティであれば、素直にアグリゲートを使用してデータを取得できる。
7c0bb1a9ed96d436e900b4c15ce1eb66.png

アグリゲート以降のフローで、Bookエンティティの取得結果(GetBooks.List)を操作できる。

アグリゲートを使用し、Recordの形でデータを取得する

複数エンティティのデータを取得する際の標準的な取得の方法。
アグリゲートの中で複数エンティティをデータソースとすることで、複数エンティティの情報を取得できる。
d64ef54bbd620181804dfd8136aae145.png
なお、取得したデータ型は「Book, BookDetail Record List」となる。

レコードのリスト...となるとややイメージしにくいので、少し解説。
「Book, BookDetail Record List」は「Book, BookDetail Record」のリスト
「Book, BookDetail Record」は、「Book型とBookDetail型を持つレコード」の意味

図にすると以下のイメージ
4ff3614596ccb84a5ca9fa7f36240f85.png

SQLを使用し、Recordの形でデータを取得する

複数エンティティのデータをSQLで取得する方法。
エンティティをテーブルとみなし、エンティティ名に{}を付けて記載する。
{エンティティ}.*と記載することで、エンティティの項目をすべて指定できる。

sql.png
この場合も、取得したデータ型は「Book, BookDetail Record List」となる。

SQLを使用し、ストラクチャの形でデータを取得する

同じく、複数エンティティのデータをSQLで取得する方法。
ただし、取得データを任意のストラクチャとする。

SQLの「Output Entities/Structure」に取得したいデータのストラクチャを指定する。
また、SELECTの項目とストラクチャの項目をしっかり合わせる必要がある。
b504a49c689f94a81d59394ac464184d.png
取得データ型は、「BookAndBookDetail List」となる。
ユーザ向けの画面項目や、外部インターフェース向けの、必要な項目が決っている場合に便利。

ただ、「ストラクチャに項目を追加した場合、SQLの修正(SELECT項目の追加)が必要になる」という保守的な欠点があります。

参考:

データベースからデータを取り出して表示する
SQLクエリ

0
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
0
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?