intra-mart Accel Platform IM-LogicDesigner仕様書 第24版 2024-04-01

4.5. インポート・エクスポート

IM-LogicDesignerのインポート・エクスポート機能では、JSON形式でロジックフロー/フロールーティング/ユーザ定義タスクのインポート・エクスポートを行います。

4.5.1. インポート・エクスポートで扱う情報

インポート・エクスポートでは以下の情報を扱います。

  • フローカテゴリ
    • フローカテゴリ名(国際化情報)を含みます。
  • フロー定義
    • 各フロー定義の持つバージョニング情報全てを含みます。
    • ロジックフロー名(国際化情報)を含みます。
  • ユーザ定義カテゴリ
    • ユーザ定義カテゴリ(国際化情報)を含みます。
  • ユーザ定義
    • 各ユーザ定義のもつバージョニング情報全てを含みます。
    • ユーザ定義名(国際化情報)を含みます。
    • ユーザ定義に紐付けられたアイコン情報を含みます。
  • フロールーティング
    • フロールーティングに設定された認可リソースを含みます。
  • トリガ定義
    • トリガと関連付けられた関連情報を含みます。

4.5.2. ファイルフォーマット

IM-LogicDesignerのエクスポート機能では、以下のJSONファイルをアーカイブ(zip)して出力します。
  • ユーザ定義
    • ファイル名: user_definition.json

    • アイコン情報 (ユーザ定義にアイコンが紐付けられている場合のみ出力されます。)
      • デザイナ表示アイコン
        • ファイル名: icon_data/designer/<icon_id>
      • パレット表示アイコン
        • ファイル名: icon_data/palette/<icon_id>
  • フロー定義
    • ファイル名: flow_definition.json

    • フロー図
      • ファイル名: flow_diagram/<flow_id>-<version>.png
  • フロールーティング定義
    • ファイル名: flow_route.json

4.5.3. インポート・エクスポート時の動作仕様

IM-LogicDesignerのインポート・エクスポート機能の動作仕様は、以下の通りです。

4.5.3.1. エクスポート

エクスポート機能は、「ファイルフォーマット」に記載したフォーマットで、全てのIM-LogicDesignerに関するデータを出力します。

4.5.3.1.1. 論理削除されたバージョンのエクスポート

ロジックフロー/ユーザ定義タスクのバージョン情報をエクスポートする場合、論理削除状態のバージョン情報は除いてエクスポートされます。

4.5.3.2. インポート

インポート機能は、「ファイルフォーマット」に記載したフォーマットでアーカイブされたZIPファイルをもとに、アーカイブファイルに含まれる全てのIM-LogicDesignerに関するデータを取り込みます。
インポートの方法には以下の2つの種別が提供されます。
  • 新規

    インポート対象の情報が存在しない場合のみインポートを行います。インポート先に既に同一IDの情報が存在する場合には処理をスキップします。
  • 更新

    全ての情報のインポートを行います。インポート先に既に同一IDの情報が存在する場合は上書き更新を行います。
    上書かれた情報を元に戻すことはできませんので注意してください。

4.5.3.2.1. インポート種別:新規の場合の動作

インポート種別が新規の場合には以下のようにインポート処理が行われます。
  • インポートが失敗した場合

    インポートが失敗した場合は、それまで行われたすべてのインポート処理がロールバックされます。
  • インポート先に同一IDのカテゴリが存在する場合

    フローカテゴリ/ユーザ定義カテゴリのインポートにおいて、既に同一IDのカテゴリがインポート先に存在する場合、該当IDのフローカテゴリ・ユーザ定義カテゴリに対するインポート処理はスキップされます。
  • インポート先に同一IDのデータが存在する場合

    ロジックフロー/ユーザ定義タスクのインポートにおいて、既に同一IDのデータがインポート先に存在する場合、インポート先のバージョンよりも新しいバージョンのみインポートされます。
    ../../../_images/import_1.png

    図: 新規バージョンのみインポート

    インポート先のバージョンより新しいバージョンがインポート元に存在しない場合、インポート処理は行われません
    これは、インポート先に論理削除状態のバージョンがある場合でも同様です。
    ../../../_images/import_2.png

    図: インポートが行われない場合

    ../../../_images/import_3.png

    図: インポートが行われない場合(インポート先に論理削除状態のバージョンがある)

    インポート元とインポート先のバージョンの比較は、論理削除状態のバージョンも含まれます。
    以下の例では、論理削除状態のバージョン2よりも新しいバージョン3のみインポートされます。
    ../../../_images/import_4.png

    図: 論理削除状態のバージョンも含めて、新規バージョンのみインポート

    インポート元のバージョンが一部抜けている場合、バージョン番号は維持されたままインポートされます。
    以下は、インポート元にはバージョン1と3が定義されている場合の例です。
    この場合、インポート先にはバージョン3のデータが作成されます(バージョン2にならないことに注意してください)。
    ../../../_images/import_5.png

    図: 一部バージョンが含まれないデータのインポート処理

4.5.3.2.2. インポート種別:更新の場合の動作

インポート種別が更新の場合には以下のようにインポート処理が行われます。
  • インポートが失敗した場合

    インポートが失敗した場合は、それまで行われたすべてのインポート処理がロールバックされます。
  • インポート先に同一IDのカテゴリが存在する場合

    フローカテゴリ/ユーザ定義カテゴリのインポートにおいて、既に同一IDのカテゴリがインポート先に存在する場合、該当IDのフローカテゴリ・ユーザ定義カテゴリを上書き更新します。
  • インポート先に同一IDのデータが存在する場合

    ロジックフロー/ユーザ定義タスクのインポートにおいて、既に同一IDのデータがインポート先に存在する場合、すべてのバージョンを上書き更新します。
    ../../../_images/import_6.png

    図: すべてのバージョンをインポート

    インポート元のバージョンが一部抜けている場合、バージョン番号は維持されたままインポートされます。
    以下は、インポート元にはバージョン1と3が定義されている場合の例です。
    この場合、インポート先のバージョン2のデータはそのまま残ります。
    ../../../_images/import_7.png

    図: 一部バージョンが含まれないデータのインポート処理