変数とインポートした Java クラス

変数とインポート型の概要

変数は、マクロにプログラミングで高度な動作を加えるために役立ちます。変数を使用すれば、値の格納、結果の保管、カウント、テキスト・ストリングの 保管、結果の記憶など、プログラミングに必要なあらゆることを実行できます。

標準データ型 (string、integer、double、boolean、および field) のいずれかに 属する変数を作成できます。

また、Java クラスを表すインポート型に属する変数も作成できます。その後クラスのインスタンスを作成し、インスタンスに対してメソッドを呼び出すことが できます。この能力により、Java ランタイム環境 (JRE) ライブラリー、Host Access Toolkit 製品のライブラリー、ユーザー自身がインプリメント したクラスやライブラリー、他のソースからの Java クラスやライブラリー など、Java クラス・ライブラリーに提供されている豊富な機能が 利用できるようになります。

拡張マクロ形式が必要

変数を使用するには、マクロに対して拡張マクロ形式を使用する必要が あります (マクロ形式の選択を参照)。このため、基本マクロ形式のマクロに変数を追加するには、 マクロを拡張マクロ形式に変換するかどうか決定する必要があります。基本マクロ形式の古いマクロが多数のユーザーに使用されていて、 問題なく機能している場合は、マクロを現状のままにしておきたい場合があります。

ただし、記録済みマクロはすべて基本マクロ形式で記録されていることに 注意してください。つまり、マクロを最近記録し、そのマクロの開発を始めようとしている場合は、 単に拡張マクロ形式への切り替えをまだ済ませていないだけかもしれません。

マクロ・エディターは、基本マクロ形式のままのマクロに変数を定義しようとすると、 ポップアップ・ウィンドウに次のメッセージを表示して、これら両方の 状況に対応します。

図 48. 注意喚起メッセージ
You are attempting to use an advanced macro feature. If you choose to continue,
your macro will automatically be converted to advanced macro format. Would you
like to continue?

作成するマクロで変数を使用する予定にしている場合は「はい (Yes)」を クリックし、基本マクロ形式のマクロを変換したくない場合は「いいえ (No)」 をクリックします。

変数の有効範囲

それぞれの変数のスコープは、変数を作成する対象のマクロに関してグローバル です。つまり、マクロにある任意のマクロ画面から、マクロの変数すべてに アクセスできます。マクロ画面内のアクションまたはディスクリプターが その変数にアクセスするには、単に変数名を使用するだけです。

例えば、$intPartsComplete$ という名前の変数を 0 に初期化したとします。マクロの進行に伴って、次のように変数を使用できます。

  1. ScreenC がタスクの部分 1 を完了し、変数更新アクションを 使用して $intPartsComplete$ を増分する。
  2. ScreenG がタスクの部分 2 を完了し、変数更新アクションを 使用して $intPartsComplete$ を増分する。
  3. ScreenM の条件アクションが、部分 1 と 2 のどちらが現時点で 完了しているかテストする。結果に応じて、マクロは ScreenR または ScreenS を次に処理するマクロ画面 として予期する。
  4. ScreenS がタスクの部分 3 を完了し、変数更新アクションを 使用して $intPartsComplete$ を増分する。
  5. ScreenZ がメッセージ・アクションを使用して $intPartsComplete$ の 値を表示する。

この例では、いくつかの異なるマクロ画面のアクションが、 変数 $intPartsComplete$ の読み取りまたは書き込みを実行できます。

「変数 (Variables)」タブの概要

変数は 1 つの画面ではなくマクロ全体に属するので、 それに見合うように変数用の上位タブが別個に用意されています。「変数 (Variables)」タブを使用して、以下のことができます。

標準データ型に属する変数を作成するには、マクロ・エディターの「変数 (Variables)」タブを使用します。図 49 に、「変数 (Variables)」タブの 例を示します。

図 49. 「変数 (Variables)」タブ

上の図では、マクロ・エディターの「変数 (Variables)」タブが選択されています。現在選択されている変数の名前 $strUserName$ が、 「変数 (Variables)」リスト・ボックスに表示されています。その他 3 つのフィールド、「名前 (Name)」入力フィールド、 「型 (Type)」リスト・ボックス、および「初期値 (Initial Value)」 入力フィールドには、マクロ・ランタイムがこの変数を作成するために 必要とする情報があります。

「変数 (Variables)」リスト・ボックスには、このマクロ用に作成された 変数すべての名前があります。編集または除去する変数をこのリスト・ボックスから選択でき、 また変数を新規に作成するための <新規変数> 項目もあります。

現在選択されている変数の項目が、別のストリングの後に括弧で囲んで 表示されていることに注意してください。

Variable1($strUserName$)

ストリング Variable1 は、作成した変数の数を示す 設定値で、マクロ・スクリプトには保管されません。変数の実名は $strUserName$ であり、 変数を使用するときには、マクロ全体でこの名前を単独で使用する必要があります。

変数名 $strUserName$ がドル記号 ($) で囲まれていることに お気付きかもしれません。これは要件であり、マクロ内で変数を使用する ときには、必ず変数名をドル記号 ($) で囲む必要があります。

「名前 (Name)」入力フィールドは、現在選択されている変数 $strUserName$ の名前を表示します。既存の名前に上書き入力することによって、変数名を変更できます。通常、このフィールドは、新規に作成した変数に名前を割り当てるためだけに 使用してください。後でいつでもこのパネルに戻ってこの変数の名前を変更できますが (例えば $strUserFirstName$ に)、 マクロ内のどこかで、アクションやディスクリプターにこの変数の以前の名前を すでに使用している可能性があるので注意してください。この「変数 (Variables)」 タブで名前を変更した場合は、マクロ内でこの変数を使用したすべての場所を再検討して、 以前の変数名を新しい変数名に変更する必要があります。

任意の変数名を選択できますが、選択できる文字にはいくつかの制限が あります (変数名と型名を参照)。本書で行っているように、データ型の省略形で始まる名前を選択する必要は ありません (ストリング変数 $strUserName$str のように)。

「型 (Type)」リスト・ボックスには、変数に使用可能な型がリストされ、 新規変数に使用する型をここから選択できます。標準型は、string、integer、double、 boolean、および field です。また、java.util.Hashtable などの Java クラスをインポート型としてインポートすると、「型 (Type)」リスト・ボックスは このインポート型を取り込み、図 50 に示すように使用可能な型のリストに 追加します。

図 50. インポート型 を宣言した後の「型 (Type)」リスト・ボックスの内容
string
integer
double
boolean
field
java.util.Hashtable

このリスト・ボックスは、新規に作成した変数に型を 割り当てるためだけに使用してください。後でこのパネルに戻ってこの変数の型を別の型に変更できますが、 変数名の場合と同様に、マクロの中で最初に選択した型を必要とする コンテキストで、すでにこの変数を使用している可能性があるので 注意してください。この場合、該当するそれぞれの個所を調べて、変数を使用しているコンテキスト が新しい型に適しているかどうか確認する必要があります。

