CookBook

テナント環境セットアップ時にテーブルが作成されるよう設定する

投稿日:2015-12-14 更新日:

e Builderを利用して作成したアプリケーションにおいて、テナント環境セットアップ時に自動でテーブルが作成されるように設定する手順を紹介します。

今回は例として、CookBook:フォームに入力した内容をデータベースに登録するで利用するテーブルをテナント環境セットアップ時に作成するように設定します。

完成イメージ

本稿の内容を設定したユーザモジュールをwarファイルに含めてデプロイしてください。
その後テナント環境セットアップを行った時に以下のテーブルがテナントデータベースに作成されます。

テーブル名:cb109004
カラム名 データ型 備考
item_cd VARCHAR 20 主キー
item_name VARCHAR 100
item_price NUMERIC 15
comment VARCHAR 200

完成サンプル

以下の完成サンプルをダウンロードしてご活用ください。
e builder プロジェクト : im_cookbook_109004.zip
imm ファイル : im_cookbook_109004-1.0.0.imm

レシピ

  1. セットアップ設定ファイルを作成します。
  2. 実行するDDLファイルを作成します。

1. セットアップ設定ファイルを作成します。

(1) はじめにe Builder のモジュールプロジェクト内に「セットアップ設定ファイル」を作成してください。
セットアップ設定ファイルを作成することで、テナント環境セットアップ時にデータベースのテーブル作成処理を組み込むことができます。
セットアップ設定ファイルには定義ルールがあります。必ず以下の配置ディレクトリ、ファイル名で作成してください。
定義ルールに則っていない場合テナント環境セットアップの対象となりません。この場合、実行時例外は発生しません。注意してください。

定義ルール
配置ディレクトリ src/main/conf/products/import/basic/{アーティファクトID}/
ファイル名 import-{アーティファクトID}-config-1.xml

モジュールプロジェクトのルートディレクトリに配置されているmodule.xmlのidタグにおいて、アーティファクトIDは以下のように定義されています。

この${artifact_id}がセットアップ設定ファイルの配置ディレクトリやファイル名に使用するアーティファクトIDです。

ファイル名に追加されているサフィックス “1” は、各モジュールにおけるテナント環境セットアップのバージョン管理のための番号(スキーマバージョン)です。初回では、必ず “1” を指定してください。
スキーマバージョンの詳細はSchemaUpdateをご参照ください。

今回配布しているサンプルでは module.xmlのidタグは以下のように設定されています。

アーティファクトIDはim_cookbook_109004となっているので、セットアップ設定ファイルは src/main/conf/products/import/basic/im_cookbook_109004/import-im_cookbook_109004-config-1.xml で作成してください。

(2) セットアップ設定ファイルの内容を記述してください。
セットアップ設定ファイルはXMLで記述してください。その基本構造は以下の通りです。

セットアップ設定ファイルのフォーマットはWebアーカイブディレクトリ内の下記のxsdファイルで定義されています。

  • WEB-INF/schema/import-data-config.xsd

今回はデータベースのテーブル作成のみを行うので、セットアップ設定ファイルの内容は以下の通り記述してください。

テナント環境セットアップ時にテーブル作成のDDLを実行するように設定する場合、create-fileタグでセットアップ時に実行したいDDLファイルのシステムストレージからの相対パスを指定してください。
DDLファイルの拡張子は.sqlです。

セットアップ設定ファイルの詳細はintra-mart Accel Platform ユーザモジュール開発ガイド-テナント環境セットアップの組み込みをご参照ください。

2. 実行するDDLファイルを作成してください。

(1) 上記のセットアップ設定ファイルで指定したパス上に、DDLファイルを作成してください。

intra-mart Accel Platform がサポートしているデータベース毎に、DDLファイルおよびDMLファイルを切り換えることができます。
例えば、セットアップ設定ファイルのDDLファイル名に my_project-ddl.sql というファイルを指定している場合、Oracle 専用のDDL文を実行したい場合は my_project-ddl_oracle.sql というファイルを作成してください。
このようにするとテナントデータベースが Oracle の場合 my_project-ddl_oracle.sql が実行されます。
各データベースのサフィックスは以下のようになっています。

データベース サフィックス
DB2 db2
Oracle oracle
Postgre SQL postgre
SQL Server sqlserver

今回はPostgreSQL専用のDDLファイルのみ作成します。
このDDLファイルのディレクトリパスやファイル名はセットアップ設定ファイルで指定したパスにPostgreSQLのサフィックスを加えた src/main/storage/system/products/import/basic/im_cookbook_109004/im_cookbook_109004-ddl_postgre.sql で作成してください。

(2) DDLファイルの内容を記述してください。
冒頭の完成イメージの通り、以下のようなテーブルを作成するSQLを記述してください。

テーブル名:cb109004
カラム名 データ型 備考
item_cd VARCHAR 20 主キー
item_name VARCHAR 100
item_price NUMERIC 15
comment VARCHAR 200

この場合はim_cookbook_109004-ddl_postgre.sqlに以下の通り記述してください。

以上を設定することで、テナント環境セットアップ時にテーブルの作成が自動的に実行されます。

-CookBook
-

執筆者:


  1. […] 第1回:スクリプト開発で登録フォームを作成する 第2回:フォームに入力した内容をデータベースに登録する 第3回:画面にインジケータ(ロード中のアイコン)を表示する 第4回:画面に確認ダイアログ(コンファーム)を表示する 第5回:スクリプト開発した画面にバリデーション(入力チェック)を実装する 第6回:テナント環境セットアップ時にテーブルが作成されるよう設定する […]

  2. […] テナント環境セットアップ時にテーブルが作成されるよう設定する […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

ラジオボタンの値やフォーカスによってアイテムの色を変更するには

このCookbookでは、カスタムスクリプトによるフィールドスタイルの変更方法を説明します。 アクション設定とカスタムスクリプトの組み合わせにより、入力値やフォーカスイベントに合わせてアイテムのスタイ …

no image

外部連携を利用して簡単な相関チェックを行う方法

このCookbookでは、外部連携を利用して簡単な相関チェックを行う方法を紹介します。 この方法を活用することにより、簡単な入力チェックであれば、Formaユーザプログラムの入力チェックを作成せずに外 …

no image

imuiListTableでセルに配置したアイコンから別画面に遷移する方法

このCookBookでは、imuiListTableでセルに配置したアイコンから別画面に遷移する方法について紹介しています。 imuiListTableについての詳細はAPIドキュメントを参照してくだ …

スプレッドシートのバインディングデータを別途テーブルに出力する方法

スプレッドシートのJsonデータとバインディングデータは、Formaヘッダーテーブルにバイナリカラムで格納されます。 Formaヘッダーテーブルに格納されたスプレッドシートデータは、登録データ情報管理 …

no image

画面に確認ダイアログ(コンファーム)を表示する

画面に確認ダイアログ(imuiConfirm)を表示する方法をご紹介します。 確認ダイアログとは以下の画像のように、ユーザが選択した操作を本当に実行するかどうか確認するための機能です。 確認ダイアログ …

まだデータがありません。

RSSRSSRSSRSS