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

19.4.3 シナリオインターフェースの使用方法(シナリオとAPIの併用)

ホスト画面を意識することなくホスト画面から取得したデータで処理を実現するには、シナリオインターフェースを利用します。

シナリオインターフェースの使用方法を説明します。

対象とするエミュレータ操作

シナリオで処理する画面を表します。

  1. ホストに接続します。

    ログオン画面が表示されます。

  2. ログオン画面でユーザIDとパスワードを入力し、[Enter]キーを押します。

    業務メニュー画面が表示されます。

  3. 業務メニュー画面で、業務番号(例:2)を入力し、[Enter]キーを押します。

    在庫一覧画面(1/3)が表示されます。

  4. 在庫一覧画面(1/3)の在庫情報を取得し、[PF7]キーを押します。

    在庫一覧画面(2/3)が表示されます。

  5. 在庫一覧画面(2/3)の在庫情報を取得し、[PF7]キーを押します。

    在庫一覧画面(3/3)が表示されます。

  6. 在庫一覧画面(3/3)の在庫情報を取得し、[PF8]キーを押します。

    業務メニュー画面が表示されます。

  7. 業務メニュー画面で、[PF12]キーを押します。

    ログオン画面が表示されます。

  8. ホストから切断します。

実装方法

ポイント

あらかじめ「対象とするエミュレータ操作」の2~7を実行するシナリオ(「在庫管理/在庫照会」)を作成しておきます。シナリオの作成方法については、「第20章 シナリオ機能」を参照してください。

  1. Sessionクラスのインスタンスを作成します。

  2. Sessionクラスのconnectメソッドにより、ホストと接続します。

  3. Scenarioクラスのインスタンスを作成します。

  4. Scenarioクラスのloadメソッドにより、シナリオをロードします。

  5. ScenarioクラスのsetStringメソッドにより、シナリオの入力パラメタを設定します。

  6. Scenarioクラスのexecメソッドにより、シナリオを実行します。

  7. Sessionクラスのdisconnectメソッドにより、ホストから切断します。

  8. ScenarioクラスのgetTableメソッドにより、シナリオの実行結果(在庫情報)を取得します。

  9. 取得した在庫情報をコンソールに表示します。

import com.fujitsu.interstage.has.api.Session; 
import com.fujitsu.interstage.has.api.Scenario; 
import com.fujitsu.interstage.has.api.IHASException;
import java.util.List;

public class Example3 {
    public static void main(String[] args) {

      // Sessionインスタンスの生成  (手順1) 
      Session session = new Session();

      try {
          // ホストに接続  (手順2) 
          session.connect("connect_path1");
      } catch (IHASException e) {
          System.out.println(e.getMessage());
          return; 
      }

      Scenario scenario = null;
      try {
          // シナリオインスタンスの作成  (手順3) 
          scenario = new Scenario(session); 

          // シナリオのロード  (手順4) 
          scenario.load("在庫管理/在庫照会");

          // シナリオの入力パラメタ  (手順5) 
          scenario.setString("ユーザ名", "USER1");
          scenario.setString("パスワード", "PASSWORD");

          // シナリオの実行  (手順6) 
          scenario.exec();
      } catch (IHASException e) {
          System.out.println(e.getMessage());
          return; 
      } finally {
          // 切断  (手順7) 
          try {
            session.disconnect();
          } catch (IHASException e) {
            System.out.println(e.getMessage());
            return; 
          }
      }

      try {
          // 実行結果の取り出し(テーブル)   (手順8) 
          List<List<String>> stoks = scenario.getTable("在庫一覧");

          // 実行結果の表示  (手順9) 
          for (int i = 0; i < stoks.size(); i++) {
            System.out.println(stoks.get(i)); 
          }
      } catch (IHASException e) {
          System.out.println(e.getMessage());
          return; 
      }
    }
}