「初期値 (Initial Value)」入力フィールドには、変数の初期値を指定できます。マクロ・エディターは、型に応じて次のデフォルト値を提供します。

表 22. 変数のデフォルト初期値
変数の型: デフォルト初期値:
string ストリングなし
integer 0
double 0.0
boolean false
field (初期値なし)
(任意のインポート型) ヌル

新しい初期値を指定するには、単にデフォルト値に上書きして入力します。

「除去 (Remove)」ボタンは、現在選択されている変数を除去します。

「インポート (Import)」ボタンと「インポート (Import)」ポップアップ・ウィンドウ については、Java クラスのインポート型の作成で説明します。

変数の新規作成

マクロ・エディターで変数を新規に作成するには、 まず「変数 (Variable)」リスト・ボックスの最後にある「<新規変数> (<new variable>)」項目をクリックします。マクロ・エディターは変数を新規に作成し、いくつかの初期特性を割り当てます。これらの特性は、ユーザーがニーズに合うように修正する必要があります。初期値は次のとおりです。

  1. 初期名 ($a1$ など)。
  2. 初期型 (string)。
  3. 初期値。型によって異なります (表 22 を参照)。

次に、新規変数に必要な値を設定する必要があります。例えば、 画面をカウントするための整変数を作成し、その初期値を 1 にする必要がある 場合は、次のように初期値を設定します。

  1. 「名前 (Name)」入力フィールドに、名前 $intScreenCount$ を入力します。
  2. 「型 (Type)」リスト・ボックスから、integer データ型を選択します。
  3. 「初期値 (Initial Value)」フィールドに 1 を入力します。

「変数 (Variables)」タブのほかに、いくつかの便利な位置で、マクロ・エディターから 変数を新規に作成するためのポップアップ・ウィンドウにアクセスできます。例えば、変数更新アクションの場合、「名前 (Name)」リスト・ボックスには すでに作成済みの変数名がすべて表示されるだけでなく、 「<新規変数> (<New Variable>)」項目も表示されます。この項目をクリックすると、変数を新規に作成するためのポップアップ・ウィンドウ が開きます。このポップアップ・ウィンドウを使用して作成した変数は、 「変数 (Variables)」タブで作成した変数と同等です。

コード・エディターでは、<create> エレメントを使用して 変数を新規に作成します。マクロ・スクリプト内の変数すべてを含む収容エレメント <vars> があり、 それぞれの変数ごとに <create> エレメントがあります。図 51 に、5 つの <create> エレメント を含む <vars> エレメントを示します。

図 51. サンプル <vars> エレメント
<vars>
   <create name="$strAccountName$" type="string" value="" />
   <create name="$intAmount$" type="integer" value="0" />
   <create name="$dblDistance$" type="double" value="0.0" />
   <create name="$boolSignedUp$" type="boolean" value="false" />
   <create name="$fldFunction$" type="field" />
</vars>

上の図の <vars> エレメントは、それぞれの標準データ型 (string、integer、double、 boolean、および field) から変数を 1 つ作成します。それぞれの <create> エレメントの属性は、「変数 (Variables)」タブ のフィールドと一致していることに注意してください。name 属性は変数名を指定し、type 属性 は型を指定し、value フィールドは初期値を指定します。

変数の作成 (<create> エレメント) は、すべて <vars> エレメントの 中で行う必要があります。<vars> エレメント自体は、<import> エレメントがあればその後 (次の セクションを参照)、かつ最初のマクロ画面 (<screen> エレメント) の 前に置く必要があります。

Java クラスのインポート型の作成

Host On-Demand マクロは、Java クラスをインポートする方法として、 インポート型を使用します。つまり、インポート型をまず作成し、特定の Java クラスに関連付ける必要が あります。この作業は、マクロごとに、Java クラス 1 つに対して 1 回のみ行います。インポート型を作成するには、次の手順で行います。

  1. 「変数 (Variables)」タブの「インポート (Import)」ボタンを クリックする。「インポート (Import)」ポップアップ・ウィンドウが 表示されます。
  2. 「インポート型 (Imported Types)」リスト・ボックスで、 項目「<新規のインポート型> (<new imported type>)」を選択する。
  3. 型のクラス名を入力する (例: java.util.Hashtable)。パッケージ名 (あれば) を含む、完全修飾クラス名を入力する必要があります。
  4. 短縮名を入力する (例: Hashtable)。短縮名を指定しない場合、マクロ・エディターは 完全修飾クラス名を短縮名として使用します。短縮名を指定すると、インポート型を参照する際に、 短縮名または完全修飾クラス名のどちらも使用できます。
  5. 「OK」をクリックする。

このインポート型に属する変数を作成するには、 変数を通常の方法で作成しますが、インポート型を変数の型として 選択します。インポート型の変数を作成するには、次の手順で行います。

  1. 「変数 (Variables)」リスト・ボックスの最後にある 「<新規変数> (<new variable>)」項目をクリックする。マクロ・エディターは、名前 ($a1$ など)、型 (string)、 初期値 (ブランク) など、デフォルトの初期値を通常どおり表示します。
  2. 「名前 (Name)」入力フィールドに、任意の名前 (例: $ht$) を入力する。
  3. 「型 (Type)」リスト・ボックスで、インポート型を選択する。例えば、Hashtable (型をインポートしたときに短縮名を 指定した場合)、または java.util.Hashtable (完全修飾クラス名と 同じ、デフォルトの短縮名を受け入れた場合) を選択します。
  4. 「初期値 (Initial Value)」フィールドでは、 フィールドをブランクのままにする (初期値は null になる) か、 クラスのインスタンスを戻すメソッドを 指定できます。例えば、$new Hashtable()$ (短縮名を使用)、 または $new java.util.Hashtable()$ (完全修飾クラス名を使用) を 指定します。

コンストラクターはドル記号 ($) で囲む点に注意してください。変数の名前 をドル記号で囲む必要があるように、Java メソッドの呼び出しも ドル記号で囲む必要があります (これは、ドル記号で囲むことにより、 項目を評価する必要があることをマクロ・ランタイムに示すためです)。

「インポート (Import)」ポップアップ・ウィンドウに戻ると、 「インポート型 (Imported Types)」リスト・ボックスを使用して 型を新規に作成でき、すでに作成済みの型を編集または削除することも できます。型を新規に作成するには、リストの最後にある 「<新規のインポート型> (<new imported type>)」 をクリックします。型を編集するには、「インポート型 (Imported Types)」リスト・ボックス からタイプを選択し、「クラス (Class)」と「短縮名 (Short Name)」の 入力フィールドで値を変更します。型を除去するには、型を選択して「除去 (Remove)」をクリックします。

短縮名を指定する際には、特定の制限のもとで任意の名前を使用でき ます (変数名と型名を参照)。

