Tivoli Service Desk 6.0 Developer's Toolkit Interface Designer の手引き
現行カーソル位置で、フィールドを消去してから指定の文字列を入力します (指定された 長さがあれば、それに合わせて切り捨てます)。
conn : EMUCONNECTION str : STRING EXPRESSION length: INTEGER EXPRESSION
パラメーター | 説明 |
conn | 接続は EMUConnect で初期化しなければなりません。 |
str | 現行フィールドに入れられる文字列。 |
length | 任意指定。「入力文字列」フィールドの最大長は、適切に収まるように切り捨てることができます。 |
整数
文字列は現行カーソル位置に入力されます。 カーソルの最終位置は、ユーザーが文字列を キーボードで入力したかのように、文字列の最後の文字の後に置かれます。 この関数は、 $EMUClear を使用して EMUPressKey を呼び出してから、 EMUTypeIn を呼び出すのと同じタスクを実行します。
変数 rc :INTEGER; conn :EMUCONNECTION; str :STRING; ACTIONS rc := EMUConnect(conn, 'A'); -- conn は現在セッション A と対応している IF (rc < 1 ) THEN -- エラー処理 ELSE str := 'HELLO WORLD!'; rc := EMUClrTypeIn(conn,str); IF (rc < 1 ) THEN -- エラー処理 END; EMUDisConnect(conn); -- conn 用のリソースを解放する END; END;
EHLLAPI 接続を初期化して、sessName で指定された端末セッションをアクティブにします。
conn : EMUCONNECTION sessName: STRING EXPRESSION
パラメーター | 説明 |
conn | このハンドルはいろいろな端末属性で初期化されます。 ハンドルの前の初期化を上書きする必要がない限り、アプリケーションの中でハンドルを 2 回以上 EMUConnect に渡さないでください。 |
sessName | コミュニケーション・マネージャーの端末セッションの短縮名 (3270 端末セッションの場合は、基本的に 'A'、'B'、'C' です)。 この端末セッションは、EMUConnect を呼び出す前にコミュニケーション・マネージャーで開始しなければなりません。 |
整数
このコマンドは、接続ハンドルが EHLLAPI コマンドに渡される前に実行されなければなりません。
変数 rc :INTEGER; conn :EMUCONNECTION; str :STRING; ACTIONS rc := EMUConnect(conn, 'A'); -- conn は現在セッション A と対応している IF (rc < 1 ) THEN -- エラー処理 ELSE str := 'HELLO WORLD!'; rc := EMUClrTypeIn(conn,str); IF (rc < 1 ) THEN -- エラー処理 END; EMUDisconnect(conn); -- conn 用のリソースを解放する END; END;
接続されたエミュレーション・セッションを非アクティブ化し、接続ハンドルに割り振られた リソースを解放します。
conn : EMUCONNECTION
パラメーター | 説明 |
conn | 解放される接続ハンドル。 |
整数
このコマンドの実行後は、接続ハンドルは $Unknown となります。関数 EMUConnect を呼び出して、接続ハンドルを再初期化しなければなりません。
変数 rc :INTEGER; conn :EMUCONNECTION; str :STRING; ACTIONS rc := EMUConnect(conn, 'A'); -- conn は現在セッション A と対応している IF (rc < 1 ) THEN -- エラー処理 ELSE str := 'HELLO WORLD!'; rc := EMUClrTypeIn(conn,str); IF (rc < 1 ) THEN -- エラー処理 END; EMUDisconnect(conn); -- conn 用のリソースを解放する END; END;
指定の位置で、端末画面からの指定の長さの文字列を読み取ります。
conn : EMUCONNECTION row : INTEGER EXPRESSION col : INTEGER EXPRESSION length: INTEGER EXPRESSION inStr : STRING PARAMETER
パラメーター | 説明 |
conn | TSD Script Interpreter が文字列を取り出すためにどのセッションを使用するかを指定する接続ハンドル。 |
row | 端末画面の行。 通常は、この数値は 1-24 の間です。 行 1 は画面の最上部の行です。 |
col | 文字が取り出される列。 有効な列は通常は 1-80 です。 テキスト画面上の列 1 は左端の列です。 |
length | 画面からコピーされる文字数です。 |
inStr | データがコピーされる宛先の文字列です。 |
整数
ホスト・カーソルの位置はこのコマンドでは無関係です。 カーソルはこのコマンドでは移動 されません。 セッションが "使用中" (OIA の中に入力禁止標識が表示されている) であっても、 TSD Script Interpreter はこのコマンドを実行することができます。
変数 rc :INTEGER; str :STRING; conn :EMUCONNECTION; ACTIONS rc := EMUConnect(conn,'A'); IF (rc < 1 ) THEN -- エラー処理 ELSE rc := EMUFillBuffer(conn,1,1,20,str); IF (rc < 1 ) THEN -- エラー処理 ELSE WinMessageBox($DESKTOP,'FillBuff',$MBOK, 'Row 1, Col 1 '& 'first 20 chars is:'& str); END; EMUDisconnect(conn); END; END;
ホスト画面中の現行カーソル位置を先頭にテキスト・ファイルを読み込みます。 各テキスト・ファイル行の終わりで、指定されたキー・コードが押されます。
conn : EMUCONNECTION filename: STRING EXPRESSION keycode: INTEGER EXPRESSION
パラメーター | 説明 |
conn | 入力ファイルのターゲットである接続セッションを指定します。 |
filename | ホスト画面に読み込まれるテキスト・ファイルの名前。 |
keycode | EHLLAPI 用の有効なキー・コードの 1 つ。 |
このキーは、各ファイル行が画面に読み込まれた後で押されます。
整数
変数 rc :INTEGER;
ACTIONS rc := EMUConnect(conn, 'A'); IF (rc < 1 ) THEN -- エラー処理 ELSE rc := EMUInFile(conn,'EXAMPLE.TXT', $EMUTab); IF (rc < 1 ) THEN -- エラー処理 END; EMUDisconnect(conn); END; END;
EXAMPLE.TXT の中に次のものが入っていると仮定します:
これは記述です。 別の記述行。 最終的に、3 番目の記述行。
画面が次のような場合に:
BLGRRR==================================== In===>______________________________________________ 12/12/93
第 1 : __________________ 最終: ______________________ 記述: ________________________________________________ ______________________________________________________ ______________________________________________________ ______________________________________________________ ______________________________________________________
========================================
カーソルが記述の第 1 桁目にあるものとします。
この例のコードを実行した後で、次のようになります:
BLGRRR==================================== In===>______________________________________________ 12/12/93
第 1 : __________________ 最終: _____________________ 記述: これは記述です。 別の記述行。 最終的に、3 番目の記述行。 ______________________________________________________ ______________________________________________________
========================================
指定のマップで指定されている通りに、データの画面をダウンロードします。
conn : EMUCONNECTION mapName : STRING EXPRESSION downloadBuff: ANY
パラメーター | 説明 |
conn | データのダウンロード元のセッションを指定します。 |
mapName | ダウンロード・プロセスで使用されるマップ・ファイルの名前。 |
downloadBuff | (少なくとも) マップ・ファイル中に名前のあるフィールドが入っているレコード構造。 データはマップに指定されている位置から読み取られ、マップ・ファイルに指定されているフィールド名と同じ名前をもつレコード・フィールドに入れられます。 |
整数
注
マップがデータ・タイプを TSD Script タイプに変換する迅速な方法を提供するので、 EMUMapDownload は、多くの EMUFillBuffer コマンドの 使用を置き換えます。 たとえば、画面からデータを取り込むために EMUFillBuffer を 使用する場合には、すべてのデータは TSD Script 文字列となります。 その場合は、データを 一度に 1 フィールドずつ変換しなければなりません。
TIME, DATE, INTEGER, および REAL タイプの場合は、EMUMapDownload は、 値をレコード・フィールドに入れる前に、データ・フィールドから先行および後書き空白文字 (ブランク) を 除去します。 STRING タイプの場合は、データはそのままホスト画面からレコード・フィールドにコピー されます (EMUFillBuffer と類似している)。
タイプ SomeRec IS RECORD Name:STRING; Age :INTEGER; END;
変数 rc :INTEGER; rec :SomeRec; conn :EMUCONNECTION; ACTIONS rc := EMUConnect(conn, 'A'); IF (rc < 1 ) THEN -- エラー処理 ELSE rc := EMUMapDownload(conn,'EX1.MAP',rec); IF (rc < 1 ) THEN -- エラー処理 ELSE -- レコード中のデータで何かを直ちに実行する。 END; EMUDisconnect(conn); END; END;
EX1.MAP に次のものが入っているとみなします:
*FIELDS NAME 5 12 10 SYSFORMAT DEFAULT_FORMAT AGE 6 6 3 SYSFORMAT DEFAULT_FORMAT
ホスト画面が次のようであると仮定します:
========================================
FULL NAME: Jon Rigsby AGE: 18
========================================
例の中でこの条件が与えられると、EMUMapDownload の実行後に、 rec 変数は Jon Rigsby という名前をもち、年齢が 18 となります。
指定のマップ・ファイルで指定されている通りに、画面一杯のデータをアップロードします。
conn : EMUCONNECTION mapName : STRING EXPRESSION uploadBuff: ANY
パラメーター | 説明 |
conn | データのアップロード先のセッションを指定します。 |
mapName | アップロード時にデータの配置および変換を決定するマップ・ファイルの名前を指定します。 |
uploadBuff | 画面にアップロードされるデータが入っている変数。この変数のタイプは、単純な TSD Script タイプ (TIME、 DATE、 INTEGER、 STRING) またはユーザー定義のレコード・タイプのいずれかになります。 |
整数
アップロード時に値が $Unknown である場合には、フィールドはスキップされます。
タイプ SomeRec IS RECORD first:STRING; last :STRING; age :INTEGER; bday :DATE; END;
変数 rc :INTEGER; conn :EMUCONNECTION; rec :SomeRec; ACTIONS rc := EMUConnect(conn, 'A'); IF (rc < 1 ) THEN -- エラー処理 ELSE rec.first := 'John'; rec.last := 'Doe'; rec.age := 30; rec.bday := {8/6/1963}:DATE; rc := EMUMapUpload(conn, 'EX1.MAP', rec); IF (rc < 1 ) THEN -- エラー処理 END; EMUDisconnect(conn); END; END;
EX1.MAP に次のものが入っているとみなします。
*FIELDS FIRST 3 14 10 SYSFORMAT DEFAULT_FORMAT LAST 4 12 20 SYSFORMAT DEFAULT_FORMAT AGE 5 6 3 SYSFORMAT DEFAULT_FORMAT BDAY 6 13 10 SYSFORMAT DEFAULT_FORMAT
ホスト画面が次のようであると仮定します。
========================================
名: __________ 姓: ____________________ 年齢: ___ 誕生日: __________
========================================
EMUMapUpload が正常に実行された後で、ホスト画面は次のようになります。
========================================
名: John 姓: Doe 年齢: 30 生年月日: 08/06/1963
========================================
ホスト・カーソルを指定の行および列に移動します。
conn : EMUCONNECTION row : INTEGER EXPRESSION col : INTEGER EXPRESSION
パラメーター | 説明 |
conn | カーソルが移動される端末セッションを識別します。 |
row | カーソルの移動先のホスト画面の行。 画面の最上部の行が行 1 です。 |
col | カーソルの移動先の列。 列 1 はホスト画面上の左端の列です。 |
整数
ホストに入力禁止が表示されている場合には、カーソルを移動することはできません。 範囲外の行および列はエラー・コードを戻します。
変数 rc :INTEGER; conn :EMUCONNECTION; ACTIONS rc := EMUConnect(conn, 'A'); IF (rc < 1 ) THEN -- エラー処理 ELSE rc := EMUMoveCursorTo(conn, 10, 10); IF (rc < 1 ) THEN -- エラー処理 ELSE EMUClrTypeIn(conn, 'THIS STARTS AT POSITION 10,10'); END; EMUDisconnect(conn); END; END;
ホスト画面の長方形部分 (指定の座標で定義されている) を名前付きファイルにダンプします。
conn : EMUCONNECTION filename: STRING EXPRESSION topRow : INTEGER EXPRESSION leftCol : INTEGER EXPRESSION botRow : INTEGER EXPRESSION rightCol: INTEGER EXPRESSION
パラメーター | 説明 |
conn | テキスト部分を取り込む際に取り出される元の端末セッションを指定します。 |
filename | テキストのダンプ先のファイルの名前。 ファイルがすでに存在している場合には、新規データが前のデータと置き替わります。 ファイルが存在していない場合には、作成されます。 |
topRow | テキストの長方形部分の最上部の行であるホスト行。 |
leftCol | ファイルに書き込まれるテキストの左にある最後の列である端末の列番号。 |
botRow | テキストの長方形部分の最下行であるホスト画面の行。 |
rightCol | テキストの長方形部分の右端の列としての働きをするホストの列。 |
整数
このコマンドの実行時にファイルが存在していない場合には、ファイルが作成されます。 存在している場合には、新規データがその終わりに付加されます。
変数 rc :INTEGER; conn :EMUCONNECTION; msg :STRING; ACTIONS rc := EMUConnect(conn, 'A'); IF (rc < 1 ) THEN -- エラー処理 ELSE rc := EMUFillBuffer(conn, 3, 1, 5, msg); IF (rc < 1 ) THEN -- エラー処理 ELSE IF (msg = 'ERROR') THEN -- 画面をファイルに取り込む EMUOutFile(conn, 'ERRFILE.TXT',1,1,24,80); END; END; EMUDisconnect(conn); END; END;
キー・コードで指定された制御キーを押します。 キー・コードは TSD Script システム定義の 整数 ($EMUClearKey, $EMUEnter) の 1 つとすることができます。
conn : EMUCONNECTION keycode: INTEGER EXPRESSION
パラメーター | 説明 |
conn | キーの押下が送信される端末セッションを識別します。 |
keycode | 押されるキー。 |
整数
ホストに入力禁止が表示されている時には、キーを押すことはできません。
変数 rc :INTEGER; conn :EMUCONNECTION;
ACTIONS rc := EMUConnect(conn, 'A'); IF (rc < 1 ) THEN -- エラー処理 ELSE rc := EMUPressKey(conn, $EMUPF3); IF (rc < 1 ) THEN -- エラー処理 ELSE EMUClrTypeIn(conn, 'JON_R'); EMUPressKey(conn, $EMUTab); EMUClrTypeIn(conn, 'mypasswd'); rc := EMUPressKey(conn, $EMUEnter); IF (rc < 1 ) THEN -- エラー処理、ログインの失敗。 END; END; END; END;
現行ホスト・カーソル位置を判別します。
conn : EMUCONNECTION row : INTEGER PARAMETER col : INTEGER PARAMETER
パラメーター | 説明 |
conn | カーソル位置を判別する端末セッションを指定します。 |
row | このコマンドの実行時にカーソルが位置付けられている行。 |
col | ホスト・カーソルが位置付けられている列。 |
整数
変数 rc :INTEGER; conn :EMUCONNECTION; r,c:INTEGER; ACTIONS ... EMUPressKey(conn,$EMUEndKey); EMUQueryCursor(conn,r,c); IF (c > 59) THEN EMUPressKey(conn, $EMUTab); END; EMUTypeIn(conn,'Is this on new field?');
END;
画面のサイズをテキストの行数および列数で戻します。
conn : EMUCONNECTION row : INTEGER PARAMETER col : INTEGER PARAMETER
パラメーター | 説明 |
conn | サイズが判別される端末セッションを指定します。 |
row | このパラメーターはホスト画面の高さを判別します。 |
col | ホスト画面の列の数が入ります。 |
整数
変数 rc :INTEGER; conn :EMUCONNECTION; r,c:INTEGER; ACTIONS ... -- コード中のこの位置で、ホスト画面全体を -- ファイルに取り込む必要があることを 決断します。 EMUQuerySession(conn, r, c); EMUOutFile(conn,'ERRFILE.TXT',1,1,r,c); END;
指定された文字列について端末セッションをスキャンします。 見つかった場合には、 文字列の開始位置を行、列の形式で戻します。
conn : EMUCONNECTION row : INTEGER PARAMETER col : INTEGER PARAMETER
パラメーター | 説明 |
conn | スキャンされる端末セッション |
row | 文字列が見つかった場合に、文字列の開始行がこのパラメーターに入ります。 |
col | 見つかった文字列が始まる列 |
整数
ブランクまたは $Unknown 文字列を EMUScanForString に 渡すことは、正しい機能ではありません。 また、スキャンは大文字小文字を区別します。
変数 rc:INTEGER; conn :EMUCONNECTION; r,c:INTEGER;
ACTIONS ... rc := EMUScanForString(conn,'JON RIGSBY',r,c); IF (rc < 1 ) THEN IF (rc = -24) THEN WinMessageBox($DESKTOP,'Not Found',$MBOK, 'Did not find '& 'JON RIGSBY'); ELSE -- 他のエラーが起こりました END; ELSE WinMessageBox($DESKTOP,'Found',$MBOK,'Found '& 'JON RIGSBY at row '& r &' column '& c); END;
END;
この呼び出しに続く待機コマンドにタイムアウトを設定します。
conn : EMUCONNECTION timelimit: INTEGER EXPRESSION
パラメーター | 説明 |
conn | タイムアウト制限が設定される端末セッション。 |
timelimit | EMUWait コマンドが、取り消される前に待機する最大時間 (ミリ秒)。 |
整数
デフォルトの時間制限は 500 ミリ秒です。 EMUWait で設定する時間制限は、 (その接続に関する) 後続のすべての EMUWait コマンドで使用されます。 時間制限を 0 にすることは有効です。この場合には、直ちに EMUWait 関数が、 条件が満たされたかどうかを示す戻りコードで戻されます。
変数 rc:INTEGER; conn:EMUCONNECTOIN; ACTIONS .. rc := EMUSetWatchTimeLimit(conn,1000); -- 1 秒 IF (rc < 1 ) THEN -- エラー処理 ELSE rc := EMUWaitForNoX(conn); END; END;
指定の文字列を現行カーソル位置に入力します。
conn : EMUCONNECTION str : STRING EXPRESSION length: INTEGER EXPRESSION
パラメーター | 説明 |
conn | 文字列が入力される端末セッション。 |
str | 現行カーソル位置に入力される文字列。 |
length | (任意指定) 入力文字列の最大長を指定します。文字列が許容長より長い場合は切り捨てられます。 |
整数
入力文字列がブランクの場合には、戻りコードは 5008 となります。 ホスト画面には文字は入力されません。
変数 rc :INTEGER; conn :EMUCONNECTION;
ACTIONS ... EMUMoveCursorTo(conn, 10,10); EMUTypeIn(conn,'JON RIGSBY',20); EMUPressKey(conn,$EMUTab); EMUTypeIn(conn,'18'); EMUPressKey(conn,$EMUTab); EMUTypeIn(conn,'1901 Niagara Drive',30); rc := EMUPressKey(conn,$EMUEnter); IF (rc < 1 ) THEN -- エラー処理 END; END;
ホスト・カーソルが指定の位置に現れるまで、あるいは監視時間制限が満了するまで、 アプリケーションを一時停止します。
conn : EMUCONNECTION row : INTEGER EXPRESSION col : INTEGER EXPRESSION
パラメーター | 説明 |
conn | どの端末セッションで待機するかを指定します。 |
row | カーソルが現れるべき行の位置。 |
col | カーソルが現れるべき列の位置。 |
整数
変数 rc:INTEGER; conn :EMUCONNECTION; ACTIONS ... EMUPressKey(conn, $EMUPF3); rc := EMUWaitForCursorAt(conn, 1, 5); IF (rc < 1 ) THEN IF ((rc = 1010) or (rc = 1011)) THEN -- 待機を停止 ELSE -- エラー END; ELSE -- 通常の処理を続行 END; END;
ホスト・カーソルが指定の位置からなくなるまで、あるいは監視時間制限が満了するまで、 実行を一時停止します。
conn : EMUCONNECTION row : INTEGER EXPRESSION col : INTEGER EXPRESSION
パラメーター | 説明 |
conn | 待機する位置の端末接続。 |
row | カーソルが表示されなくなる行。 |
col | カーソルが表示されなくなる列。 |
整数
変数 rc:INTEGER; conn :EMUCONNECTION; ACTIONS ... EMUPressKey(conn, $EMUPF3); rc := EMUWaitForCursorNotAt(conn, 10,10); IF (rc < 1 ) THEN IF (rc = 1010) THEN -- 待機を停止 ELSE -- 他のエラー END; ELSE -- 通常の処理を続行 END; END;
ホストの入力禁止標識が OIA から消えるまで、実行を一時停止します。 安定時間が 指定されている場合には、TSD Script Interpreter は戻る前に、合計安定時間の間 標識が消えるようにします。
conn : EMUCONNECTION settleTime: INTEGER EXPRESSION
パラメーター | 説明 |
conn | 待機するターゲットの端末接続。 |
settleTime | 任意指定。X 標識が "安定" したことを確認するために、 TSD Script Interpreter が X の消えた後で待機する時間。 |
整数
変数 rc:INTEGER; conn :EMUCONNECTION; ACTIONS ... -- 画面にデータを入力します EMUMoveCursorTo(conn, 10, 10); EMUClrTypeIn(conn, 'JON RIGSBY'); EMUPressKey(conn, $EMUTab); EMUClrTypeIn(conn, '1901 Niagara Drive'); EMUPressKey(conn, $EMUTab); EMUClrTypeIn(conn, 'Ontario, Canada'); -- データを受け入れるために Enter (キー) を押します EMUPressKey(conn, $EMUEnter); rc := EMUWaitForNoX(conn); IF (rc < 1 ) THEN IF ((rc = 1011) OR (rc = 1012)) THEN -- 待機を停止 ELSE -- その他のエラー END; ELSE -- 通常の処理を続行 END; END;
指定の検索文字列が指定の行および列に先頭文字を位置づけて現れるまで、あるいは 監視時間制限が満了するまで、実行を一時停止します。
conn : EMUCONNECTION str : STRING EXPRESSION row : INTEGER EXPRESSION col : INTEGER EXPRESSION
パラメーター | 説明 |
conn | 待機する位置の端末接続。 |
str | 待機するターゲット文字列。 |
row | 文字列が現れるホスト行。 |
col | 文字列が現れる列。 |
整数
検索文字列がブランクまたは $Unknown である場合には、直ちに エラー戻りコードが戻されます。
変数 rc:INTEGER; conn :EMUCONNECTION; ACTIONS ... EMUPressKey(conn, $EMUPF3); rc := EMUWaitForStringAt(conn,'ENTER YOUR LOGIN NAME:', 3, 5);
IF (rc < 1 ) THEN IF (rc = 1010) THEN -- 待機を停止 ELSE -- 他の一般エラー END; ELSE -- 通常の処理を続行 END;
END;
指定されたホスト位置から指定の文字列が消えるまで、あるいは監視時間制限が満了するまで、 実行を一時停止します。
conn : EMUCONNECTION str : STRING EXPRESSION row : INTEGER EXPRESSION col : INTEGER EXPRESSION
パラメーター | 説明 |
conn | 待機する位置の端末接続。 |
str | ホスト画面から消える文字列。 |
row | 文字列が消える行。 |
col | 文字列の先頭文字が消える列。 |
整数
検索文字列がブランクまたは $Unknown である場合には、 エラー戻りコードが現れます。
変数 rc:INTEGER; conn :EMUCONNECTION; ACTIONS ... EMUMoveCursorTo(conn, 10, 10); EMUClrTypeIn(conn,'JONATHAN K. RIGSBY'); EMUPressKey(conn, $EMUEnter); rc := EMUWaitForStringNotAt(conn, 'JONATHAN K. RIGSBY', 10, 10); IF (rc < 1 ) THEN IF (rc = 1010) THEN -- 待機を停止 ELSE -- 他の一般エラー END; ELSE -- 通常の処理を続行 END; END;
Tivoli Service Desk 6.0 Developer's Toolkit レガシー API の手引き