3270 アプリケーションのメタデータ成果物の設計

このガイドでは、3270 アプリケーションのメタデータ成果物を設計し、これらの成果物を Host Integration Server Definition XML (HIDX) ファイルおよび Host Integration Server の C# クラスとして保存する方法について説明します。

3270 画面駆動型アプリでは、画面とデータ フィールドはシナリオに固有です。 Azure Logic Apps を使用して、IBM 3270 コネクタ アクションを含む自動化されたワークフローを作成して実行する場合、コネクタにはアプリに関する情報が必要です。この情報は HIDX ファイルのメタデータとして提供できます。 このメタデータは、ワークフローが画面を識別して認識するのに役立つ情報、画面間を移動する方法、データを入力する場所、および結果を期待する場所について説明します。 このメタデータを指定して生成するには、3270 Design Tool を使用します。このツールでは、後で詳細に説明する特定の "モード" (ステージ) が順番に示されます。

  • キャプチャ: このモードでは、メインフレーム アプリで特定のタスクを完了するために必要な画面が記録されます (銀行預金残高の取得など)。

  • ナビゲーション: このモードでは、特定のタスクのためにメインフレーム アプリの画面間を移動する方法のプランまたはパスを指定します。

  • メソッド: このモードでは、画面のナビゲーション パスが記述されているメソッド (例: GetBalance) を定義します。 また、メソッドの入力および出力パラメーターになる各画面のフィールドを選択します。

前提条件

  • 3270 画面駆動型アプリをホストする TN3270 サーバーへのアクセス

  • 3270 Design Tool をダウンロードしてインストールします。 唯一の前提条件は Microsoft .NET Framework 4.8 です。

    このツールは、Azure Logic Apps で作成された従量課金または標準ワークフローの IBM 3270 コネクタ アクションを使用して追加および実行する 3270 アプリのタスクの画面、ナビゲーション パス、メソッド、およびパラメーターを記録するのに役立ちます。 このツールは、3270 画面駆動型アプリを実行するためにコネクタに必要なメタデータを提供する Host Integration Designer XML (HIDX) ファイルを生成します。

    このツールをダウンロードしてインストールした後、 次の手順に従って TN3270 ホスト サーバーに接続し、必要なメタデータ成果物を設計し、HIDX ファイルを生成します

    3270 デザイン ツールでは、次の要素はサポートされていません。

    • 部分的な IBM 基本マッピング サポート (BMS) マップ: BMS マップをインポートする場合、Design Tool では画面の部分定義は無視されます。

    • メニュー処理

画面をキャプチャする

このモードでは、その画面を一意に識別する各 3270 画面上の項目をマークします。 たとえば、テキスト行や、特定のテキストと空ではないフィールドなどのさらに複雑な条件のセットを指定できます。 ホスト サーバーへのライブ接続経由でこれらの画面を記録することも、IBM 基本マッピング サポート (BMS) マップからこの情報をインポートすることもできます。 ライブ接続では、ホストに接続するために TN3270 エミュレーターが使用されます。 各コネクタ アクションは、セッションへの接続で開始し、セッションからの切断で終了する、単一のタスクにマップしている必要があります。

  1. まだ行っていない場合は、3270 Design Tool を開きます。 ツール バーで [Capture](キャプチャ) を選択して、キャプチャ モードに入ります。

  2. [ セッション ] メニューの [ ホスト設定] を選択します。 TN3270E サーバー設定の情報を入力し、[OK] を選択 します

  3. [Session](セッション) メニューから [Connect](接続) を選択します。

  4. 記録を開始するには、 [Recording](記録) メニューから [Start Recording](記録開始) を選択します。 (キーボード: Ctrl + E)

  5. [Capture](キャプチャ) ウィンドウで、アプリの最初の画面から始めて、記録している特定のタスクに従ってアプリを順番に操作します。

  6. タスクが完了した後は、通常どおりアプリからサインアウトします。

  7. [Session](セッション) メニューから [Disconnect](切断) を選択します。

  8. 記録を停止するには、 [Recording](記録) メニューから [Stop Recording](記録停止) を選択します。 (キーボード: Ctrl + Shift + E)

    タスクの画面のキャプチャが済むと、Design Tool にそれらの画面を表すサムネイルが表示されます。 これらのサムネイルに関する注意事項:

    • キャプチャされた画面には、"Empty" という名前の画面が含まれます。

      初めて CICS に接続するときは、実行するトランザクションの名前を入力する前に、"Clear" キーを送信する必要があります。 "Clear" キーを送信する画面には、Screen Recognition エディターを使用して追加できる画面タイトルなどの "認識属性" がありません。 この画面を表すため、サムネイルには "Empty" という名前の画面が含まれています。 後でこの画面を使用して、トランザクション名を入力する画面を表すことができます。

    • 既定では、キャプチャされた画面の名前には、画面上の最初の単語が使用されます。 その名前が既に存在する場合、Design Tool では、名前の後にアンダースコアと数字が追加されます (例: "WBGB"、"WBGB_1")。

  9. キャプチャした画面によりわかりやすい名前を付けるには、次の手順のようにします。

    1. [Host Screens](ホスト画面) ウィンドウで、名前を変更する画面を選択します。

    2. 同じウィンドウの下部に [Screen Name](画面名) プロパティがあります。

    3. 現在の画面名をもっとわかりやすい名前に変更します。

  10. 各画面を識別するためのフィールドを指定します。

    3270 データ ストリームでは画面に既定の識別子がないので、各画面で一意のテキストを選択する必要があります。 複雑なシナリオでは、一意のテキストや特定の条件を持つフィールドなど、複数の条件を指定できます。