コード・エディターでは、<type> エレメントを使用してインポート型を 作成します。マクロ・スクリプト内のインポート型すべてを含む収容エレメント <import> があり、 それぞれのインポート型ごとに <type> エレメントがあります。図 52 は、インポート型 を宣言する <import> エレメント、およびインポート型に 属する変数を作成して初期化する後続の <vars> エレメントを示しています。

図 52. インポート型とその型の変数
<import>
   <type class="java.util.Hashtable" name="Hashtable" />
</import>

<vars>
   <create name=$ht$ type="Hashtable" value="$new Hashtable(40)$" />
 </vars>

上の図で、<import> エレメントには <type> エレメントが 1 つ含まれ、 このエレメントには class 属性 (完全修飾クラス 名 java.util.Hashtable を指定) と name 属性 (短縮名 Hashtable を指定) があります。<vars> エレメントには <create> エレメントが 1 つ含まれ、 このエレメントは名前 ($ht$)、型 (Hashtable)、 および初期値 (ここでは null ではなく、クラスのインスタンス を戻すコンストラクター $new Hashtable(40)$ の呼び出し) を 通常どおり指定します。

コード・エディターを使用している場合は、インポート型 (<type> エレメント) を すべて <import> エレメント内に入れる必要があります。<import> エレメント 自体は、<HAScript> エレメントの内部 (<HAScript> エレメントを 参照)、かつ <vars> エレメントの前に置く必要があります。

注意を必要とする問題

Java ライブラリーまたはクラスの配置

マクロの再生中に、マクロ・ランタイムが Java メソッドの呼び出しを処理すると、 マクロ・ランタイムは、クラスを検出するまで、使用可能なすべての Java ライブラリー ・ファイルとメソッドが所属するクラスのクラス・ファイルを検索します。

Java ライブラリーまたはクラスの配置は、クラスを含むライブラリー・ファイルまたは クラス・ファイルを、マクロ・ランタイムがマクロの再生中に検出できる場所に配置する ことから構成されます。

以下のタイプの Java クラスを配置する必要はありません。

マクロ・スクリプトによって呼び出されるメソッドを含むその他の Java クラスは、 マクロ・ランタイムが検出できる場所にユーザーが配置する必要があります。環境に応じて、クラス・ファイルとして、または Java クラスを 含むライブラリーとして Java クラスを配置できます。

Java ライブラリーとクラスの配置について詳しくは、 「Host On-Demand 計画、インストール、および構成」 の『カスタマー提供の Java アーカイブおよび Java クラスのデプロイ (Deploying customer-supplied Java archives and classes)』を参照してください。

変数名と型名

変数名の規則は次のとおりです。

型名の規則は次のとおりです。

マクロ間での変数の転送

1 つのマクロを別のマクロに「チェーニング」する (戻りのない呼び出し) PlayMacro アクションの場合は、 呼び出し側マクロのすべての変数とその値をターゲット・マクロに転送できます。ターゲット・マクロは、自身の変数と転送された変数の両方に アクセスできます (PlayMacro アクション (<playmacro> エレメント)を参照)。

フィールド変数

フィールド変数は、ストリング変数の一種です。フィールド変数は、 ストリング変数と同様にストリングを格納し、ストリング変数が有効である すべてのコンテキストでフィールド変数を使用できます。

ただし、フィールド変数にストリングが格納される方法について、 フィールド変数とストリング変数は異なっています。フィールド変数に格納されるストリングは常に、マクロ・ランタイム が現行セッション・ウィンドウ内の 3270 または 5250 フィールドから 読み取るストリングです。マクロ・ランタイムが このストリングを 3270 または 5250 フィールドから読み取るようにするには、 次の項目を指定して変数更新アクションを作成する必要があります。

  1. フィールド変数の名前 ($fldFilename$ など)。
  2. 位置ストリング ('5,11' のように、コンマで区切った 1 対の 整数を含むストリング)。

マクロ・ランタイムは、変数更新アクションを実行するときに 次のステップを行います。

  1. セッション・ウィンドウ内で、位置ストリングに指定された行と列の 位置を検索する。
  2. その行と列の値が位置指定している 3270 または 5250 フィールド を検索する。
  3. フィールドの内容全体を読み取る。
  4. フィールドの内容全体をストリングとしてフィールド変数に格納する。

詳しくは、フィールド変数に対する変数更新アクションを参照してください。

変数の使用

変数が初期化される時点

マクロ・ランタイムは、マクロの再生を開始するとき、マクロ画面を 処理する前に変数に初期値を割り当てます。

標準型に属する変数の使用

変数が保持する値の使用

標準型 (string、integer、double、boolean) に属する変数は、 同じ型の即時値 ('Elm Street'、10、4.6e-2、true など) とほぼ同じ方法で使用できます。

ただし、特定のコンテキストでは変数を使用できません。マクロ・エディターでは、次のコンテキストで変数を使用できません。

コード・エディターでは、次のコンテキストで変数を使用できません。

標準型に属する変数への値の書き込み

標準型に属する変数には、次の方法で値を書き込むことができます。

制限

標準型の変数に、次の値のいずれかを割り当てることはできません。

標準型の変数に Java オブジェクトを書き込む

標準型の変数に Java オブジェクトを書き込むと、マクロ・ランタイムは インポート型の toString() メソッドを呼び出してから、 結果ストリングを変数に割り当てることを試みます。

インポート型に属する変数の使用

変数が保持する値の使用

インポート型に属する変数に格納されている値は、 次のように使用できます。

制限

次の型のデータは、インポート型の変数に割り当てることはできません。

インポート型の変数にマクロがこれらの無効な型の値を割り当てようと すると、マクロ・ランタイムはランタイム・エラーを生成し、マクロを停止します。

インポート型に属する変数への書き込み

インポート型の変数には、次の方法で値を書き込むことができます。

インポート型に属する変数には、次の型の変数を割り当てることができます。

同じインポート型の変数の比較

同じインポート型の 2 つの変数を比較する条件式 (例えば、 条件アクションの「条件 (Condition)」フィールド内) の中では、 変数自体を使用するのではなく、基礎クラスにある比較メソッド (equals() など) をインプリメントする必要があります。例えば、次のとおりです。

$htUserData.equals($htPortData$)$

代わりに、変数自体を比較すると (例: $htUserData$ == $htPortData$)、次のようになります。

  1. マクロ・ランタイムは、それぞれの変数ごとに、基礎 Java クラス の toString() メソッドを呼び出し、ストリングの結果を得る。
  2. マクロ・ランタイムは、2 つのストリングの結果を比較し、 ブールの結果を得る。
  3. マクロ・ランタイムは、条件の結果をステップ 2 で得られたブールの結果に 設定する。

これにより得られる結果は、2 つの変数の比較結果としては正しくない 可能性があります。

パラメーター・リストのマクロへの引き渡し

通常の言語では、パラメーター・リストは、プログラムが動作するように指示し、エンド・ユーザーがプログラムを起動したときに指定する値の集合です。例えば、 copy がファイルを現行ディレクトリーから別のディレクトリーにコピーする プログラムの名前なら、次のコマンド行の呼び出し

