ACF2、RACF、および Top Secret アダプタでは、login および logoff のリソースアクションが必要です。login アクションは、認証されたセッションに関してメインフレームとネゴシエーションを行います。logoff アクションは、そのセッションが不要になったときに接続を解除します。
thin クライアントのホストアクセス 3270 エミュレータは、スクリプトセッション内のコマンドの実行を簡素化するために、リソースアダプタによるリソースアクションのコンテキストに提供されます。このエミュレータは、com.waveset.object.HostAccess クラスで定義されます。リソースアクションに渡される hostAccess オブジェクトで使用可能なメソッドに関する詳細については、HostAccess に関する JavaDoc を参照してください。
グローバル変数のいくつかは、スクリプトアクションのコンテキストで使用します。
次の表では、3270 エミュレータを通して実行可能な、英数字以外の値のキー入力をシミュレートする特殊機能について説明します。
機能 |
ニーモニックキーワード |
機能 |
ニーモニックキーワード |
---|---|---|---|
Attention |
[attn] |
F1 |
[pf1] |
Backspace |
[backspace] |
F2 |
[pf2] |
Backtab |
[backtab] |
F3 |
[pf3] |
Beginning of Field |
[bof] |
F4 |
[pf4] |
Clear |
[clear] |
F5 |
[pf5] |
Cursor Down |
[down] |
F6 |
[pf6] |
Cursor Left |
[left] |
F7 |
[pf7] |
Cursor Right |
[right] |
F8 |
[pf8] |
Cursor Select |
[cursel] |
F9 |
[pf9] |
Cursor Up |
[up] |
F10 |
[pf10] |
Delete Character |
[delete] |
F11 |
[pf11] |
DUP Field |
[dup] |
F12 |
[pf12] |
Enter |
[enter] |
F13 |
[pf13] |
End of Field |
[eof] |
F14 |
[pf14] |
Erase EOF |
[eraseeof] |
F15 |
[pf15] |
Erase Field |
[erasefld] |
F16 |
[pf16] |
Erase Input |
[erinp] |
F17 |
[pf17] |
Field Mark |
[fieldmark] |
F18 |
[pf18] |
ホーム |
[home] |
F19 |
[pf19] |
Insert |
[insert] |
F20 |
[pf20] |
New Line |
[newline] |
F21 |
[pf21] |
PA1 |
[pa1] |
F22 |
[pf22] |
PA2 |
[pa2] |
F23 |
[pf23] |
PA3 |
[pa3] |
F24 |
[pf24] |
Page Up |
[pageup] | ||
Page Down |
[pagedn] | ||
Reset |
[reset] | ||
System Request |
[sysreq] | ||
Tab Field |
[tab] |
次のコーディング例は、メインフレームのリソース上で一般に実行されるアクションを示しています。
次のコードは、login および logoff リソースアクションの完全なサンプルです。このサンプルは、Top Secret リソースを使用する、ある特定の顧客の環境に合わせた内容になっています。したがって、コマンド、プロンプト、コマンドシーケンスなどのテキストは、配備環境によって異なる可能性があります。これらのリソースアクションは、XML 内の Javascript をラップします。
<ResourceAction name=’ACME Login Action’> <ResTypeAction restype=’TopSecret’> <act> var TSO_MORE = " ***"; var TSO_PROMPT = " READY"; var TS_PROMPT = " ?"; hostAccess.waitForString("ENTER YOUR APPLICATION NAME"); hostAccess.sendKeys("tso[enter]"); hostAccess.waitForString("ENTER USERID– "); hostAccess.sendKeys(user + "[enter]"); hostAccess.waitForString("TSO/E LOGON"); hostAccess.sendKeys(password); hostAccess.sendKeys("[enter]"); var pos = hostAccess.searchText(" -Nomail", false); if (pos != 0) { hostAccess.setCursorPos(pos); hostAccess.sendKeys("S"); } pos = hostAccess.searchText(" -Nonotice", false); if (pos != 0) { hostAccess.setCursorPos(pos); hostAccess.sendKeys("S"); } hostAccess.sendKeys("[enter]"); hostAccess.waitForStringAndInput(TSO_MORE); hostAccess.sendKeys("[enter]"); hostAccess.waitForStringAndInput(TSO_MORE); hostAccess.sendKeys("[enter]"); hostAccess.waitForStringAndInput("ISPF"); hostAccess.sendKeys("=x[enter]"); hostAccess.waitForString(TSO_PROMPT); var resp =hostAccess.doCmd("PROFILE NOPROMPT MSGID NOINTERCOM NOPAUSE NOWTPMSG PLANGUAGE(ENU) SLANGUAGE(ENU) NOPREFIX[enter]", TSO_PROMPT, TSO_MORE); hostAccess.waitForStringAndInput("ENTER LOGON:"); hostAccess.sendKeys(system + "[enter]"); hostAccess.waitForStringAndInput("USER-ID....."); hostAccess.sendKeys(user + "[tab]" + password); hostAccess.sendKeys("[enter]"); var stringsToHide = new java.util.ArrayList(); stringsToHide.add(password.decryptToString()); hostAccess.waitForString("==>", stringsToHide); hostAccess.waitForInput(); hostAccess.sendKeys("[pf6]"); hostAccess.waitForInput(); </act> </ResTypeAction> </ResourceAction>
<ResourceAction name=’ACME Logoff Action’> <ResTypeAction restype=’TopSecret’> <act> var TSO_PROMPT = " READY"; hostAccess.sendKeys("[clear]end[enter]"); hostAccess.waitForString(TSO_PROMPT); hostAccess.sendKeys("logoff[enter]"); </act> </ResTypeAction> </ResourceAction>
RACF リソースパラメータのページで「データセット規則の作成および削除」パラメータが選択されている場合は、Identity Manager によってデータセット規則が直接管理されます。ユーザー独自のデータセット規則を設定するには、次のようなアクションを定義します。
<ResourceAction name=’create after action’> <ResTypeAction restype=’RACF’> <act> var TSO_PROMPT = " READY"; var TSO_MORE = " ***"; var cmd1 = "addsd ’"+identity+".test1.**’ owner(’"+identity+"’)[enter]"; var result1 = hostAccess.doCmd(cmd1, TSO_PROMPT, TSO_MORE); </act> </ResTypeAction> </ResourceAction>