第4章
「アクション」は、プログラミングステートメントに類似しており、パラメータの形式で入力を受け付け、特定のタスクを実行します。『Composerユーザガイド』のアクションに関する章を参照してください。
5250コンポーネントエディタ内では、XMLドキュメントを処理したり、非XMLデータソースと通信したりするための一連の命令が、「アクションモデル」の一部として作成されます。アクションモデルは、AS/400とXMLドキュメント間でのすべてのデータマッピング、データ変換、データ転送、およびコンポーネントとサービス内でのデータ転送を実行します。
アクションモデルは、アクションのリストから構成されています。アクションモデル内のすべてのアクションは連携して機能します。たとえば、請求書のデータをディスクから読み取り、データをAS/400の在庫データベースから取得し、一時XMLドキュメントに結果をマップして変換し、変換されたデータを出力XMLドキュメントにマップするアクションモデルを構築できます。
このようなアクションモデルは、複数のアクションから構成されています。たとえば、次のようなアクションが含まれます。
5250 Connectには、exteNd Composer製品には含まれていない5250固有のアクションがあります。
|
5250アクション |
説明 |
|---|---|
|
画面のマップ |
特定のトランザクション画面に関連したアクションを配置する、アクションモデル内の場所を示します。 |
|
複数行 |
このアクションでは、DOMと5250画面の間で、複数対複数のデータ関係のマップを指定することができます。 |
|
アテンションキーの送信 |
このアクションは、AIDキーを押すと、自動的に作成されます。このアクションを編集して、ホストに返信するキーを変更できます。 |
画面のマップアクションは、特定のトランザクション画面が表示されるアクションモデル内の場所を示すだけでなく、エラーのチェックにも使用されます。画面が最初に記録されると、Composerにより、画面のフィールド数が保存されます。この数は後で、記録されたアクションが適切な情報を返すかどうかを確認するためのエラーチェックの実行中に比較されます。画面のマップアクションは、アクションモデル内で次のように表示されます。

複数行アクションは、XMLドキュメントのデータを5250画面に入力したり、5250画面のデータをXMLドキュメントに出力したりするために使用できます。基本的にこのアクションでは、あるドキュメントまたは画面から別のドキュメントまたは画面に複数のデータ行を自動的にマップする繰り返しループがアクションモデル内に作成されます。複数行アクションの詳細については、101ページの「5250複数行ウィザードについて」で説明しています。
ネイティブ環境ペインのツールバーに表示されるAIDキー 、またはそれに対応するキーボードキー、あるいはキー(26 ページの「5250キーボードサポートについて」 を参照)を選択するたびに、アクションモデル内でにアテンションキーの送信アクションがマップされます。

アクションモデルでアテンションキーの送信アクションをダブルクリックすると、キーを編集できるダイアログボックスが表示されます。ドロップダウンリストボックスから、値キーを選択します。カーソル位置を上書きするためのチェックボックスをオンにします。必要に応じて行とカラムを編集するか、式ビルダのアイコンをクリックして、計算を追加します。

TN5250 接続リソースには、[アクション式ビルダ]ダイアログボックスからアクセスできる、 ユーザIDおよび パスワードという2つの項目があります。これらは、接続が確立されたときにComposer画面に最初に表示される、[ユーザID]と[パスワード]というフィールドで使用されます。これらの変数を画面にマップすると、画面にマップアクションを配置するためにユーザIDとパスワードを入力する必要がなくなります。
たとえば、ソースの式を$5250/LOGIN/PASSWORD、ターゲットXpathを$SCREENDOC/FIELD(5)と指定したマップアクションを作成できます。