copy MyFile.txt c:¥temp

により、コピー・プログラムを名前で呼び出して (copy)、コピー対象の ファイル名 (MyFile.txt)、および宛先ディレクトリー (c:¥temp) を 含むパラメーター・リスト (MyFile.txt c:¥temp) を指定します。

Host On-Demand には、プログラムが呼び出されたときにパラメーター・リストを プログラムに引き渡すことに類似したマクロ機能があります。マクロを起動する前、または マクロの起動と同時に、エンド・ユーザーは名前値のペアのリストを指定できます。 各ペアは、マクロの内部で定義された変数、およびマクロ・ランタイムが変数に 割り当てる必要のある初期値で構成されています。

例えば、マクロ FileDownload がファイルをリモート・ホストからローカル ・ワークステーションにダウンロードし、このマクロに変数 strRemoteFilestrLocalFile が含まれる場合、エンド・ユーザーは以下のパラメーター・ リストを指定することができます。

strRemoteFile="NewData.123", strLocalFile="MyData.123"

エンド・ユーザーがマクロを再生するとき、マクロ・ランタイムは、パラメーター・ リストで指定された各変数を、パラメーター・リストで指定された値に初期設定します。マクロは、ファイル NewData.123 をリモート・ホストからダウンロードして、 そのファイルを MyData.123 に名前変更します。

もちろん、上記の手順どおりに処理するには、マクロの作成者は、必要な情報を変数 strRemoteFilestrLocalFile 内で検索するようマクロを コード化する必要があります。

一般的に、マクロの作成者は以下の条件を満たす必要があります。

また、良いプログラムを書くために、マクロの作成者は以下の動作に注意する必要が あります。

詳しくは、マクロ作成者の考慮事項を参照してください。

エンド・ユーザーは以下の条件を満たす必要があります。

ただし、システム管理者は、パラメーター・リストの指定作業を、以下のいずれかで パラメーター・リストを事前定義することによって処理することができます。

詳しくは、パラメーター・リストの指定を参照してください。

Host On-Demand によるパラメーター・リストの処理方法

マクロ内のすべての変数には、パラメーター・リストで使用されているかどうかに かかわらず、初期値があります。この初期値は、デフォルトの初期値 (表 22 を参照) か、マクロの作成者が 割り当てた初期値です。

パラメーター・リストは関連するマクロの外部に存在します。マクロ自身の内部に保管 されるのではなく、マクロの再生が開始されたときに、マクロ・ランタイムに 受け渡されます。

マクロ・ランタイムがマクロを再生する準備ができると、まず最初にマクロの各変数を その変数に対してマクロ自身内で定義された初期値に初期設定します。

次に、マクロ・ランタイムはパラメーター・リストを検索します。パラメーター・リスト が見つかると、マクロ・ランタイムはパラメーター・リストのそれぞれの名前値のペアを 処理して、指定された各変数をリストで指定された値に再初期設定します。

マクロ・ランタイムはマクロの再生を通常の方法で継続します。

パラメーター・リストの指定

パラメーター・リストの指定場所

表 23 には、マクロのパラメーター・リストを 指定できる Host On-Demand ユーザー・インターフェースの場所が記載されています。

表 23. マクロのパラメーター・リストの指定
ユーザー・インターフェースの領域: パラメーター・リストを含む入力フィールドへのナビゲート方法: Host On-Demand がパラメーター・リストを保管するか?

セッション構成

「開始オプション (Start Options)」ウィンドウ

  • 「自動開始オプション (Auto-Start Options)」グループ
    • 「パラメーター (Parameters)」入力フィールド

はい。

入力リストはセッション構成の一部として保管されます。

メイン・ツールバー

注意 : メイン・ツールバーは、ツールバー・オブジェクトとして保管することができ、 他のセッション構成にインポートすることができます。

「編集 (Edit)」>「設定 (Preferences)」>「ツールバー (Toolbar)」>「追加 (Add)」ボタン

  • 「マクロ (Macro)」ウィンドウ
    • 「パラメーター (Parameters)」入力フィールド

はい。

パラメーター・リストはメイン・ツールバーの一部として保管されます。

「マクロを再生 (Play macro)」ダイアログ

「操作 (Actions)」>「マクロを再生 (Play Macro)」

  • 「パラメーター (Parameters)」入力フィールド

いいえ。

パラメーター・リストは、以下のいずれかで別の選択が実行されるまで、一時的に 「パラメーター (Parameters)」入力フィールドへ保管されます。

  • 「マクロを再生 (Play macro)」ダイアログ。または
  • 「選択可能なマクロ (Available macros)」ダイアログ

「選択可能なマクロ (Available macros)」ダイアログ

マクロ・マネージャー・ツールバーの「マクロを選択 (Select a macro)」アイコン

  • 「パラメーター (Parameters)」入力フィールド

いいえ。

パラメーター・リストは、以下のいずれかで別の選択が実行されるまで、一時的に 「パラメーター (Parameters)」入力フィールドへ保管されます。

  • 「マクロを再生 (Play macro)」ダイアログ。または
  • 「選択可能なマクロ (Available macros)」ダイアログ

ポップアップ・キーパッド・ダイアログのカスタマイズ

メイン・ウィンドウで「編集」>「設定」>「ポップアップ・キーパッド」>「カスタマイズ (Customize)」または、ポップアップ・キーパッド・ウィンドウで「編集」> 「カスタマイズ (Customize)」を選択します。

はい。

パラメーター・リストはポップアップ・キーパッドの一部として保管されます。

ただし、現在選択しているマクロを、マクロ・マネージャー・ツールバーの「マクロを再生 (Play Macro)」アイコンを使用して再生している場合、パラメーター・リストを指定することは できません。代わりに、「選択可能なマクロ (Available macros)」ダイアログ (上の表の 行 4 を参照) でパラメーター・リストを指定して、現在選択しているマクロを再生します。

上の表では、Host On-Demand は、パラメーター・リストを表の最初の 2 行で指定された 場所に対してのみ保管することに注意してください (セッション構成の自動開始セクション と、メイン・ツールバーに追加されたカスタマイズされたボタン)。

また、Host On-Demand は、パラメーター・リストをマクロ自身の一部としてでは なく、(セッション構成の一部として、またはメイン・ツールバーの一部として) マクロ の外部に保管することに注意してください。

パラメーター・リストの形式

パラメーター・リストを指定する場合は (例えば、表 23 の行 2 で示されているように、 「ボタンを追加 (Add Button)」ダイアログの「マクロ (Macro)」ウィンドウの「パラメーター (Parameters)」 入力フィールドで指定)、以下の形式で指定する必要があります。

name1="value1", name2="value2", name3="value3", ...

例えば、次のとおりです。

strRemoteFile="NewData.123", strLocalFile="MyData.123"

形式の規則は以下のとおりです。

