IM-BIS for Accel Platform IM-BIS 仕様書 第20版 2024-04-01

9.1. IM-BIS で外部連携として利用できるクエリの仕様

9.1.1. テナントDBクエリ、シェアードDBクエリでの同一リクエストパラメータに異なるアイテムをマッピングした場合の仕様

データソース定義で設定したテナントDBクエリ、シェアードDBクエリを使用して、IM-BIS で外部連携を設定できます。
IM-BIS で設定した同一リクエストパラメータに異なるアイテムをマッピングした場合の仕様について、以下のサンプルで説明します。
  • リクエストの「locale」が条件判定され、レスポンスの「equipment_name」「maker」「price」「company」の条件判定に当てはまる値が返却されます。
    「locale」が「en」の値の場合はデータがなく、「locale」が「ja」の値の場合は「ノート」が返却されます。
    ../../../_images/sample.png

外部連携のデータマッパーでリクエストの設定をする場合の仕様

  1. データマッパーで申請/処理開始の「textbox1」と備品検索の「ロケール」をマッピングします。

    ../../../_images/bis_query_request_1.png
  2. 「追加」ボタンをクリックします。

    ../../../_images/bis_query_request_2.png
  3. 申請/処理開始の「textbox2」と備品検索の「ロケール」を選択します。

    ../../../_images/bis_query_request_3.png
  4. 「textbox1」と同様に追加し、「保存」ボタンをクリックします。

    ../../../_images/bis_query_request_4.png
  5. 以下のように入力し、「イベント」ボタンをクリックします。

    • 「テキスト1(申請/処理開始の「textbox1」)」に「en」と入力

    • 「テキスト2(申請/処理開始の「textbox2」)」に「ja」と入力

      ../../../_images/bis_query_request_5.png
  6. 以下のようにレスポンスが返却されます。

    • 「テキスト1(申請/処理開始の「textbox1」)」に「ノート(「ja」の返却値)」が返却

    • 「テキスト2(申請/処理開始の「textbox2」)」に「ノート(「ja」の返却値)」が返却

      ../../../_images/bis_query_request_6.png

    注意

    IM-BIS で各クエリのデータソースを利用する場合、定義する入力値の論理名は一意に設定する必要があります。
    また、 IM-BIS は、外部連携実行時に同一のフィールド(論理名で判断)に対し、値をマップするという仕様です。
    そのため、同一の論理名を持つ入力値が存在する場合は、画面アイテムに最後に返却されるレスポンスの値がマッピングされますので、注意してください。

9.1.2. テナントDB更新系クエリ、シェアードDB更新系クエリの仕様

データソース定義のテナントDB更新系クエリ、シェアードDB更新系クエリでは、 IM-BIS で外部連携を設定し、他のテーブルへのデータの登録・更新・削除が実行できます。
このデータソース定義で記述できるSQLは「INSERT」「UPDATE」「DELETE」です。

更新(UPDATE)・削除(DELETE)における入力値のマッピング

SQLに「UPDATE」、または「DELETE」を記述した場合には、入力値を更新対象の列と条件にマッピングします。
その順序はSQLの記述順となり、以下の図のようにマッピングされます。
../../../_images/bis_query_dml_1.png

単一の画面アイテム、テーブル系画面アイテムのマッピングの仕様

テナントDB更新系クエリ、シェアードDB更新系クエリで、マッピング対象に入力系画面アイテムやテーブル系画面アイテムを設定した場合の動作について説明します。

単一の画面アイテムとのマッピング

単一の値をもつ画面アイテム(文字列、数値、日付など)とデータソース定義をマッピングした場合、1回の外部連携の実行で登録・更新・削除されるデータは1件です。
../../../_images/bis_query_dml_2.png

テーブル系画面アイテムとのマッピング

テーブル系画面アイテム(明細テーブル、グリッドテーブル)とデータソース定義をマッピングした場合、1回の外部連携の実行で登録・更新・削除されるデータは、テーブル系画面アイテムの行数と同じ件数です。
../../../_images/bis_query_dml_3.png

../../../_images/bis_query_dml_4.png

注意

テーブル系画面アイテムとのマッピングによる外部連携を利用した場合、1回の外部連携の実行中にエラーが発生した場合、すべてロールバックされます。
複数の外部連携の実行中にエラーが発生した場合には、「外部連携設定」の「前処理エラー時」の設定に基づいて、処理を続行、または中断します。

単一の画面アイテム・テーブル系画面アイテムを組み合わせたマッピング

単一の値をもつ画面アイテム(文字列、数値、日付など)とテーブル系画面アイテム(明細テーブル、グリッドテーブル)の組み合わせと、データソース定義をマッピングした場合、1回の外部連携の実行で登録・更新・削除されるデータは、テーブル系画面アイテムの行数と同じ件数です。
なお、単一の画面アイテムとマッピングされたカラムには、すべて同じ値が設定されます。
../../../_images/bis_query_dml_5.png

9.1.3. クエリを含むデータソース定義でのワイルドカード(あいまい検索)の設定

テナントDBクエリ・シェアードDBクエリ・テナントDB更新系クエリ・シェアードDB更新系クエリでは、WHERE句へのワイルドカードを設定することができます。
ワイルドカードを利用するための設定例は以下の通りです。
  • データソース定義のSQLでは、LIKE演算子と入力値を受け取るための”?”(プレースホルダ)を記述します。

    ../../../_images/bis_query_wildcard_1.png
  • データマッパーでは、ワイルドカードに指定する文字(”%”、”_”など)をフィールドに追加してマッピングします。

    ../../../_images/bis_query_wildcard_2.png

    コラム

    ワイルドカードに指定する文字(”%”、”_”など)は、画面アイテムの入力値で追加することもできますが、意図しないエラーが発生する可能性がありますので、入力チェックで入力できないようにするなどの対応を検討してください。