足立区在住SEのブログ

足立区在住のSE、中小企業診断士のブログです。機械学習、自然言語処理など。

OutSystemsでのDB操作

OutsystemsではEntityを定義すると、OutSystemsが物理DBに直接変更を加え
OutsystemsのEntity定義と同期する物理テーブルを作成、変更します。
そのため、開発者がDBを操作しなくても簡単にテーブルやカラムの追加を行うことができます。


通常であれば、
DDLを書いてDBに変更を加え→アプリケーションのDB操作処理を修正(Entityに対応するDAOの修正など)

とするところを、ServiceStudio上でEntityに項目を追加するだけでよい。
よくDBの変更時に、アプリとDBの同期が取れずにエラーとなることがあるが
OutSystemsが整合性を保ってくれるので、システム稼働中でも安心してカラムの追加ができます。

DBの定義が固まりきらないまま開発に着手しても
必要に応じて簡単にDBを変更できるので、アジャイルのような進め方では
大きく生産性が上がると思います。
今回、私がやっている開発もまさにそうでした。


OutsystemsがDBを直接変更することのデメリットとしては
・物理テーブル名を自分で操作できないので、外部システムからの参照が困難。
・Entityの項目を変更、削除した場合に、物理DBにはもとのカラムが残ってしまう。
直接DBを参照したときに不要なカラムがあってわかりにくい。

といったことが生じています。
実際に、開発、運用するにあたっては、DBを直で参照する必要もあるので
その点は少し不便も感じています。
が、ビューを作るなどの回避策もあるので大きな問題にはなっていません。
アプリとDBが自動で同期されるのは、とても良いと思います。