ホスト画面を意識することなくホスト画面から取得したデータで処理を実現するには、シナリオインターフェースを利用します。
シナリオインターフェースの使用方法を説明します。
シナリオで処理する画面を表します。
ホストに接続します。
ログオン画面が表示されます。
ログオン画面でユーザIDとパスワードを入力し、[Enter]キーを押します。
業務メニュー画面が表示されます。
業務メニュー画面で、業務番号(例:2)を入力し、[Enter]キーを押します。
在庫一覧画面(1/3)が表示されます。
在庫一覧画面(1/3)の在庫情報を取得し、[PF7]キーを押します。
在庫一覧画面(2/3)が表示されます。
在庫一覧画面(2/3)の在庫情報を取得し、[PF7]キーを押します。
在庫一覧画面(3/3)が表示されます。
在庫一覧画面(3/3)の在庫情報を取得し、[PF8]キーを押します。
業務メニュー画面が表示されます。
業務メニュー画面で、[PF12]キーを押します。
ログオン画面が表示されます。
ホストから切断します。
ポイント
あらかじめ「対象とするエミュレータ操作」の2~7を実行するシナリオ(「在庫管理/在庫照会」)を作成しておきます。シナリオの作成方法については、「第20章 シナリオ機能」を参照してください。
Sessionクラスのインスタンスを作成します。
Sessionクラスのconnectメソッドにより、ホストと接続します。
Scenarioクラスのインスタンスを作成します。
Scenarioクラスのloadメソッドにより、シナリオをロードします。
ScenarioクラスのsetStringメソッドにより、シナリオの入力パラメタを設定します。
Scenarioクラスのexecメソッドにより、シナリオを実行します。
Sessionクラスのdisconnectメソッドにより、ホストから切断します。
ScenarioクラスのgetTableメソッドにより、シナリオの実行結果(在庫情報)を取得します。
取得した在庫情報をコンソールに表示します。
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; } } }