ページの先頭行へ戻る
Interstage Host Access Service V10.0.1 ユーザーズガイド
Interstage

23.1.5 在庫照会(inquiry)サンプルアプリケーション

在庫照会を想定したサンプルアプリケーションです。

23.1.5.1 アプリケーションの概要

本サンプルアプリケーションは、ホストアクセスAPI経由でホストに接続を行い、在庫照会を行うことによりホストからデータを取得し、画面に表示します。在庫照会結果の取得にはInterstage Host Access Serviceのシナリオインターフェースを使用します。シナリオインターフェースを使用することにより、少ない開発量でデータの取得が可能となります。

23.1.5.2 アプリケーションの画面表示部

在庫照会画面

入力されたユーザIDとパスワードを使用してホストに接続し、ホストから在庫照会結果を取得します。

在庫結果表示画面

取得した在庫照会結果を表示します。

23.1.5.3 アプリケーションのホストアクセス部

アプリケーションのホストアクセス部のソースコード(IhasAPIWrapper.java)について説明します。サンプルアプリケーションのソース全体については添付のソースコードを参照してください。

IhasAPIWrapper.java

ホストアクセスを行うためのクラスです。

本クラスには、ホストアクセスAPIのシナリオを使用してホストにアクセスするためのメソッドが実装されています。

/*
 * @(#)IhasAPIWrapper.java        1.00 2008/06/06
 *
 * Interstage Host Access Service(IHAS)
 *                       COPYRIGHT FUJITSU LIMITED 2008.
 *                       
 */

package inquiry;

import java.util.ArrayList;
import java.util.List;

import com.fujitsu.interstage.has.api.IHASErrorCode;
import com.fujitsu.interstage.has.api.IHASException;
import com.fujitsu.interstage.has.api.Scenario;
import com.fujitsu.interstage.has.api.Session;

/**
 * ホストアクセス用クラス.
 * IHAS APIを使用し、ホストとの通信を行います。
 *
 * @author FUJITSU LIMITED
 * @version v10.0.0.1
 */
public class ホストアクセスAPIWrapper {

  /**
   * コンストラクタ.
   */
  public ホストアクセスAPIWrapper() {
    super();

  }

  // メンバ変数
  /**   セッションクラスオブジェクト. */
  private Session session;
  
  /**
   * 
   * シナリオによる在庫照会の実施.
   * 
   * @param userId ユーザIDです
   * @param userPw パスワードです
   * @return ArrayList データリストです
   * @throws IHASException 例外をスローします
   */
  public final ArrayList<RecordBean> doScenario(
      final String userId, final String userPw)
      throws IHASException {

    session = new Session();
    
    //データリスト
    ArrayList<RecordBean> list = new ArrayList<RecordBean>();
  
    // 接続
    // connectのパラメタには運用管理コンソールで設定した接続情報名、
    // または、グループ名を指定してください。
    session.connect("PATH000");

    // シナリオコンテキストの取得
    Scenario scenario = new Scenario(session);

    // シナリオのロード
    scenario.load("project1/在庫照会");
    //                        ↑
// シナリオ名をシナリオプロジェクト名/シナリオ名の形式で
// 指定してください。

// ユーザIDとパスワードの設定 scenario.setString("userid", userId); scenario.setString("userpw", userPw); // シナリオの実行 scenario.exec(); // 切断 session.disconnect(); // 実行結果の取り出し(テーブルヘッダ)) List<String> header = scenario.getList("header"); // ↑
// リスト型のシナリオ出力パラメタの値を取得します。
// 実行結果の取り出し(テーブルデータ) List<List<String>> data = scenario.getTable("data"); // ↑
// テーブル型のシナリオ出力パラメタの値を取得します。
// テーブルヘッダの設定 RecordBean recordHeader = new RecordBean(); // 項目 recordHeader.setNumber(ReplaceUtility.replaceEntity(header.get(0))); // 受注番号 recordHeader.setOrderNo(ReplaceUtility.replaceEntity(header.get(1))); // 受注日 recordHeader.setOrderDate(ReplaceUtility.replaceEntity(header.get(2))); // 顧客名 recordHeader.setCustomer(ReplaceUtility.replaceEntity(header.get(3))); // 担当者名 recordHeader.setCharge(ReplaceUtility.replaceEntity(header.get(4))); // 備考 recordHeader.setNotes(ReplaceUtility.replaceEntity(header.get(5))); // リストに追加 list.add(recordHeader); // テーブルデータの設定 for (int j = 0; j < data.size(); j++) { RecordBean recordData = new RecordBean(); List<String> dataitem = data.get(j); // テーブルデータの確認 // (データが存在しない場合は項目が" "として表示されます。) if (!dataitem.get(0).equals(" ")) { // 項目 recordData.setNumber(ReplaceUtility.replaceEntity(dataitem.get(0))); // 受注番号 recordData.setOrderNo(ReplaceUtility.replaceEntity(dataitem.get(1))); // 受注日 recordData.setOrderDate(ReplaceUtility.replaceEntity(dataitem.get(2))); // 顧客名 recordData.setCustomer(ReplaceUtility.replaceEntity(dataitem.get(3))); // 担当者名 recordData.setCharge(ReplaceUtility.replaceEntity(dataitem.get(4))); // 備考 recordData.setNotes(ReplaceUtility.replaceEntity(dataitem.get(5))); // リストに追加 list.add(recordData); } else { // データなし break; } } return list; } /** * エラー時の切断処理. * * エラー発生時のホスト切断処理を行います。 * @return 実行結果 */ public final int errorDisconnect() { int ret = IHASErrorCode.IHASERROR_NOERROR; try { session.disconnect(); } catch (IHASException ihasexception) { ret = ihasexception.getErrorCode(); } return ret; } }