認識フィールドの選択が完了したら、次のモードに移動します。

繰り返される画面を識別するための条件

コネクタが画面間を移動して区別できるよう、通常は、キャプチャした画面間で識別子として使用できる画面上の固有のテキストを探します。 繰り返される画面では、さらに識別方法が必要になる場合があります。 たとえば、2 つの画面があり、1 つの画面では有効な値が返され、他の画面ではエラー メッセージが返されることを除くと、同じように見えるものとします。

Design Tool では、Screen Recognition エディターを使用して、"認識属性" (たとえば、"口座残高の取得" のような画面タイトル) を追加できます。 分岐したパスがあり、どちらのブランチも返る画面は同じでも、結果が異なる場合は、他の認識属性が必要です。 実行時に、コネクタではこれらの属性を使用して、現在のブランチと分岐が決定されます。 使用できる条件を次に示します。

  • 特定の値: この値は、指定した場所での指定した文字列と一致します。
  • 特定の値ではない: この値は、指定した場所での指定した文字列と一致しません。
  • 空である: このフィールドは空です。
  • 空ではない: このフィールドは空ではありません。

詳しくは、後の「ナビゲーション プランの例」をご覧ください。

ナビゲーション プランを定義する

このモードでは、特定のタスクでメインフレーム アプリの画面間を移動するためのフローまたは手順を定義します。 たとえば、アプリで辿ることのできる複数のパスがあり、1 つのパスでは正しい結果が生成され、他のパスではエラーが生成されるような場合があります。 各画面で、次の画面に移動するために必要なキー ストローク (CICSPROD <enter> など) を指定します。

ヒント

同じ接続画面と切断画面を使用する複数のタスクを自動化する場合、Design Tool では特別な接続および切断のプランの種類が提供されます。 これらのプランを定義するときに、ナビゲーション プランの先頭と末尾にそれらを追加できます。

プランの定義に関するガイドライン

  • 接続で開始して切断で終了する、すべての画面を含めます。

  • スタンドアロン プランを作成するか、または接続プランと切断プランを使用することができます。そうすると、すべてのトランザクションに共通する一連の画面を再利用できます。

    • 接続プランの最後の画面は、ナビゲーション プランの最初の画面と同じ画面にする必要があります。

    • 切断プランの最初の画面は、ナビゲーション プランの最後の画面と同じ画面にする必要があります。

  • キャプチャした画面には多くの繰り返し画面が含まれる場合があるので、プランでは繰り返し画面のインスタンスを 1 つだけ選択して使用します。 繰り返し画面の例を次に示します。

    • サインイン画面 (例: MSG-10 画面)
    • CICS のようこそ画面
    • "クリア" または Empty 画面

