行桁位置を意識することなくオブジェクト化されたフィールドで処理を実現するには、フィールドインターフェースを利用します。
フィールドインターフェースの使用方法を説明します。
ホストに接続します。
ログオン画面が表示されます。
ログオン画面でユーザIDとパスワード入力し、[Enter]キーを押します。
業務メニュー画面が表示されます。
業務メニュー画面で、業務番号(例:1)を入力し、[Enter]キーを押します。
選択した業務(例:商品登録業務)が実行されます。
ホストから切断します。
Sessionクラスのインスタンスを作成します。
Sessionクラスのconnectメソッドによりホストと接続します。
Sessionクラスのscreenメソッドにより、Screenクラスのインスタンスを取得します。
ScreenクラスのgetFieldSnapshotメソッドにより、画面情報(FieldSnapshotのインスタンス)を取得します。
FieldSnapshotクラスのsetFieldStringメソッドによりログオンIDとパスワードを入力し、submitメソッドによりホストへ実行キーを送り、ログオンします。
ScreenクラスのgetFieldSnapshotメソッドにより、最新の画面情報(FieldSnapshotのインスタンス)を取得します。
FieldSnapshotクラスのsetFieldStringメソッドにより業務番号(例:1)を入力し、submitメソッドによりホストへ実行キーを送り、業務を実行します。
すべての処理が終了したら、Sessionクラスのdisconnectメソッドによりホストから切断します。
import com.fujitsu.interstage.has.api.Session; import com.fujitsu.interstage.has.api.Screen; import com.fujitsu.interstage.has.api.FieldSnapshot; import com.fujitsu.interstage.has.api.IHASException; public class Example1 { 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; } try { // Screenの参照を取得 (手順3) Screen screen = session.screen(); // フィールドスナップショットの取得 (手順4) FieldSnapshot fs = screen.getFieldSnapshot(); // ログオン処理 (手順5) // ユーザID入力フィールドへユーザIDを設定 fs.setFieldString("ユーザID:", 1, "USER1"); // パスワード入力フィールドへパスワードを設定 fs.setFieldString("パスワード:", 1, "PASSWORD"); // 実行キーの送信 fs.submit(); // 新しいホスト画面データを取得 (手順6) fs = screen.getFieldSnapshot(); // 業務番号の設定 (手順7) fs.setFieldString("業務番号:", 1, "1"); // 実行キーの送信 fs.submit(); } catch (IHASException e) { System.out.println(e.getMessage()); return; } finally { // 切断 (手順8) try { session.disconnect(); } catch (IHASException e) { System.out.println(e.getMessage()); return; } } } }