パラメーター・リストでのエラーの確認

Host On-Demand は、エンド・ユーザーがマクロを再生するまで、パラメーター ・リストでエラーをチェックしません。エンド・ユーザーがマクロを再生するとき、Host On-Demand が パラメーター・リストでエラーを検出すると、以下のことを実行します。

Host On-Demand は、3 つのタイプのエラー状態を検査します。

パラメーター・リストのプログラムからの指定

Host Access Toolkit (Host On-Demand CD-ROM に収録) には、パラメーター・リストを 管理する 2 つの Java メソッドがあります。

詳しくは、Host Access Toolkit に同梱されている文書を参照してください。

マクロ作成者の考慮事項

マクロをコード化してパラメーター・リストを使用するとき、以下のことに注意して ください。

一般的な原則として、エンド・ユーザーが構文エラーなどのエラーを発生させず、 パラメーター・リストを正しく指定できる必要があることに注意してください。エンド ・ユーザーの助けになるように、以下の処置に注意してください。

チェーニングされたマクロで変数を初期化しないパラメーター・リスト

パラメーター・リストは、エンド・ユーザーがパラメーター・リストを使用して起動する マクロ内でのみ変数を初期化します。パラメーター・リストは、先に出現するマクロが チェーニングする後続のマクロ内の同じ名前の変数を初期化しません。(チェーニング されたマクロに関する情報について、詳しくはPlayMacro アクション (<playmacro> エレメント)を参照 してください)。

例えば、以下の状態があるとします。

この状態では、Host On-Demand は、チェーニングされたマクロの再生を準備する際に、 チェーニングされたマクロ内の変数 strRemoteFileNewData.123 に 初期化しません。代わり に、Host On-Demand は、チェーニングされたマクロに何らかの初期値 (デフォルトの初期値かマクロの作成者が指定した初期値) が指定されていれば、通常通り チェーニングされたマクロ内の変数を初期化します。

上の状態と、マクロがチェーニングしているときに発生する変数の転送を混同しない でください。マクロ A がマクロ B にチェーニングしている場合には、マクロ A はすべての 変数と現行値を B に受け渡すことができます (変数の転送を参照)。この機能を利用して、値を 呼び出し側のマクロからチェーニングされたマクロに受け渡すことができます。

Java メソッドの呼び出し

メソッド呼び出しを使用できる個所

メソッドから戻される値が有効であるすべてのコンテキストで、 メソッドを呼び出すことができます。例えば次のように、 入力アクションの中で行の値をメソッドから戻される整数値に設定できます。

$importedVar.calculateRow()$

また、メソッドの戻り変数が必要ない場合や、メソッドに戻り値が ない (void) 場合は、実行アクションを使用して メソッドを呼び出すこともできます (実行アクション (<perform> エレメント)を参照)。

メソッド呼び出しの構文

インポートしたクラスに属するメソッドを呼び出すには、Java で使用する ものと同じ構文を使用します。ただしその構文に加え、変数の場合と同じように、 メソッド呼び出しをドル記号 ($) で囲む必要があります。例えば、次のとおりです。

$new FileInputStream('myFileName')$
$fis.read()$ 

メソッドにパラメーターとして渡す即時ストリング値 ('Elm Street' や上の 最初の例の 'myFileName' など) は、通常どおり単一引用符で囲む必要が あります (拡張マクロ形式のストリング表記規則を参照)。

マクロ・ランタイムが呼び出し先メソッドを検索する方法

メソッド呼び出し ($prp.get('Group Name')$ など) を マクロ・スクリプトに追加する際に、マクロ・エディターは、 呼び出し先メソッドまたはコンストラクターが 変数の属するクラスに存在するかどうかを検査しません。その検査は、呼び出しが行われたときにマクロ・ランタイムによって 行われます。

メソッドは、基礎 Java クラスの public メソッド でなければなりません。

マクロ・ランタイムは、ユーザーが呼び出したメソッドに一致するメソッドが あるかどうか Java クラスを検索する際に、表 24 に示すように マクロのデータ型 (boolean、integer、string、field、double、 インポート型) を Java データ型にマップします。

表 24. マクロ・ランタイムがマクロのデータ型を Java データ型にマップする方法
メソッド・パラメーターが以下のマクロ・データ型に属する場合: マクロ・ランタイムは以下の Java データ型のパラメーターを もつ Java メソッドを検索する:
boolean boolean
integer int
string ストリング (String)
field ストリング (String)
double double
インポート型 インポート型の基礎クラス

マクロ・ランタイムは、呼び出し先メソッドを次のように検索します。

  1. マクロ・ランタイムは、インポート型の定義に指定されている クラスを検索する (java.util.Properties など)。
  2. マクロ・ランタイムは、そのクラス内で呼び出し先メソッドと同じ メソッド・シグニチャー (名前、パラメーター数、およびパラメーターの 型) をもつメソッドを検索する。
  3. 検索が成功した場合、マクロ・ランタイムはメソッドを呼び出す。
  4. 検索が失敗した場合、マクロ・ランタイムはそのクラス内で、 呼び出し先メソッドと同じ名前とパラメーター数 (パラメーターの型は無視) を もつメソッドを検索する。
    1. マクロ・ランタイムが該当するメソッドを検出した場合は、 指定されたパラメーターを使用してメソッドを呼び出す。
    2. 呼び出しがエラーを出さずに戻った場合、マクロ・ランタイムは 正しいメソッドを呼び出したものと想定する。
    3. 呼び出しがエラーを出して戻った場合、マクロ・ランタイムは 別のメソッドを検索する。
    4. 同じ名前とパラメーター数をもつメソッドをすべて試すまで、 検索が継続される。どれも成功しなかった場合、マクロ・ランタイムは ランタイム・エラーを生成する。

マクロ・ユーティリティー・ライブラリー (HML ライブラリー)

Host On-Demand マクロ・ユーティリティー・ライブラリー (HML ライブラリー) は、 Host On-Demand クライアント・コードとともにパッケージされているユーティリティー ・ライブラリーです。 以下の項目を実行せずに、これらのライブラリーのうちの 1 つからメソッドを呼び出す ことができます。

実際には、HML Java ライブラリーに含まれているクラスのインポート、HML クラスに 属する変数の作成、または HML オブジェクトのインスタンスの作成は許可されていません。

これは、マクロの再生が開始されたときに進む初期化の実行中に、マクロ・ ランタイムが以下の処理を実行するためです。

以下の表には、各 HML 変数に対する変数名と基礎クラスのメソッドの型が記載されて います。

表 25. HML 変数
HML 変数: メソッドの説明:
$HMLFormatUtil$ ストリングのフォーマット設定のためのメソッド。
$HMLPSUtil$ セッション・ウィンドウの表示スペースにアクセスするメソッド。
$HMLSessionUtil$ セッション値を戻すメソッド。
$HMLSQLUtil$ 最新の SQLQuery アクションの結果に関する情報を戻すメソッド
$HMLSystemUtil$ アプレット、Java プロパティー、および OS 環境に関する情報を戻すメソッド。