5250コンポーネントは、すべてのUIコンポーネントと同様、アクションモデルの主な部分が自動的に作成されるという点で、他のコンポーネントとは異なります。アクションモデルの自動作成は、ネイティブ環境ペインにおいてホストで有効なセッションと通信している間、Composerでその操作内容が一連のアクションとしてアクションモデルに記録することによって行われます。他のコンポーネントでは、マップ、変換、およびタスクの転送を実行するためのアクションを手動でアクションモデルに作成する必要があります。 5250コンポーネントを作成する場合、基本的には、コンポーネントを作成するのに必要なキー入力と画面ナビゲーションを指定することによって、アクションモデルペインでアクションとして入力するAS/400への要求と応答、およびAS/400からの要求と応答を記録します。たとえば、5250のネイティブ環境ペインで[入力]ボタンを選択すると、次の図に示されているように、アクションモデルにアクションが記録されます。また、他のコンポーネントと同様に、アクションモデルにアクションを追加することもできます。
注記: 5250コンポーネントを正しく作成するためには、5250のコマンドおよびXML統合プロジェクトで使用するアプリケーションを理解しておく必要があります。
21 ページの「5250コンポーネントを作成する前に」 の指示に従って、5250コンポーネントを作成します。新しく作成した5250コンポーネントは、5250コンポーネントエディタウィンドウに表示されます。
注記: 5250コンポーネントエディタには、XMLマップコンポーネントエディタのツールバーに表示されるボタンの他に、[記録]ボタンと[接続/接続解除]ボタンがあります(図を参照)。
[記録]ボタンをクリックします。ネイティブ環境ペインに入力画面が表示され、アクションモデルペインに「画面のマップ」アクションが記録されます。
[ユーザID]、[パスワード]、およびその他必要な情報を入力します。この例では、[ユーザID ]、[パスワード]、[プログラム/プロシージャ]、[現在のライブラリ]に入力する必要があります。
キーボードの<Enter>キーを押すか、ツールバーが表示されている場合(表示するには[表示]、[キーパッドツールバー]の順にクリック)、[Enter]ボタンをクリックします。この例では、5250ペイン[ENTER PART]画面が表示されます。
入力DOMから、5250の[ENTER PART]画面の[SKU]フィールドにSKUデータをドラッグします。このアクションは、アクションモデルペインに記録されてステータスバーに表示されます。
注記: マップアクションを使用して入力DOMのSKUを[ENTER PART]画面の[SKU]フィールドにマップすることもできますが、ドラッグアンドドロップの方がよりスピーディで簡単です。マップアクションの詳細については、『exteNd Composerユーザガイド』を参照してください。
5250のペインで[Enter]ボタンをクリックします。 5250の[ENTER PART]画面には、SKUに関連付けられたデータが表示されます。
[ENTER PART]画面から出力DOMにSKU番号などの要素をドラッグアンドドロップします。ドラッグアンドドロップしたデータは出力DOMに赤で表示されます。
[ENTER PART]画面から出力パートの目的のフィールドに必要なデータ要素をすべてドラッグアンドドロップするまで、操作を繰り返します。[ENTER PART]画面から出力パートに要素をドラッグするたびに、アクションモデルペインにアクションが記録されます。
以前に記録したアクションモデルを編集する必要が生じる場合があります。他のコンポーネントを編集する場合とは異なり、5250コンポーネントの編集には、特別な注意が必要です。5250コンポーネントを実行すると、コンポーネントが正常に動作するように、特定の画面とデータを表示する一連のアクションが順に再生されます。そのため、コンポーネントを編集する際には、アクションモデルのシーケンスが以前に記録したホストトランザクションの実行シーケンスと矛盾しないように注意する必要があります。
一般的に、正しく編集を行うために次のことをお勧めします。
「Map Screen」というアクションブロックを切り取ってコピーしたり、アクションモデル内の別の場所に貼り付けたりしないでください。
アクションモデル内でマップアクションをコピーして貼り付けた後は、画面を処理するそれらのアクションを個々に確認し、慎重に編集してください。
画面を処理する新しいマップアクションを追加するには、Composerのドラッグアンドドロップ機能を使用してください。アクションモデルで目的の行までアニメーション表示した後、一時停止し、記録モードをオンにします。これにより、アクションモデルは正しいScreenDoc DOMやScreenDoc DOM内のフィールドと同期が取られます。
アニメーション表示中は、アクションモデル内の複数行に関連する行(またはアクション)を削除しないでください。それらを削除すると、コンポーネントが適切に動作しなくなる場合があります。
次の手順では、以前に記録したセッションで既存のアクションを変更する方法を説明します。
編集する対象となる、以前に記録されたアクションモデルを含むコンポーネントを開きます。5250コンポーネントエディタウィンドウにコンポーネントが表示されます。
[ブレークポイント/終了までのステップ]ボタンをクリックします。アクションモデルは、最初から手順3で設定したブレーポイントまでのすべてのアクションを実行します(次の図を参照)。
51 ページの「アニメーションツールの使用」 の指示に従って、コンポーネントをテストします。
セッションの記録中に、キーボードで<Enter>キーを押すか、5250ネイティブ環境ペインのアテンションキーの1つをクリックすると、アクションモデルにアクションが記録されます。例は次のとおりです。

