PCOMM やクライアント・アクセス(iAccess) からエミュレータ画面を実行中に
PCアプリケーションを起動するためには 5250エミュレータには
「iSeries Accessオーカーナイザー」 という大げさな名前の機能が用意されていて
STRPCO
+ [実行]
してから ( オーガナイザーの開始 )
STRPCCMD PCCMD('NOTEPAD.EXE') PAUSE(*NO)
+ [実行]
とすれば Windows の 「メモ帳」 のアプリケーションが起動する。
あるいは、
STRPCCMD PCCMD('C:\Temp\MyText.txt') PAUSE(*NO)
を実行すれば C:\Temp\MyText.txt
が 拡張子 .txt に関連づけられたアプリケーョンによって
オープンされる。
ところで STRPCO
コマンドはオーガナイザーを開始するためのコマンドであるが、
最初に STRPCO
を STRPCCMD
の実行の前に実行しておかないと STRPCCMD
の実行エラーとなる。
しかし STRPCO
を2回目に実行すると STRPCO
は
「 オーガーナイザーは既に活動状態である 」 とのエラー・メッセージを出して終了してしまう、
という誠に不便なコマンドでもある。
そこで STRPCO + STRPCCMD
を自分のCLPソースに組み込むとなると MONMSG
で
エラーを無視するようにしておく必要がある。
STRPCO MONMSG MSGID(IWS4010) STRPCCMD PCCMD(&PCCMD) PAUSE(*NO) MONMSG MSGID(IWS4010 IWS4032) EXEC(DO) : ENDDO
こんな具合である。
余談だが実はオーガナイザーの機能を実現するのに、STRPCO
コマンドは全く必要ないはずである。
IBM じゃないのにどうして、そのようなことがわかるのかと言うと実はオーガナイザーの
仕組みは至って簡単であり、STRPCCMD
で指示されたPCコマンドが 5250 ストリームの中に
埋め込まれているだけであり、5250 エミュレータは 5250画面に PCコマンドを表示せずに
自分自身が PCコマンドを実行しているだけなのである。
上記の例であると 「C:\Temp\MyText.txt」 という文字列そのものが 5250ストリームの中に
埋め込まれている。
ところがこの文字列 「C:\Temp\MyText.txt」 はエミュレータによって取り除かれて
5250画面上では表示はされない。
PCコマンドが5250画面に表示されていないのでユーザーは内部で特別な処理があたかも
実行されているかのように見えるが、5250ストリームに埋め込んだだけの話である。
5250エミュレータは自分で取り出した文字列 「C:\Temp\MyText.txt」 を実行するだけである。
5250エミュレータは元々PCクライアント上にいるのだから PCコマンドを実行するのは
至極簡単なことである。
このように STRPCO
が実行されていなくても PCコマンドを見つけることができるので、
技術的には STRPCO
を実行しなくても STRPCCMD
を実行できるはずなのである。
事実、AutoWeb は STRPCO
は必要ない。AutoWebも 5250 エミュレータと同じように
5250ストリームを解析しているのでオーガナイザー機能を持っているのである。