1:再登録:COBOLからWindowsが見えないか? イトチャン 06/26 00:36 プログラムライブラリ(SUL/PML/JSL/LMLなど)のメンバーをテキストに変換しメールなどで送り元に戻すプログラムを作成しています。 ライブラリの存在やメンバーの確認は出来ますが、Windowsのファイルの確認が出来ません。 COBOLからWindowsのファイルの存在確認が出来る方法を教えてください。 2:Re:再登録:COBOLからWindowsが見えないか? tahrayan 06/26 00:54 イトチャンさん、こんばんは。 ちょうど行き違いになってしまったようです。 全然質問が違いましたね。 オフコン側からWindowsのファイルの存在確認が出来る方法ですか・・・。 すみません。すぐには思いつきません。 ちょっと考えてみますが、誰か他の人に良い案があるかもしれません。 3:Re:再登録:COBOLからWindowsが見えないか? 温泉好きのうさぎ 06/30 20:39 決してスマートとは言えないと思いますが、以下のような処理を行うCOBOLのプログラムを作成してはいかがでしょうか。 (1) 存在確認したいWindowsファイルのパスを含むDosコマンドのデータを、ファイル連携機能のサーバファイルアクセスを使って、WindowsファイルとしてA-VXサーバーの共有領域に出力する。 (2) そのときのWindowsファイルの拡張子を「.bat」として、バッチファイルにしておく。 (3) WSエミュレータのクライアントAP起動機能を使って、上で出力したバッチファイルを起動する。(””27”Q00〜”のDISPLAY) (4) バッチファイルには存在確認の結果を返すようなコマンドを記述しておく。 (5) 存在確認の結果を受け取る。 具体的にどのようなDosコマンドを記述したバッチファイルを出力すればよいのかというと、残念ながら私はDosコマンドの知識が乏しいもので、以下のようなものしか思いつきません。 (見やすくするために語と語の間の空白を大きく取ってあります。)
ここで、 ¥¥□¥□¥□.TXT は、存在確認したいファイル ¥¥×¥×¥無.TXT は、存在しなかったときの結果値(例えば0)が入っているファイル ¥¥○¥○¥有.TXT は、存在したときの結果値(例えば1)が入っているファイル ¥¥△¥△¥△.TXT は、結果を検査するためのファイル ¥△¥△.TXTのファイルもサーバファイルアクセスによって定義しておき、COBOLから直接参照して内容値を検査し、0であれば無し、1であれば有りと判断します。 なお、この検査用ファイルは実行前にあらかじめ値をスペースクリア等しておいて、コマンドが実行されたかどうかの判断もできるようにしておき、まだであれば少し時間をおいて再試行するような動きにしておけばよいでしょう。 4:Re:再登録:COBOLからWindowsが見えないか? tahrayan 07/02 01:26 温泉好きのうさぎさん、こんにちは。 ・ファイル連携機能のサーバファイルアクセスは、サーバ側にファイルを落とします。 ・WSエミュレータのクライアントAP起動機能は、クライアント側(パソコン側)のファイルを実行します。 このままだとファイルがサーバとパソコンになってうまくいかないので、工夫して解決したということですよね。 1.サーバにパソコン側からもアクセスできる共有フォルダをあらかじめ作る。 2.そこにファイル連携機能を使ってオフコン側からWindowsのバッチファイルを出力する。 3.そして、クライアントAP起動機能を使って、そのバッチファイルをパソコン側から実行する。 4.結果をテキストファイルに出力する。 5.もう一回ファイル連携機能を使って結果をオフコン側に取り込む。 ただ、思うに、パソコン側でバッチファイルを実行するためには、サーバ側のいろいろなところが パソコン側から丸見えの状態でないといけない。 ・パソコン側から実行するファイルのあるフォルダ。 ・確認するファイルの入っているフォルダ。 これはセキュリティ上危なそうです。 WSエミュレータのクライアントAP起動機能は、オフコン側からパソコン側のバッチファイルや exeを実行するためのものですが、たしか別売りの製品でオフコン側からサーバ側のバッチ ファイルやexeを実行するものがあったはずです。 いつものようにお値段お高く、この程度の用途のためだけに購入する必要があるかどうかは 疑問です。 単純にサーバのWindows側のファイルの存在確認するだけなのだから、COBOLに直接Windows側 ファイルアクセス用の命令があったり、#NFCNVのようなWindowsファイルアクセス(例えば 存在確認やフォルダ内ファイル名一覧情報を入手したり、ファイル削除したり、移動したり) するユーティリティがあっても良いと思うのですがね。 そういう簡単にできる方法が意外とない。 |