![]() ![]() ![]() ![]() ![]() ![]() | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
第6章
5250 Connectには、他のComposer Connectにはない高度な機能がいくつかあります。 この章では、これらのうち 複数行処理および画面の取り扱いの2つの機能について説明します。
前に説明したように、5250 Connectには、データをXMLドキュメントから5250に、または5250画面からXMLドキュメントにすばやく簡単にドラッグできる、ドラッグアンドドロップ機能があります。ただし、行数が一定でない場合や画面が複数ある場合、ドラッグアンドドロップは有効な方法ではありません。この問題を解決するため、5250 Connectには、DOMと5250画面の間で複数対複数のデータ関係のマップを指定するための「複数行ウィザード」があります。複数行ウィザードは、5250コンポーネントで[アクション]>[新規アクション]を選択すると表示され、XMLドキュメントのデータを5250画面に繰り返し入力したり、5250画面で繰り返し表示されるデータをXMLドキュメントに出力したりすることができます。複数行ウィザードでは基本的に、あるドキュメントまたは画面から別のドキュメントや画面に対して、行数や画面数に関わらず、複数の行を自動的にマップする繰り返しループをアクションモデルに作成します。
複数行ウィザードを使用してXMLドキュメントおよび5250画面の複数行のデータを入出力する方法は数多くありますが、このガイドではすべての方法については説明していません。ここでは、複数行ウィザードの一般的な使用方法を理解するために2つの基本的なコンポーネントの例を挙げます。
最初の手順では、複数のデータ要素をXMLドキュメントから5250画面に「入力」するための複数行ウィザードを使用するコンポーネントを示します。2つ目の手順では、複数のデータ要素を5250画面から出力DOMに「出力」するための複数行ウィザードを使用するコンポーネントを示します。
この節で扱う手順は、単に例として示すものです。Composerのチュートリアルとは異なり、これらの手順は各ステップに沿って操作されることを意図していません。
まず最初に、21新しい5250コンポーネントを作成するの手順に従ってコンポーネントを作成します。この例では、「5250SampleInput」というコンポーネントを作成します。このコンポーネントは、次のように5250コンポーネントエディタに表示されます。
サインオンした後、正しい画面に移動します。 この例では、[ユーザID ]と[パスワード]フィールドにユーザIDとパスワードをそれぞれ入力し、[Program/Procedure]フィールドには「GORD」と入力する必要があります。
注記: または、ネイティブ環境ペインにある5250キーパッドツールバーで[Enter]を選択することもできます。このツールバーを表示するには、5250コンポーネントエディタのメニューバーから[表示]、[キーパッドツールバー]の順に選択します。
次に、入力DOMから、5250の[ENTER ORDER]画面内の対応するフィールドに必要なヘッダデータをドラッグアンドドロップします。
複数行アクションで使用するために、繰り返しのデータを含む領域を手動で指定するか、その領域をハイライトする必要があります。この例では、5250の[ENTER ORDER]画面の行項目入力フィールドの領域を、左上隅から右下隅に向かってカーソルをドラッグしています。ドラッグした領域がグレーの背景色でハイライトされます。
注記: 最初のフィールドの「外側」にカーソルを置いてドラッグを開始してください。フィールド内でドラッグを開始すると、Composerではフィールド自体を移動しようとしているとみなされます。
注記: データを出力する場合、112複数行ウィザードを使用してデータを出力するを参照してください。
5250コンポーネントエディタから、[アクション]、[新規アクション]、[複数行]の順に選択します。複数行ウィザードが表示されます。ダイアログボックスには、ハイライトした領域に基づいて自動的にデータが表示されます。
フィールドを編集する場合、または領域をハイライトしていない場合、次の手順に従います。
注記: 5250画面は、24行x80カラムで構成されています。
必要に応じてフィールドを編集します。パラメータが適切である場合、[次へ]をクリックします。複数行ウィザードの2番目のパネルが表示されます。
注記: データを出力する場合、112複数行ウィザードを使用してデータを出力するを参照してください。
[XMLの使用形式]で、[入力]ラジオボタンを選択します。このパネルを使用して、複数の要素または画面の行を処理する繰り返しアクションを作成します。このアクションの使用方法は、すべてのコンポーネントで使用できる基本的な「要素の繰り返し」アクションと似ています。
[OITEM]要素をダブルクリックします。ウィンドウの下部にあるコメントペインに式が表示されます。この例では、OITEMがループされる要素です。
[OK]をクリックします。複数行ウィザードの2番目の画面に戻ります。ここでは、[対象]フィールドに新しい式が表示されています。
注記: 式ビルダを使用すると、Composerにより自動的に「エイリアス」が作成されます。この例では、OITEMというエイリアスが作成されています。エイリアスの詳細については、『exteNd Composerユーザガイド』を参照してください。
注記: データを出力する場合、112複数行ウィザードを使用してデータを出力するを参照してください。
この画面では、ページの最後に達したときに行う操作を複数行ウィザードに指示します。この例(109データの入力に使用する複数行アクションを追加するを参照)では、データは1ページのみであるため、[ 次のレコードセットまで繰り返す]チェックボックスはオンになっていません。
[完了]をクリックします。複数行ウィザードで作成したアクションがアクションモデルペインに表示されます。ここでは、[すべての複数行マップアクションをここに追加します!]というコメントがハイライトされています。
アクションモデルで、[すべての複数行マップアクションをここに追加します!]というコメントがハイライト表示されていない場合は、選択してハイライトします。
OITEMのチャイルド要素を、5250画面にある行項目フィールドの最初の行の適切なフィールドにドラッグアンドドロップします(次の図を参照)。
マップ元:入力DOM |
マップ先:5250の[ENTER ORDER 3270]画面 |
---|---|
OISKU |
PART |
OIDESC |
DESCRIPTION |
OIQTY |
QTY |
OICOST |
COST |
複数行アクションのブロック内にあるマップアクションは、画面の絶対的な位置ではなく、行での相対的な位置によってフィールドを参照することに注意してください。つまり、最初のマップアクションのターゲットは、$RECORD/FIELD[1]です。複数行のコンテキスト内でドラッグアンドドロップによってマップアクションを作成すると、これらのフィールドのインデックスが自動的に作成されて割り当てられます。
最終的なアクションモデルが次のように表示されます。
5250コンポーネントエディタのメニューバーで、[ファイル]、[保存]の順に選択するか、[保存]ボタンをクリックします。
51アニメーションを実行するの指示に従って、コンポーネントをテストします。
21新しい5250コンポーネントを作成するの指示に従って、コンポーネントを作成します。この例では、「5250SampleOutput」というコンポーネントが作成されています。このコンポーネントは、次のように5250コンポーネントエディタに表示されます。
正しい画面に移動します。 この例では、[ユーザID ]と[パスワード]フィールドにユーザIDとパスワードをそれぞれ入力し、[Program/Procedure]フィールドには「MENU」と入力する必要があります。
キーボードで<Enter>を押します。この例では、ネイティブ環境ペインに「INSTRUCTIONS」という5250画面が表示されます。
注記: また、ネイティブ環境ペインにある5250キーパッドツールバーで[Enter]を選択することもできます。このツールバーを表示するには、5250コンポーネントエディタのメニューバーから[表示]、[キーパッドツールバー]の順に選択します。
この例では、[TRANSACTION]フィールドに「BRWS」、[NUMBER]フィールドに「10001」が入力されています。
複数行アクションで使用するために、繰り返しデータを含む領域を手動で指定するか、その領域をハイライトする必要があります。 この例では、データ領域の右上隅から左下隅に向かってカーソルをドラッグしています。ドラッグした領域がグレーの背景色でハイライトされます。
注記: 最初のフィールドの「外側」にカーソルを置いてドラッグを開始してください。フィールド内でドラッグを開始すると、Composerではフィールド自体を移動しようとしているとみなされます。
5250コンポーネントエディタから、[アクション]、[新規アクション]、[複数行]の順に選択します。複数行ウィザードが表示されます。ダイアログボックスには、ハイライトした領域に基づいて自動的にデータが表示されます。
必要に応じてフィールドを編集します。パラメータが適切である場合、[次へ]をクリックします。複数行ウィザードの2番目のパネルが表示されます。
[XMLの使用形式]で、[出力]ラジオボタンを選択します。このパネルを使用して、複数の要素または画面の行を処理する繰り返しアクションを作成します。このアクションの使用方法は、すべてのコンポーネントで使用できる基本的な「要素の繰り返し」アクションと似ています。
[ACCINFO]要素をダブルクリックします。ウィンドウの下部にあるコメントペインに式が表示されます。この例では、ACCINFOがループされる要素です。
[OK]をクリックします。複数行ウィザードの2番目の画面に戻ります。ここでは、[対象]フィールドに新しい式が表示されています。
注記: 式ビルダを使用すると、Composerにより自動的に「エイリアス」が作成されます。この例では、ACCINFOというエイリアスが作成されています。エイリアスの詳細については、『exteNd Composerユーザガイド』を参照してください。
[次へ]ボタンをクリックします。複数行ウィザードの繰り返し画面が表示されます。この画面では、ページの最後に達したときに行う操作を複数行ウィザードに指示します。
[アテンションキーによって繰り返す]プルダウンリストから[F1]を選択します。
注記: 5250画面には、繰り返しキーに関する説明が表示されます。この例では、次のページに移動するには<F1>キーを押すという指示が[FILE BROWSE]画面に表示されていました。
[空白のレコード]ラジオボタンを選択します。 これにより、ループアクションの終了ポイントは空白のレコードであることを指定します。式ビルダを使用して、ループの終了ポイントに別のインジケータを設定することもできます。式ビルダの使用の詳細については、『exteNd Composerユーザガイド』を参照してください。
[完了]をクリックします。複数行ウィザードで作成したアクションがアクションモデルペインに表示されます。ここでは、[すべての複数行マップアクションをここに追加します!]というコメントがハイライトされています。
アクションモデルで、[すべての複数行マップアクションをここに追加します!]というコメントがハイライト表示されていない場合は、選択してハイライトします。
5250の[FILE BROWSE]画面から出力DOMにデータをドラッグアンドドロップします(次を参照)。
マップ元:FILE BROWSE |
マップ先:出力DOM |
---|---|
NUMBER |
ACCTID |
NAME |
NAME |
AMOUNT |
BALANCE |
5250コンポーネントエディタのメニューバーで、[ファイル]、[保存]の順に選択するか、[保存]ボタンをクリックします。
51アニメーションを実行するの指示に従って、コンポーネントをテストします。
該当するタブをクリックしてフィールドを編集した後、[OK]をクリックします。複数行ウィザードを使用してデータを入出力する方法については、前の節を参照してください。
5250接続には、5250コンポーネントの実行で問題となり得る、端末セッションで受信した予期しないメッセージ画面を処理するための特別な機能があります。このタイプのメッセージ画面の例としては、システム管理者が端末にシステムのシャットダウンまたはその他のイベントについて警告するための通知を送信した場合の画面があります。システムトランザクションを処理する通常の5250コンポーネントの実行時にこの画面が表示されることは予期できず、また必要ありません。通常、これらのシステムメッセージは、読んだ後でAIDキーを押すと消えます。
TN5250接続によって、特殊な画面ハンドラを定義し、コンポーネント処理の対象外にする画面に応答できます。単一の接続で複数の画面ハンドラを指定することもできます。接続リソースで画面ハンドラを指定することにより、ハンドラを一度指定すると、同じ接続を使用して複数のコンポーネントでそのハンドラを利用できるようになります。
注記: 接続の画面ハンドラはシステム管理者からのメッセージのみに限定されません。画面ハンドラを指定すると、端末のデータストリームで受信するどの画面に対しても応答することができます。
通常の方法で5250コンポーネントを作成します(つまり、接続とその他のリソースを必要に応じて作成し、次にコンポーネントを作成します)。
ScreenDoc DOMが表示されていない場合、メニューバーから[表示]、[ウィンドウのレイアウト]の順に選択し、次に[XMLレイアウト]をクリックします。ScreenDocを[表示]リストに移動し、[OK]をクリックします。
コンポーネントを保存し、開いたままにします。次の手順に従って、処理する特定の画面をキャプチャします。
注記: この作業には、システムオペレータ/管理者、または処理するメッセージ画面を設定した人の協力が必要です。
a. ログインアクションを含む画面のマップの後にくる最初の画面のマップアクションに、ブレークポイントを設定します(これがログオンコンポーネントである場合、KeepAliveまたはLogonセクションの最初のアクションにブレークポイントを設定します)。
b. <F5>キーを押して、コンポーネントをアニメーション表示します。
d. <F6>キーを押して、アニメーション表示を一時停止します。
f. <Enter>キーを押すと、ネイティブ環境ペインには、システムメッセージが表示され、Screen Docペインには、メッセージがXML形式で表示されます。
この画面を処理する画面として特定するためのデータを持つテストフィールドを選択します。たとえば、「Display Messages」というデータを持つ画面タイトルフィールドを選択します。
ScreenDocで、テストフィールドのXML表示にマウスのポインタを合わせ、XPathの完全なロケーション(ScreenDoc/SCREEN/FIELD[5]など)をメモします。
<Shift>+<F5>キーを押してアニメーション表示を停止し、ホストシステムをサインオフします。次に、保存せずにコンポーネントを閉じます。
プロトコルをサポートするには[Telnet環境を有効にする]チェックボックスをオンにします。このチェックボックスがオフの場合、[リソース名]テキストフィールドを無効にしてクリアします。
式フィールドで、テストデータをテストフィールドのXPathと比較する式(例: ScreenDoc.XPath("string(SCREEN/FIELD[5])")= =" Display Messages")を入力します。"
注記: 比較が適切に実行されるかどうかを確認するには、Xpath文字列関数を適用します。
ログオンおよび画面のマップアクションを通過したコンポーネントをアニメーション表示したり、ブレークポイントの設定、システムメッセージの開始、および送信キーの入力アクションまでアニメーション表示を行うなどして、システム画面ハンドラをテストします。
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...