4.9. インポートでエラーが発生した¶
4.9.1. インポートを行うと『テーブルの作成に失敗しました。』というメッセージが表示される¶
対象バージョン¶
IM-FormaDesigner Version 7.2 の場合
- IM-FormaDesigner Version 7.2.0 ~ 最新バージョン
IM-FormaDesigner for Accel Platform の場合
- IM-FormaDesigner for Accel Platform 2012 Autumn (8.0.1) ~ 最新バージョン
IM-BIS for Accel Platform の場合
- IM-BIS for Accel Platform 2012 Winter (8.0.0) ~ 最新バージョン
現象¶
IM-FormaDesigner で作成したアプリケーションや IM-BIS で作成したフローのインポートを行った際に「テーブル○○の作成に失敗しました。」というメッセージが表示される。インポート後の IM-BIS で作成したフローに対して「定義の反映」を実行するとエラーが発生する。インポート後の IM-FormaDesigner で作成したアプリケーションの「テーブル設定」からテーブルの「参照」をクリックするとエラーが発生し、参照できない。
条件¶
以下のすべての条件を満たしている場合に発生します。
- アプリケーション定義のインポートファイルを作成した環境とインポートを実行した環境のデータベースの種類が異なっている。
- インポート先環境に対象のアプリケーションを登録したことがなく新規にインポートを実行している。
以下のアプリケーション種別・BIS作成種類の場合に発生します。
- アプリケーション種別「標準」
- アプリケーション種別「IM-Workflow」
- BIS作成種類「BISフロー」
- BIS作成種類「ワークフロー」
原因¶
製品の仕様です。IM-FormaDesigner / IM-BIS では、アプリケーションやフローのインポートファイル内でテーブルの作成に必要なDDLを作成元環境のデータベースに基づいて生成しています。インポート先のデータベースの種類が異なる場合、インポートファイル内のDDLがインポート先のデータベースに適合しないためにエラーが発生します。intra-mart から提供している各種ドキュメントやCookbookで提供しているサンプルの場合には、サンプルが PostgreSQL の環境で作成されているため、 PostgreSQL 以外のデータベース環境で利用する際に上記の事項と同様にエラーが発生します。
解決方法¶
ありません。
復旧方法¶
インポート後に、以下の手順に基づいてテーブルや関連する情報の誤った内容を削除し、正しい内容になるように登録してください。
IM-FormaDesigner のアプリケーション定義の場合
「サイトマップ」→「Forma管理画面」→「アプリ一覧」をクリックしてください。
インポートを行ったアプリケーションの「編集」をクリックしてください。
「テーブル設定」タブをクリックしてください。
不整合が発生しているテーブル設定情報を削除するために「削除」をクリックしてください。この際、「アプリケーションデータを格納するテーブルも削除する。」のチェックボックスはオフにしてください。チェックボックスをオンにして実行した場合、存在しないテーブルを削除する旨のエラーが発生します。新たにテーブルの設定情報、テーブルを登録するために「登録」をクリックしてください。
カラムサイズやテーブル名を入力し、「登録」をクリックしてください。テーブル名などが不明な場合はインポート元環境の「テーブル設定」で確認してください。以上で、インポート対象のアプリケーションに対する不整合を解消することができました。
IM-BIS で作成したフローに紐づく定義の場合
「サイトマップ」→「IM-BIS」→「システム管理者」→「IM-BIS作成」→「IM-BIS」をクリックしてください。
「IM-BIS-一覧」を表示するために「IM-BIS-更新履歴」の「一覧」をクリックしてください。 インポートを行ったBISで作成したフローの「アプリ」をクリックしてください。 不整合が発生しているテーブル設定情報を削除するために「削除」をクリックしてください。この際、「アプリケーションデータを格納するテーブルも削除する。」のチェックボックスはオフにしてください。チェックボックスをオンにして実行した場合、存在しないテーブルを削除する旨のエラーが発生します。「IM-BIS-一覧」に戻り、対象の IM-BIS で作成したフローの「編集」をクリックしてください。
「定義の反映」をクリックしてください。
以上で、インポート対象の IM-BIS で作成したフローに対する不整合を解消することができました。