はじめに
OutSystemsでは主要なDBMSとの連携をサポートしていますが、「サポート外のDBMSは使用できないのか」との質問を多くいただいております。本稿ではOutSystemsによる株式会社ティーマックスソフト社の製品Tiberoを通してOutSystemsがサポートしていないDBMS(以下、外部DB)のデータ操作方法を解説し、外部DBでもOutSystemsの利用が可能であることをご説明いたします。
Tiberoとは
株式会社ティーマックスソフトのTiberoは、Oracleに互換したDBMS製品で、リホストマイグレーション後のDBMSとしても利用される製品です。
Oracleとは互換しているものの、OutSystemsではサポート対象外のDBMSとなるため、外部DBの扱いとなります。
Tiberoについての詳細は以下URLにてご確認ください。
外部DBMSを操作するためには
OutSystemsで外部DBを操作するためには、Extensionを作成する必要があります。Extensionとは、拡張コードと呼ばれるもので、Integration Studioで定義されたActionのことを言います。そのActionを使用することでOutSystemsの機能を拡充することができ、外部DBや外部システムとの連携できるようになります。
Extensionは、C#のコードで実装され、作成に必要なソフトウェアは、Microsoft社のVisual Studio 2017です。Visual Studio 2017はMicrosoft社のサイトより入手可能です。
参考URL:https://visualstudio.microsoft.com/ja/vs/older-downloads/
※2022年7月時点
サーバ及びソフトウェア構成
サーバ、ソフトウェアの構成および配置を確認します。
APサーバ:OutSystems本体および実行モジュールを配置。
DBサーバ:TiberoおよびTiberoへ接続するためにODBC/JDBCを配置。
開発用PC:OutSystemsのService Studio、Integration Studio、MS Visual Studioを配置。
構成イメージは以下となります。
TiberoDBMSのデータ取得プログラムを作成する
処理仕様
作成するプログラムは、TiberoDBにある社員データ(ファイル名:Oivp)のKey項目を指定し、1件取得する仕様です。Inputは「Key」、Outputは「Oivp」(Key値で取得したデータ)「Result」(処理結果)になります。処理イメージは以下となります。
処理仕様イメージ
作成手順
1.Extensionを定義する
最初にIntegration Studio でExtensionを定義します。Extensionの定義を行うことで、OutSystemsが自動でC#のコーディングに必要となる宣言文などのメソッドを生成し、プログラマの実装作業が軽減されます。以下がIntegration StudioのExtension定義とStructure定義の画面になります。
Structureとは、データ構造体のことで、レコードまたはリスト形式でデータを格納することができるものです。プログラム間でのデータの受け渡しに使用します。今回の例ですと、ExtensionのOutputとしての社員データを格納するために定義します。
Integration StudioでのExtension定義画面
Integration StudioでのStructure定義画面
2.Extensionを作成する
Tiberoのデータ操作を行うためのコードを記述します。前述の通り、OutSystemsが自動でコードを生成してくれるので、それを修正します。手を加える内容は以下5点です。
-
-
-
- dllの参照を追加
- ODBC接続文字列を定義
- データ操作のSQLを記述
- データ操作後の処理
- 例外処理
-
-
ソースコード例と手を加える場所を例示します。
ソースコード
ここまで完了したらビルドを実行し、Integration StudioでPublishを行い、作成したExtensionをService Studioで利用可能な状態にします。
Integration StudioのPublishボタン
3.Extensionを実装する
作成したExtensionを実装できるよう、Management Dependencies 画面で設定します。同画面にてExtensionを選択し、右ペインに表示されるActionを選択します。選択できたらApplyボタンを押します。作成したExtensionの実装が可能になりました。
Manage Dependencies画面
Logicタブを選択し、Extensionを実装するServer Actionを展開します。作成したExtensionのActionを選択しドラッグ&ドロップで実装します。
Service StudioのLogicタブ画面
実装が完了したらPublish、ブラウザで実行・確認を行ってみます。
実行した結果が以下の画面となります。tbsql(Tiberoにバンドルされるデータ操作ツール。Oracleのsqlplusに相当するもの)でデータを取得した結果と照合すれば、OutSystemsでTiberoDBのデータを扱えることが確認できます。
ブラウザでの実行結果
TiberoのツールによりデータをSQLで取得した結果
最後に
いかがでしたでしょうか。この記事でOutSystemsでのサポート外DBMSが取り扱えることがお判りいただけたかと思います。マイグレーションを行い、オープン化されたDBMSの更なる活用方法として、OutSystemsでWebアプリケーション化することもできるようになります。レガシーシステムをWeb化したいと考えている会社様がいらっしゃいましたら是非弊社へご相談いただければと思います。
執筆者プロフィール
-
入社して30年超、わからないことが多く、日々勉強の毎日。
プライベートでは学生時代にはまっていたバンドをまた始めたいと思っている。
この執筆者の最新記事
- ローコード開発2023.12.15OutSystemsでPush通知を実装してみた
- ローコード開発2022.09.05OutSystemsを使って外部DBMS Tiberoを操作する方法
- ローコード開発2022.07.20OutSystemsにおける排他制御を設計・実装してみた