HML ライブラリーに属するメソッドの呼び出し

HML ライブラリーに属するメソッドを呼び出すには、通常の方法で、変数名、メソッド 名、入力パラメーターを指定します。

図 54. HML メソッドの呼び出し例
$HMLFormatUtil.numberToString(1.44)$
$HMLPSUtil.getCursorPos()$
$HMLSessionUtil.getHost()$

HML で開始される予約済み変数名

通常の変数と HML 変数の混同を回避するために、HML で開始される変数名は 予約済みです。HML で開始される変数を作成しようとする と、Host On-Demand はエラー・メッセージを生成します。

$HMLFormatUtil$

$HMLFormatUtil$ を使用して呼び出されるメソッドは、フォーマット設定メソッドです。表 26 には、これらのメソッドの要約が記載されています。

表 26. $HMLFormatUtil()$ のメソッドの要約
メソッドの要約 : $HMLFormatUtil$
ストリング (String)
numberToString(Object obj)
数値を現在構成されているロケールに従って、フォーマット設定したストリングに 変換します。入力パラメーターの型は、integer または double です。
int または double
stringToNumber(String str)
ローカルのフォーマット設定の数値ストリング (「1111.56」、「1,111.56」、 または「1111,56」など) を数値に変換します。戻された数値は、入力ストリングに 応じて、integer 型か double 型になります。

数値と現行ロケール形式の相互変換

ロケールは、各国語と地域に関連したフォーマット設定の規則の集合です。例えば、 クライアント・ワークステーションが構成されているロケールに従って、1111.22 などの 10 進法の値が以下のストリングのいずれかで表されます。

'1111.22'
'1,111.22'
'1111,22'

一方、-78 のような負の数値の場合は、以下のように表されます。

'-78'
'78-'

メソッド numberToString() および stringToNumber() を 使用すると、数値 (1111.22 などの、integer 型または double 型の変数や即時値) と現行の ロケールでの表記 (「1111.22」「1,111.22」、また は「1111,22」などのストリング) との変換を実行できます。

メソッドの詳細

numberToString()
public String numberToString(Object obj)

このメソッドは、数値 (integer または double) を現在構成されているロケールに従って フォーマット設定したストリングに変換します。入力パラメーターの型は、integer または double です。

このメソッドは、推奨されていない独立したメソッド $FormatNumberToString()$ に置き換わるものです。

図 55. numberToString() の例
<input value="$HMLFormatUtil.numberToString(1111.44)$"
          row="20" col="16" movecursor="true"
          xlatehostkeys="true" encrypted="false" />
stringToNumber()
public int stringToNumber(String str)
public double stringToNumber(String str)

このメソッドは、現在構成されているロケールに従ってフォーマット設定した数値 ストリングを数値に変換します。戻された数値は、入力ストリングに 応じて、integer 型か double 型になります。

このメソッドは、推奨されていない独立したメソッド $FormatStringToNumber()$ に置き換わるものです。

図 56. stringToNumber() の例
<message title="’stringToNumber()’" value="’1111.33’" />
<extract name="'Extract'" planetype="TEXT_PLANE"
         srow="1" scol="1"
         erow="1" ecol="10" unwrap="false"
         assigntovar="$value$" />
<if condition="$HMLFormatUtil.stringToNumber($value$)$ < 0 "
   ...
</if>

$HMLPSUtil$

$HMLPSUtil$ を使用して呼び出されたメソッドは、セッション・ウィンドウの表示 スペースに影響を与えるか、セッション・ウィンドウの表示スペースに関する情報を 戻します。表 27 には、これらのメソッドの 要約が記載されています。

表 27. $HMLPSUtil$ のメソッドの要約
メソッドの要約 : $HMLPSUtil$
int
convertPosToCol(int pos)
表示スペースの指定された位置の列番号を戻します。
int
convertPosToRow(int Pos)
表示スペースの指定された位置の行番号を戻します。
void
enableRoundTrip(boolean flag)
双方向言語の場合、双方向文字の後に続く数表示が、双方向文字と場所を交換 するかどうかを決定します。
int
getCursorCol()
表示スペースのテキスト・カーソルの列番号を戻します。
int
getCursorPos()
表示スペースのテキスト・カーソルの位置を戻します。
int
getCursorRow()
表示スペースのテキスト・カーソルの行番号を戻します。
int
getSize()
表示スペースのサイズを戻します (表示スペースの文字位置の数)。
int
getSizeCols()
表示スペースの列数を戻します。
int
getSizeRows()
表示スペースの行数を戻します。
ストリング (String)
getString(int pos, int len)
表示スペースの指定された位置から開始される、指定された長さのテキスト・ ストリングを戻します。
int
searchString(String str)
指定されたストリングの表示スペースの位置を戻します (指定されたストリング が表示スペース内に検出されない場合には、0 になります)。

表示スペース

表示スペースは、セッション・ウィンドウ内に各行と列の位置のエレメントを含む データ構造です (ただし、セッション・ウィンドウの最後の行は、オペレーター情報域 に使用されるため、含まれません)。表示スペースのサイズは、セッション・ウィンドウ のサイズによって決定されます。例えば、セッション・ウィンドウが 80 行と 25 列の 場合、表示スペースのサイズは 80 * 24 = 1920 になります。

表示スペースのエレメントの位置は、セッション・ウィンドウの行と列の位置に連続的に 対応しており、左から右、上部から下部へと読み取ります。例えば、セッション・ ウィンドウが 80 行と 25 列の場合、以下の表のようになります。

図 57. セッション・ウィンドウの行と列の位置と表示スペースでの位置の対応
     Row of    Column of  Corresponds to
     Session   Session    element at this
     Window:   Window:    position in PS:
         1          1             1
         1          2             2
         1          3             3
      ...
         1         80            80
         2          1            81
         2          2            82
         2          3            83
      ...
        24         79          1919
        24         80          1920

Host On-Demand は表示スペースを使用して、セッション・ウィンドウに表示される文字 を格納します。表示スペースの各エレメントは、1 文字 (および輝度などの文字に 関する情報) を格納するために使用されます。例えば、ストリング Message がセッション・ウィンドウの行 1 と列 1 に表示されると、以下の図のようになります。

図 58. 「Message」が行 1 と列 1 に表示される場合のレイアウト
     Row of    Column of  Corresponds    Character
     Session   Session    to element     stored in
     Window:   Window:    at this pos-   this element:
                          ition in PS:
         1          1          1          M
         1          2          2          e
         1          3          3          s
         1          4          4          s
         1          5          5          a
         1          6          6          g
         1          7          7          e

表 28 には、さまざまな値を計算するための公式 (通常使用する必要はありません) が 記載されています。これらの公式で使用されている記号の意味は以下のとおりです。