プランを作成する

  1. 3270 Design Tool のツール バーで、 [Navigation](ナビゲーション) を選択してナビゲーション モードに入ります。

  2. プランを開始するには、 [Navigation](ナビゲーション) ウィンドウで [New Plan](新しいプラン) を選択します。

  3. [Choose New Plan Name](新しいプラン名の選択) で、プランの名前を入力します。 [Type](種類) の一覧で、プランの種類を選択します。

    プランの種類 説明
    Process スタンドアロン プランまたは結合プランの場合
    接続する 接続プランの場合
    Disconnect (切断) 切断プランの場合
  4. [Host Screens](ホスト画面) ウィンドウから、[Navigation](ナビゲーション) ウィンドウのナビゲーション プラン サーフェスに、キャプチャされたサムネイルをドラッグします。

    トランザクション名を入力する空の画面を表すには、"Empty" 画面を使用します。

  5. 定義しているタスクを記述する順序で、画面を配置します。

  6. 分岐や結合など、画面間のフロー パスを定義するには、Design Tool のツール バーで、 [Flow](フロー) を選択します。

  7. フローの最初の画面を選択します。 フローの次の画面までドラッグして接続を描画します。

  8. 各画面で、[AID Key](AID キー) プロパティ (アテンション識別子) の値と、フローを次の画面に移動する [Fixed Text](固定テキスト) プロパティの値を指定します。

    AID キーだけを指定しても、AID キーと固定テキストの両方を指定してもかまいません。

ナビゲーション プランが完了したら、次のモードでメソッドを定義することができます。

この例では、次の手順を実行する "WBGB" という名前の CICS トランザクションを実行するとします。

  1. 最初の画面では、名前と口座を入力します。
  2. 2 番目の画面では、口座の残高が表示されます。
  3. "Empty" 画面に終了します。
  4. CICS から "MSG-10" 画面にサインアウトします。

また、これらの手順を繰り返しますが、正しくないデータを入力してエラーが表示される画面をキャプチャできるものとします。 キャプチャする画面を次に示します。

  • MSG-10
  • CICS Welcome
  • Empty
  • WBGB_1 (入力)
  • WBGB_2 (エラー)
  • Empty_1
  • MSG-10_1

ここでは多くの画面で一意の名前が付けられますが、"MSG-10" や "MSG-10_1" など、一部の画面は同じ画面です。 WBGB_1とWBGB_2の名前を、より有益なものに変更する必要があります。 繰り返し画面については、プランではその画面のインスタンスを 1 つだけ使用します。 スタンドアロン プラン、接続プラン、切断プラン、結合プランの表示の例を次に示します。

  • スタンドアロン プラン

    スタンドアロン ナビゲーション プラン

  • 接続プラン

    接続プラン

  • 切断プラン

    切断プラン

  • 結合プラン

    結合プラン

例:繰り返し画面を識別する

例のプランには、似た画面が表示される分岐があります。 1 つの画面では口座の残高が返され、もう 1 つの画面ではエラー メッセージが返されます。

Design Tool では、Screen Recognition エディターを使用して、認識属性 (たとえば、"口座残高の取得" という画面タイトル) を追加できます。 画面が似ている場合は、他の属性が必要です。 実行時に、コネクタではこれらの属性を使用して、ブランチと分岐が決定されます。

  • 有効な入力を返すブランチ (口座残高の画面) では、"空ではない" 条件を持つフィールドを追加できます。

  • エラーを返すブランチでは、"空である" 条件を持つフィールドを追加できます。

メソッドを定義する