これらのアクションは、他のアクションと同様に、削除、移動、またはコピーすることができますが、メニュー操作などを伴うため、コンポーネントの実行に影響を及ぼすことに注意してください。または、アテンションキーアクションをダブルクリックして、ダイアログボックスから編集することもできます。

次の手順では、以前に記録したセッションで新しいアクションを追加する方法を説明します。
アクションを追加する、記録済みのアクションモデルを含むコンポーネントを開きます。5250コンポーネントエディタウィンドウにコンポーネントが表示されます。
[ブレークポイント/終了までの実行]ボタンをクリックします。アクションモデルは、最初から手順3で設定したブレーポイントまでのすべてのアクションを実行します(次の図を参照)。
Composerのドラッグアンドドロップ機能を使用して、画面と動作する新しいマップアクションを追加します。選択した行のすぐ下に新しいアクションが追加されます。
51 ページの「アニメーションツールの使用」 の指示に従って、コンポーネントをテストします。
エイリアスを使用するループにマップアクションを追加する場合、次の操作を実行します。
以前記録したアクションモデルにエイリアスアクションを追加する
[アクション]メニューから、[新規アクション]、[マップ]の順に選択します。[マップ]ダイアログボックスが表示されます。
次の手順では、以前に記録したセッションでアクションを削除する方法を説明します。
Composerには、コンポーネントをテストできるアニメーションツールが含まれています。5250コンポーネントエディタのツールバーには、[実行]ボタンがあり、このボタンを使用するとアクションモデル全体を実行して、コンポーネントが意図したとおりに動作するか検証できます。
[表示]メニューから、[XMLドキュメントの展開]を選択します。これにより、XMLドキュメントのペアレント、チャイルド、データ要素などがすべて展開され、実行されたコンポーネントの結果を確認できます。XMLドキュメントを展開しないと、指定したデータが5250環境から出力DOMに移動されていることを確認できません。
アクションモデルには、1つまたは複数のブレークポイントを設定することにより、アクションモデルの特定のセクションをテストできるアニメーションツールがあります。これらのツールを使用すると、適切に動作するアクションをすべて実行して、問題の生じたアクションで停止してから、問題のアクションを1つずつトラブルシューティングすることができます。
注記: アニメーションツール機能の簡単な例は、次のとおりです。すべてのアニメーションツールおよびその機能の詳細については、『exteNd Composerユーザガイド』を参照してください。
5250コンポーネントを開きます。5250コンポーネントエディタウィンドウにコンポーネントが表示されます。
注記: アニメーションモードと記録モードは、コンポーネントでは互いに排他的なモードです。アニメーション中に記録を行うには、アニメーションを一時停止または停止してから、記録モードをオンにする必要があります。
アクションモデルのツールバーで[アニメーションの開始]ボタンをクリックするか、キーボードの<F5>キーを押します。ツールバーのすべてのツールが有効になります。
[ステップイン]ボタンをもう一度クリックします。ネイティブ環境ペインの入力フィールドに「PART」というコマンドを入力するという指示がハイライト表示されます。
[ステップイン]ボタンをもう一度クリックします。アクションモデルで、SKUを入力DOMから[ENTER PART]画面の[SKU]フィールドにドラッグアンドドロップするという指示がハイライト表示されます。
[ステップイン]ボタンをもう一度クリックします。入力DOMのSKUデータが[ENTER PART]画面の[SKU]フィールドに表示されます。
[ステップイン]ボタンをもう一度クリックします。[ENTER PART]画面に、SKU番号に関連付けられたデータが表示されます。
[ステップイン]ボタンをもう一度クリックします。アクションモデルで、SKUデータを[ENTER PART]画面から出力DOMにドラッグするという指示がハイライト表示されます。
[ステップイン]ボタンをもう一度クリックします。[ENTER PART]画面のSKUデータが出力DOMの[SKU]フィールドに表示されます。
[ENTER PART]画面のフィールドにあるすべてのデータ要素が出力DOMに表示されるまで、[ステップイン]ボタンをクリックします(次の図を参照)。
接続付きコンポーネントアクションは、5250コンポーネントから別のコンポーネントを呼び出して同じ接続を共有できるという独特な特徴を備えています。 このアクションを使用すると、大きなコンポーネントを5250のメインコンポーネントと複数のサブコンポーネントに分割できるため、アクションモデルの管理が容易になります。メインコンポーネントがサブコンポーネントと接続を共有することによって、ランタイム時における接続のオーバーヘッドやトランザクションのナビゲーションが大幅に減少します。作業を開始する前に、必要なサブコンポーネント数を決定し、記録開始時に使用する(アクションが記録されていない)シェルを作成して保存してください。
サブコンポーネントを呼び出す準備ができるところまで、メインコンポーネントの基本的な構造を作成して記録します。この例では、メインコンポーネントは「5250 Caller」です。
メインメニューから、またはマウスの右ボタンをクリックして、[新規アクション]>[接続付きコンポーネント]を選択します。次のダイアログボックスが表示されます。
[コンポーネントタイプ]プルダウンリストから、コンポーネントタイプの名前を選択します。[コンポーネント名]プルダウンリストから、コンポーネントの名前を選択します。
変更する必要がある場合、渡されるIDをプルダウンリストから選択します。変更する必要がある場合、返されるIDをプルダウンリストから選択します。[OK]をクリックします。
マップコンポーネントをアニメーション表示し、接続付きコンポーネントアクションをステップインすると、サブコンポーネントが開きます。画面の表示が「5250Called」というコンポーネントに変更されることを確認します。
5250コンポーネントエディタのスタイルシートの機能では、ネイティブ環境ペインの表示方法に関するオプションを選択できます。
5250コンポーネントエディタウィンドウの[コンポーネント]メニューから、[スタイルシート]を選択します。[スタイルシートエディタ]ウィンドウが表示されます。
[スタイルシート]ドロップダウンリストからスタイルシートを選択します。スタイルシートエディタの使用の詳細については、17ページの「スタイルシートリソースの作成」を参照してください。
画面のマップアクションおよび複数行アクションに加えて、Composerにあるすべての基本的なアクションおよび高度なアクションも使用できます。基本的なComposerアクションの完全なリストは、『Composerユーザガイド』の第7章にあります。第8章には、より高度なアクションのリストがあります。
この節では、アニメーションツールの実行時に発生する可能性がある一般的なエラーについて説明します。
このエラーは、特定のトランザクションのアニメーション表示または実行で発生します。このエラーを招く原因の1つに、ユーザからの応答(AIDキーを押すなど)を「必要としない」端末に画面を送信した後、応答を「必要とする」画面を送信する場合があります。たとえば、「お待ちください」などのメッセージ画面を表示した後で、ユーザが実際に使用するトランザクション画面を表示するよう設計されたトランザクションがあります。トランザクションによって画面の表示が制御されているため、ユーザはメッセージ画面に応答できません。このようなトランザクションの動作は、アニメーション表示中に問題を引き起こします。アクションからアクションへ移行する際、Composerの画面のマップアクションにより、各画面のフィールド数が数えられ、コンポーネントに記録した元のフィールド数と比較されます。対応する画面のマップアクションに移行する前に、トランザクションでは2番目の画面を送信できるため、フィールド数の同期が取れなくなります。
このエラーを修正するには、フィールド数が変更された理由を特定し、次のいずれかの方法を使用します。
アクションモデルで、失敗した画面のマップアクションをダブルクリックし、フィールド数の変数を正しいフィールド数に変更します。
画面のマップアクションをダブルクリックしてフィールド数のチェックを無効にし(次の図を参照)、Try On Errorアクション内で画面のマップアクションのブロックごと次の行に折り返します。これにより、例外がスローされてコンポーネントの実行が中止される代わりに、条件付きでフィールド数を数える処理が行われます。

[ナビゲーションオプション]ダイアログボックスで 指定できる内容は、次のとおりです。
エラーにする「フィールド数」を入力する。ランタイム時にフィールド数が適切でない場合はエラーが発生します。(前の手順で適用した)Try/OnErrorアクションによってこのエラーが検出されます。
[接続のデフォルトを上書き]をオンにして、ナビゲーションアクションの[画面待機時間]フィールドに入力された秒数に基づいて接続のデフォルトを上書きする
マップ画面のフィールドの数をチェックするボックスを無効にし、フィールド数をチェックする独自のアクションを追加する。これには、アプリケーションに必要なフィールド数をチェックする障害のスローアクション(例: ScreenDoc.XPath ("count(SCREEN/FIELD)")>68)を作成する方法もあります。次に例を示します。
フィールド数の同期が取れなくなる場合、別の原因も考えられます。たとえば次のとおりです。
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...