表 28. 表示スペースに関連した値を計算する公式
計算のための公式
表示スペースのサイズ
 NUMROWS * NUMCOLS

    Example:
    24 * 80 = 1920
row
 (pos + NUMCOLS - 1) / NUMCOLS

    Example:
    (81 + 80 - 1) / 80 = 2 
col
 pos - ((row - 1) * NUMCOLS)

    Example:
    1920 - ((24 - 1) * 80) = 80
pos
 ((row - 1) * NUMCOLS) + col

    Example:
    ((24 - 1) * 80) + 1 = 1641

メソッドの詳細

convertPosToCol()
public int convertPosToCol(int pos)

このメソッドは、表示スペースの指定された位置に関連する列番号を戻します。

図 59. convertPosToCol() の例
<message title="’Example of convertPosToCol()’"
          value="’Cursor is at column ’+
          $HMLPSUtil.convertPosToCol($HMLPSUtil.getCursorPos()$)$" />
convertPosToRow()
public int convertPosToRow(int pos)

このメソッドは、表示スペースの指定された位置に関連する行番号を戻します。

図 60. convertPosToRow() の例
<message title="'Example of convertPosToRow()'"
          value="'Cursor is at row '+
          $HMLPSUtil.convertPosToRow($HMLPSUtil.getCursorPos()$)$" />
enableRoundTrip()
public void enableRoundTrip(boolean flag)

このメソッドは、双方向言語専用 (アラビア語およびヘブライ語) です。AB、 および C が双方向文字だと仮定します。 通常、ストリングに一続きの双方向文字が含まれ、次に、一続きの数表示が続き (例えば、ABC 123)、ストリング全体が格納される場合、Host On-Demand クライアントは、双方向文字と数表示の位置を交換します。例えば、通常、ストリング ABC 123 を表示スペースから読み出してストリングを変数に格納し、次に、 変数の値を表示スペースに書き込む場合、Host On-Demand は表示スペースに 123 ABC と書き込みます。

強制的に反転する機能をオフにするには、enableRoundTrip() の値を true にして呼び出します。強制的に反転する機能をオンにするに は、enableRoundTrip() の値を false にして呼び出します。

図 61. enableRoundTrip() の例
<perform  value="$HMLPSUtil.enableRoundTrip(true)$" />
getCursorCol()
public int getCursorCol()

このメソッドは、表示スペースのテキスト・カーソルの列の位置を戻します。

図 62. getCursorCol() の例
<input value="$HMLSessionUtil.getHost()$"
          row="$HMLPSUtil.getCursorRow()$"
          col="$HMLPSUtil.getCursorCol()$+2"
          movecursor="true" xlatehostkeys="true"
          encrypted="false" />
getCursorPos()
public int getCursorPos()

このメソッドは、表示スペースのテキスト・カーソルの位置を戻します。

図 63. getCursorPos() の例
<message title="’Example of getCursorPos()’"
          value="’Cursor is at row ’+
          $HMLPSUtil.convertPosToRow($HMLPSUtil.getCursorPos()$)$+
          ’ and column ’+
          $HMLPSUtil.convertPosToCol($HMLPSUtil.getCursorPos()$)$" />
getCursorRow()
public int getCursorRow()

このメソッドは、表示スペースのテキスト・カーソルの行の位置を戻します。

図 64. getCursorRow() の例
<input value="$HMLSessionUtil.getHost()$"
          row="$HMLPSUtil.getCursorRow()$"
          col="$HMLPSUtil.getCursorCol()$+2"
          movecursor="true" xlatehostkeys="true"
          encrypted="false" />
getSize()
public int getSize()

このメソッドは、表示スペースのサイズ、つまり表示スペースの文字位置の数を 戻します。例えば、セッション・ウィンドウが 25 行と 80 列の 場合、表示スペースのサイズは 24 * 80 = 1920 になります。

図 65. getSize() の例
<message title="’Example of getSize()’"
          value="’Size of PS is ’+$HMLPSUtil.getSize()$" />
getSizeCols()
public int getSizeCols()

このメソッドは、表示スペースの列数を戻します。表示スペースの列数は、セッション ・ウィンドウの列数と同じになります。例えば、セッション・ウィンドウが 25 行と 80 列の場合、表示スペースの列数は 80 になります。

図 66. getSizeCols() の例
<message title="’Example of getSizeRows and getSizeCols()’"
          value="’The PS has ’+$HMLPSUtil.getSizeRows()$+
          ’ rows and ’+
          $HMLPSUtil.getSizeCols()$+’ columns’" />
getSizeRows()
public int getSizeRows()

このメソッドは、表示スペースの行数を戻します。表示スペースの行数は、セッション ・ウィンドウの行数よりも 1 つ少なくなります (これは、セッション・ウィンドウの最後 の行にはオペレーター情報域があるので、表示スペースに含まれないためです)。例えば、 セッション・ウィンドウが 25 行と 80 列の場合、表示スペースの行数は 24 になります。

図 67. getSizeRows() の例
<message title="’Example of getSizeRows and getSizeCols()’"
          value="’The PS has ’+$HMLPSUtil.getSizeRows()$+
          ’ rows and ’+
          $HMLPSUtil.getSizeCols()$+’ columns’" />
getString()
public String getString(int pos, int len)

このメソッドは、表示スペースの指定された位置から開始される、指定された文字数の テキスト・ストリングを戻します。

図 68. getString() の例
<message title="’Text of row 18:’"
          value="’Text:’+$HMLPSUtil.getString(
                    $HMLPSUtil.getSizeCols()$*17+1,
                    $HMLPSUtil.getSizeCols()$)$" />
searchString()
public int searchString(int pos, int len)

このメソッドは、指定されたストリングの表示スペースの位置を戻します。この メソッドは、ストリングが表示スペース内に検出されないと 0 を戻します。

図 69. searchString() の例
<varupdate name="$int$" value="$HMLPSUtil.searchString('IBM')$" />
<message title="'Searching for IBM'"
          value="'IBM is found at position '+$int$+
          ' that is row='+
          $HMLPSUtil.convertPosToRow($int$)$+
          ', column='+
          $HMLPSUtil.convertPosToCol($int$)$" />

$HMLSessionUtil$

$HMLSessionUtil$ を使用して呼び出されたメソッドは、セッションに関連した値を 戻します。表 29 には、これらのメソッドの 要約が記載されています。

表 29. $HMLSessionUtil()$ のメソッドの要約
メソッドの要約 : $HMLSessionUtil$
ストリング (String)
getHost()
セッション構成の「宛先アドレス (Destination Address)」 フィールドで指定されたテキスト・ストリングを戻します。
ストリング (String)
getLabel()
セッション構成の「セッション名 (Session Name)」フィールドで 指定されたストリングを戻します。
ストリング (String)
getName()
ホストがセッションに割り当てたセッション・インスタンス ID を戻します。

メソッドの詳細

getHost()
public String getHost()

