intra-mart Accel Platform IM-Workflow 仕様書 第39版 2025-04-01

5.1.2.44. アクション処理ロジックフロー連携のマッピング方法

設定一覧
論理名 物理名 設定内容
アクション処理ロジックフロー連携のマッピング方法 action-process-logic-flow-mapping-method
flexible:受け取ったユーザパラメータをロジックフローの入力設定 imwUserParameter の定義に厳格に合わせる形で構造体の再構築およびデータ型の変換を行ってセットします。(初期値)
direct:受け取ったユーザパラメータをロジックフローの入力設定 imwUserParameter の定義に可能な限り合わせる形で構造体の再構築およびデータ型の変換を行ってセットします。

コラム

当ワークフローパラメータは IM-Workflow 2023 Spring(Gerbera) で追加されました。

5.1.2.44.1. flexible として設定した際の動作

アクション処理で受け取ったユーザパラメータをロジックフローの入力設定に厳格に合わせる形で構造体の再構築およびデータ型の変換を行い、その結果をロジックフローの入力値 imwUserParameter へセットします。

次の動作特徴があります。

  • ロジックフローの入力設定に存在しないプロパティがユーザパラメータに含まれる場合、対象プロパティのデータはロジックフローには連携しません。

コラム

当マッピング方法では、ロジックフローの入力定義と実際に連携されるパラメータとの間の型安全がフレームワークによって保障されます。
特別な理由がない限り、flexible 設定での運用を推奨します。

5.1.2.44.2. direct として設定した際の動作

アクション処理で受け取ったユーザパラメータの構成は残しつつ、ロジックフローの入力設定とマッピングされた項目に対して可能な限りデータ型の変換を行い、その結果をロジックフローの入力値 imwUserParameter へセットします。

flexible と比べ次のような違いがあります。

  • ロジックフローの入力設定に存在しないプロパティがユーザパラメータに含まれる場合、対象プロパティは変換後データにも元のまま存在する状態でロジックフローに連携します。
  • 変換対象の個々のプロパティにおいて、データ型の変換が行えない(変換結果がnullとなる、または変換過程で例外が発生した)場合、変換結果として変換前のデータを採用します。

コラム

当ワークフローパラメータが定義されていない場合、互換性の観点から direct が設定されているものとして動作します。
「2022 Winter(Freesia) 以前のバージョンで稼働していたロジックフローの動作を担保しつつ、2023 Spring(Gerbera) 以降のバージョンで新たに作成したロジックフローでは IM-Repository と連携したい」といった用途で利用されることを想定しています。

5.1.2.44.2.1. データ型変換仕様

  • IM-LogicDesigner のデータ型変換仕様と同一です。

    詳細は以下の仕様書を参照してください。
  • ただし、以下の入力データはユーザパラメータとして指定できません。

    • Binary
    • AnyType
    • ComplexType
    • SqlClob

5.1.2.44.2.2. 構造体の再構築仕様

5.1.2.44.2.2.1. 入力設定の項目と値の紐づきにおけるユーザデータ探索

  • 設定されているロジックフロー側の入力設定と、受け取ったユーザパラメータの同一階層の同名プロパティの値を利用します。
  • 上記が見つからなかった場合は、受け取ったユーザパラメータの第一階層の同名プロパティの値を利用します。

5.1.2.44.2.2.2. 入力設定の項目と値の連携ルール

5.1.2.44.2.2.2.1. 共通ルール
  • ロジックフローの入力設定 imwUserParameter の型が map の場合、受け取ったユーザデータは無変換で連携します。これは map として定義したプロパティの配下にはプロパティを定義できないためです。

  • 受け取ったユーザパラメータが null の場合、imwUserParameter に null をセットします。

  • トップ階層「imwUserParameter」配下の連携については次のとおりです。

    • ユーザデータがMap型の場合、内部の情報も型変換して連携します。
    • ユーザデータがモデルクラスの場合、そのまま連携します。
5.1.2.44.2.2.2.2. 個別ルール

異なる型と見なされる変換の動作は、当ワークフローパラメータの設定に応じて異なります。

ロジックフローの入力設定 入力値 flexible での連携値 direct での連携値
単一型 単一型 変換の上で連携 変換の上で連携
  配列型 null そのまま連携
配列型 単一型 null そのまま連携
  配列型 変換の上で連携 変換の上で連携
map を除くロジックフロー標準の型 Mapまたはモデルクラス等の構造体 null そのまま連携
  Mapまたはモデルクラス等の構造体以外 変換の上で連携 変換の上で連携
map Mapまたはモデルクラス等の構造体 変換の上で連携 変換の上で連携
  Mapまたはモデルクラス等の構造体以外 null そのまま連携
object Mapまたはモデルクラス等の構造体 変換の上で連携 変換の上で連携
  Mapまたはモデルクラス等の構造体以外 null そのまま連携