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

9.3. IM-BIS で外部連携として利用できるJavaプログラムの仕様

IM-BIS の外部連携機能で使用できる「Javaプログラム」(クラス)の仕様について説明します。
JAVA連携を行うプログラムは、この項の記載に基づいて開発してください。

9.3.1. JAVA連携の仕組み

外部連携(JAVA連携)の処理は以下の図の通りです。

../../../_images/display.png
  1. フォーム情報をデータマッパーに渡します。(フォーム情報 -> 外部連携リクエストデータの変換処理)
  2. マッピングされた外部連携リクエストデータを外部連携エンジンに渡します。(外部連携リクエストデータの型はjava.util.HashMap)
  3. データソース定義から呼び出すクラスを生成し、実行対象のメソッドに(2)で作成した外部連携リクエストデータを引数として実行します。
  4. プログラム実行後、外部連携レスポンスデータとしてオブジェクト(メソッドの戻り値)が返却されます。
  5. (4)で取得した外部連携レスポンスデータをデータマッパーに渡します。(外部連携レスポンスデータ-> フォーム情報の変換処理)
  6. マッピングされたデータはレスポンスデータとしてフォームに返却されます。

注意

外部連携ではレスポンス処理で大量のデータを扱うと、メモリを消費するためアプリケーションの性能に影響を及ぼす可能性があります。
以下のような対処方法を行い、メモリの消費を抑えるようにしてください。
  • 外部連携先で、少量のレスポンスデータでの連携を行う。
  • バッチ処理で大量データを扱うような処理を、外部連携のようなオンライン処理で行わない。

9.3.2. JAVA連携で呼び出し可能なクラス

外部連携(JAVA連携)で呼び出すことのできるクラスは、以下の通りです。

  • クラスのデフォルトコンストラクタを呼び出すことができること。

  • 呼び出し可能なメソッドを1つ以上用意してください。

  • メソッドの引数、および戻り値については、「 入出力オブジェクトの仕様 」を確認してください。

  • 作成するJavaプログラム内で、intra-martのAPIやサードパーティライブラリを利用して、プログラムを実行することができます。

    コラム

    サードパーティライブラリを使用する場合は、事前にアプリケーションのクラスパスに設定してください。

  • クラス内に複数の呼び出し可能なメソッドを含める事ができます。

    コラム

    複数のメソッドを定義した場合、データソース定義画面で選択することが可能です。

  • Javaプログラムはjarファイル単位で管理するため、内部で使用するクラスを含める事ができます。

9.3.3. 入出力オブジェクトの仕様

外部連携(JAVA連携)で呼び出すことの出来るプログラム(メソッド)の引数、戻り値は以下の通りです。

  • 引数は、1つであり、java.util.Mapインタフェースを実装した型(HashMap、LinkedHashMapなど)が利用できます。

  • 戻り値は、java.util.Mapインタフェースを実装した型、またはjava.util.Listインタフェースを実装した型(ArrayList、LinkedListなど)を指定します。

  • Listの中身やMapのキーに対応する値については、以下のクラスを使用できます。
    また、データソース定義とJavaのクラスの対応関係については、以下の表を参照してください。
    データソース定義のデータ型 Javaのクラス
    array java.util.List
    object java.util.Map
    date java.util.Date
    number java.math.BigDecimal
    boolean java.lang.Boolean
    string java.lang.String

コラム

Java連携の外部連携としてエラーにしたい場合は、Exception を throw してください。
例外メッセージは、throwするExceptionに設定します。
上記の処理を行うことで、例外メッセージが以下に出力されます。
  • %CONTEXT_PATH%/WEB-INF/log/product/bis/bis.log

9.3.4. 設定例

外部連携(JAVA)の設定例については、「 IM-BIS システム管理者操作ガイド 」「 外部連携サンプルプログラム(JAVA) 」を参照してください。