このメソッドは、セッション構成の「接続」セクションの 「宛先アドレス」フィールドに入力したホスト名 またはホスト・アドレスを戻します (myhost.myloc.mycompany.com または 9.27.63.45 など)。

図 70. getHost() の例
<message title="’Host name or address’" value="$HMLSessionUtil.getHost()$" />
getLabel()
public String getLabel()

このメソッドは、セッション構成の「接続」セクションの 「セッション名 (Session Name)」フィールドに入力したセッション名 を戻します (3270 Display または 5250 Display など)。

図 71. getLabel() の例
<message title="’Session name’" value="$HMLSessionUtil.getLabel()$" />
getName()
public String getName()

このメソッドは、ホストがセッションに割り当てた識別名 (AB、または C など) を戻します。セッションを開始する とき、ホストは名前をセッションに割り当てて、開始している可能性のある同じ セッションの他のインスタンスと区別します。

図 72. getName() の例
<message title="’Session instance identifier’" value="$HMLSessionUtil.getName()$" />

$HMLSQLUtil$

$HMLSQLUtil$ で呼び出されたメソッドは、最新の SQLQuery アクションの結果に関する 情報を戻します。表 30 には、これらのメソッドの要約が記載されています。

表 30. $HMLSessionUtil()$ のメソッドの要約
メソッドの要約 : $HMLSessionUtil$
int
getColumnSize()
データの列数を戻します。
ストリング (String)
getDataByIndex()
指定された行のインデックスと列のインデックスに配置された項目を戻します。
ストリング (String)
getDataByName()
指定された行のインデックスと列名 (フィールド名) に配置された項目を戻します。
int
getRowSize()
データの行数を戻します。

保管データの形式

SQLQuery アクションの結果は、戻されたデータのブロックのサイズよりもそれぞれ 1 ずつ広い列および高い行から構成される、2 次元配列として保管されます。行 0 は列名 (データベースからのフィールド名) を保管するのに使用されて、列 0 はゼロ・ベースの インデックスを保管するのに使用されます (下の表 31 を参照)。行 0、列 0 の項目には空ストリングが含まれます。配列の残りには実際の データが含まれます。すべての値はストリングです。

表 31 には、クエリーの結果である 3 x 5 のデータの ブロックが、4 x 6 の配列に保管される例が記載されています。

表 31. 結果を含んだ 2 次元配列の例
(空ストリング) TOPICID EXMPLID DESCRIPT
0 4 18 Create a toolbar with custom buttons.
1 9 54 Attach tables at startup.
2 11 74 Edit Products.
3 11 75 Enter or Edit Products
4 11 76 Find Customers

上の表では、行 0、列 0 の項目には空ストリングが含まれています。行 0 以降 には、データベースからのフィールド名 (TOPICID, EXMPLID, DESCRIPT) が含まれています。 列 0 以降には、行のインデックス番号 (0, 1, 2, 3, 4) が含まれています。配列 0 以降には、 実際のデータが含まれています。すべての値はストリングです。

メソッドの詳細

getColumnSize()
public int getColumnSize()

このメソッドは、追加された列 0 を含む、配列内のデータの実際の列数を戻します。 例えば、表 31 の配列では、このメソッドは 4 を 戻します。

図 73. getColumnSize() の例
<message title="’Column size’" value="$HMLSessionUtil.getColumnSize()$" />
getDataByIndex()
public int getDataByIndex(int row, int column)

このメソッドは、指定された行と列のインデックスの項目を戻します。表 31 のデータに対して戻された値のリストは以下の とおりです。

図 74. getDataByIndex() の例
<message title="’Row 3, Column 3’" value="$HMLSessionUtil.getDataByIndex(3,3)$" />
getDataByName()
public int getDataByName(int row, String fieldName)

このメソッドは、指定された行とフィールド名の項目を戻します。 表 31 のデータに対して戻された値のリストは以下の とおりです。

図 75. getDataByName() の例
<message title="’Row 3, Field DESCRIPT’" 
   value="$HMLSessionUtil.getDataByName(3,'DESCRIPT')$" />
getRowSize()
public int getRowSize()

このメソッドは、追加された行 0 を含む、配列内のデータの実際の行数を戻します。 例えば、表 31 の配列では、このメソッドは 6 を 戻します。

図 76. getRowSize() の例
<message title="’Column size’" value="$HMLSessionUtil.getRowSize()$" />

$HMLSystemUtil$

$HMLSystemUtil$ で起動されるメソッドで、アプレット、Java プロパティー、および OS 環境に関する情報を得ることができます。

表 32 には、これらのメソッドの要約が記載 されています。

表 32. $HMLSystemUtil()$ のメソッドの要約
メソッドの要約: $HMLSystemUtil$
ストリング (String)
getHTMLParameter(String name)
HTML パラメーター名を受け入れ、その値を戻します。
ストリング (String)
getenv(String name)
オペレーティング・システムの環境変数名を受け入れ、その値を戻します。
ストリング (String)
getSystemProperty(String name)
Java システム・プロパティー名を受け入れ、その値を戻します。

メソッドの詳細

getHTMLParameter()
public String getHTMLParameter(String name)

このメソッドは、HTML パラメーター名を受け入れ、その値を戻します。

存在しないパラメーター名を受け取ると、メソッドは空のストリングを戻します。

図 77. getHTMLParameter() の例
$HMLSystemUtil.getHTMLParameter('some_param_name')$
getenv()
public String getenv(String name)

このメソッドは、オペレーティング・システムの環境変数名を受け入れ、その値を戻します。

存在しない変数名を受け取ると、メソッドは空のストリングを戻します。

図 78. getenv() の例
$HMLSystemUtil.getenv('Temp')$
制限
  1. Java 1.5.0 より前のバージョンを使用している場合、変数名と同じ値を持つ環境変数が定義されていると、その変数は存在せず戻ってきたものと見なされて空のストリングが戻されます。
  2. Java 1.5.0 より前のバージョンを使用している場合、Windows 以外のプラットフォームでは、常に空のストリングが戻されます。
getSystemProperty()
public String getSystemProperty(String name)

このメソッドは、Java システム・プロパティー名を受け入れ、その値を戻します。

存在しない変数名を受け取ると、メソッドは空のストリングを戻します。

図 79. getSystemProperty() の例
$HMLSystemUtil.getSystemProperty('java.home')$
一般的な制限

大/小文字の区別があるオペレーティング・システムを使用している場合、これらのメソッドのパラメーターとして指定する名前も大/小文字の区別があります。

FormatNumberToString() および FormatStringToNumber()

$FormatNumberToString()$ は推奨されておらず、代わりに $HMLFormatUtil.numberToString()$ の使用をお勧めします。両者の 入力パラメーターと戻り値の型は同じです (numberToString()を参照)。

$FormatStringToNumber()$ は推奨されておらず、代わりに $HMLFormatUtil.stringToNumber()$ の使用をお勧めします。両者の 入力パラメーターと戻り値の型は同じです (stringToNumber()を参照)。