このモードでは、ナビゲーション プランに関連付けるメソッドを定義します。 メソッドの各パラメーターに対し、文字列、整数、日付または時刻などのデータ型を指定します。 完了したら、ライブ ホスト上でメソッドをテストし、メソッドが正常に動作することを確認できます。 その後、メタデータ ファイル (Host Integration Designer XML (HIDX) ファイル) を生成します。このファイルには、IBM 3270 コネクタに対してアクションを作成して実行するために使用するメソッドの定義が含まれます。 また、Host Integration Server の C# クラスも生成されます。 ホスト統合サーバーで使用する C# クラスを生成することもできます。

  1. 3270 Design Tool のツール バーで、 [Methods](メソッド) を選択してメソッド モードに入ります。

  2. [メソッド] ペイン 、[ 新しいメソッド ] ボタンを選択します。 新しいメソッドの名前を入力します。 [OK] を選択します。

  3. [Navigation](ナビゲーション) ウィンドウで、目的の入力フィールドが含まれる画面を選択します。

  4. メソッドの最初の入力パラメーターを追加するには、次の手順のようにします。

    1. [Capture](キャプチャ) ペインの 3270 エミュレーター画面で、最初の入力として使用するフィールドの (フィールド内のテキストだけでなく) 全体を選択します。

      ヒント

      すべてのフィールドを表示し、完全なフィールドを選択したことを確認するには、[View](表示) メニューの [All Fields](すべてのフィールド) を選択します。

    2. Design Tool のツール バーで、 [Input Field](入力フィールド) を選択します。

  5. さらに入力パラメーターを追加するには、各パラメーターについて前の手順を繰り返します。 前の手順を参照してください。

  6. メソッドの最初の出力パラメーターを追加するには、次の手順のようにします。

    1. [Capture](キャプチャ) ペインの 3270 エミュレーター画面で、最初の出力として使用するフィールドの (フィールド内のテキストだけでなく) 全体を選択します。

      ヒント

      すべてのフィールドを表示し、完全なフィールドを選択したことを確認するには、[View](表示) メニューの [All Fields](すべてのフィールド) を選択します。

    2. Design Tool のツール バーで、 [Output Field](出力フィールド) を選択します。

    さらに出力パラメーターを追加するには、各パラメーターについて前の手順を繰り返します。

  7. メソッドのすべてのパラメーターを追加した後は、パラメーターごとに次のプロパティを定義します。

    プロパティ名 設定可能な値
    [データ型] Byte、Date Time、Decimal、Int、Long、Short、String
    Field Fill Technique (フィールドの入力方法) パラメーターでは次の入力方法がサポートされており、必要に応じて空白が埋められます。

    - [Type](入力) : フィールドに順番に文字を入力します。

    - [Fill](埋める) : フィールドの内容を文字で置き換え、必要に応じて空白で埋めます。

    - [EraseEofType](EOF を消去して入力) : フィールドをクリアしてから、フィールドに順番に文字を入力します。

    Format String (書式設定文字列) 一部のパラメーターのデータ型では、書式設定文字列が使用されます。これは、画面から .NET データ型に変換する方法を 3270 コネクタに指示します。

    - [DateTime](日時) : DateTime 書式設定文字列は、.NET カスタム日付/時刻の書式設定文字列に従います。 たとえば、日付 06/30/2019 では、書式設定文字列 MM/dd/yyyy を使用します。

    - [Decimal](10 進) : 10 進形式の文字列では、COBOL Picture 句を使用します。 たとえば、数値 100.35 では、書式設定文字列 999V99 を使用します。

メタデータを保存して表示する

メソッドを定義した後、メソッドをテストする前に、これまでに定義したすべての情報を RAP (.rap) ファイルに保存します。 どのモードでもいつでもこの RAP ファイルに保存できます。 Design Tool のインストール フォルダーの次の場所にはサンプルの RAP ファイル "WoodgroveBank.rap" があり、これを開いて確認できます。

..\Program Files\Microsoft Host Integration Server - 3270 Design Tool\SDK\WoodgroveBank.rap

ただし、サンプル RAP ファイルに変更を保存しようとすると、またはファイルを Design Tool のインストール フォルダーに置いたままサンプル RAP ファイルから HIDX ファイルを生成しようとすると、"アクセス拒否" エラーが発生することがあります。 既定では、Design Tool は管理者特権なしで Program Files フォルダーにインストールされます。 エラーが発生する場合は、次のいずれかの解決策を試してください。

  • サンプル ファイルを別の場所にコピーします。
  • Design Tool を管理者として実行します。
  • 自分を SDK フォルダーの所有者にします。

メソッドをテストする

  1. ライブ ホストに対してメソッドを実行するには、メソッド モードの間に、F5 キーを押すか、または Design Tool のツールバーの [Test](テスト) を選択します。

    ヒント

    モードはいつでも変更できます。 [ ファイル ] メニューの [ ツール] を選択し、目的のモードを選択します。 最小進行状況フォームチェーン メソッドを使用する

  2. パラメーターの値を入力して、 [OK] を選択します。

  3. 次の画面に進むには、 [Next](次へ) を選択します。

  4. 完了したら、 [Done](完了) を選択すると、出力パラメーターの値が表示されます。

HIDX ファイルを生成してアップロードする

準備ができたら、HIDX ファイルを生成します。 3270 Design Tool では、RAP ファイルを保存した新しいサブフォルダーに HIDX ファイルが作成されます。 その後、従量課金または標準ロジック アプリ リソースにリンクされている統合アカウントに HIDX ファイルをアップロードできます。 または、リソース メニューの [マップ] の [成果物] セクションを使用して、Standard ロジック アプリ リソースに直接アップロードすることもできます。

  1. 3270 Design Tool で、 [Tools](ツール) メニューの [Generate Definitions](定義の生成) を選択します。 (キーボード: F6)

  2. RAP ファイルが含まれるフォルダーに移動し、HIDX ファイルの生成後にツールによって作成されたサブフォルダーを開きます。 ツールで HIDX ファイルが作成されたことを確認します。