COBOLプログラムからWindows上のアプリケーションを起動
- クライアントAP起動機能について
-
クライアントAP起動機能について、いくつかコメントします。
クライアントAP起動機能は、COBOLプログラムを実行したPC/WSエミュレータが動いているPC上で実行されます。サーバ側ではないので注意してください。
・ただし、サーバ側にインストールしたPC/WSエミュレータからCOBOLプログラムを実行すれば、サーバ上で実行することができます。
・サーバ側で実行させたい、あるいはサーバから別のコンピュータのWindowsプログラムを実行させたいという時は、リモートAP Callを使用すれば可能です。(でも、リモートAP CallはGUIプログラムが実行できない。)
クライアントAP起動機能は、Windowsアプリケーションを起動するだけで、COBOLプログラム側にエラーコードは返しません。
従って、起動に失敗しても、COBOLプログラム側でリトライ処理とかエラーメッセージ表示処理ができません。
この機能に気が付くと、
#NFCNVでA-VXファイルをWindowsのCSVファイルに変換 --> この機能を使って、クライアントPC上でEXCELを起動してCSVファイルを編集
といったことがやれるのではないかと考える人がいると思います。
確かに可能ですが、少し注意点があります。
#NFCNVは「サーバ」側で実行され、クライアントAP起動機能は「PC/WSエミュレータのあるPC」側で実行されるということです。
つまり#NFCNVでファイルを出力する場所は、クライアントPCから参照可能な場所でないといけないということです。
いくつか方法があると思いますが、例えば、
1.サーバ側で適当なフォルダを1個作成
2.そのフォルダを共有にする(当然、アクセス権を設定して、関係者以外はアクセスできないようにする。)
3.クライアントPC側で、そのフォルダをネットワークドライブに割り当てる。
4.#NFCNVで、そのフォルダにCSVファイルを出力する。 5.COBOLアプリケーションは、ネットワークドライブのCSVファイルを指定して実行する。
クライアントPCで、フォルダをネットワークドライブに割り当てる
SWPATCHというA−VXファイルを、サーバのc:\qup\test.txtに変換出力、NT001というCOBOLプログラムで、そのtest.txtをnotepadで表示するサンプルJS。
/RUN #NFCNV; MN1=C_MN2=AD_PA1=MSD_PA2=_ PA3=SWPATCH_PA4=1_PA5=C80_PB1=C:\QUP\TEST.TXT_ PB2=TXTJ_PB3=EXCLUSIVE_PB7=C_PB8=ADD_MN1=Q_ /> ; /RUN NT001; /> ;
NT001は、サンプルプログラムUTUNOMを少し変更し、INDATAの値を”NOTEPAD Z\QUP\TEST.TXT”に変更します。(文字列の後ろは空白で埋めることを忘れないように!)