特集「ヨモヤマビルド」

Entity名とテーブルの物理名

みなさんこんにちは、OutSystems Platformチームの鈴木です。
今回は、Entity名とテーブルの物理名のマッピング情報についての小ネタです。

 

ServiceStudioでEntityを作ってパブリッシュすると、当然DBMS上にテーブルが作成されます。
OutSystems Platformの世界だけでEntityにアクセスする限りはEntity名でのアクセスとなりテーブルの物理名を意識する必要はありません。
でも、場合によっては他の処理系からEntityのテーブルにアクセスしたい時もありますよね。
で、当然最初はEntity名=テーブルの物理名ってな感じでテーブルを探すのですが、なかなか見つからなかったりします。
くじけず時間をかけて探すと、HogeHogeという名のEntityが「OSUSER_xxx_HogeHog」という感じの物理名で見つかります。(xxxはeSpace毎にユニークっぽい3文字)
これだと、辛いな~ってちょっと思ったりしまよね。
そんな時は、OSADMIN.OSSYS_ENTITYテーブルを見てみてください。
OSADMIN.OSSYS_ENTITYテーブルはEntityの情報を管理するテーブルで、NAME列がEntity名でPHYSICAL_TABLE_NAME列がテーブルの物理名になってます。
ちなみに、列名についてはEntityのAttribute名のままです。
Advanced Queryに書いたSQLの中のEntitiy名は、きっと実行時にパースされてOSADMIN.OSSYS_ENTITYを使ってテーブルの物理名に変換されているのですね。
(OSADMIN.OSSYS_ENTITYテーブルは内部テーブルなのでバージョンアップ等で変わる可能性はあります。あくまで参考という事で)