WSH(Windows Script Host)のサーバーでの実行

xoBlosの手順から、WSHWindows Script Host)のVBScriptまたはJScriptJavaScriptを呼び出して実行できます。

DesignerでローカルPCで実行するときは、スクリプトファイルの拡張子(.vbs.js)に関連付いたwscript.exeで実行しても問題ないのですが、エラーメッセージをポップアップ表示するような処理(WScript.Echo など)を入れていると、サーバー実行時にはプロセスが待ちになってしまい、問題となります。

このため、coraboサーバーでの実行を考えての、最良のWSHスクリプトの呼び出し方のサンプル設定画面が下図です(VBScriptでのDesigner画面の設定例)。

 f:id:xoblos:20171119111216p:plain

関連付けられたアプリケーションで実行しますか?: いいえ

実行するファイル(必須): C:\Windows\System32\cscript.exe

コマンドライン引数: sample.vbs arg1 arg2 (←名前、引数、フォルダ配置は自由)

標準エラー出力を書き込むファイル: StdErr.txt (←名前、フォルダ配置は自由)

エラー時のメッセージファイル: StdErr.txt (←名前、フォルダ配置は自由)

 

上記のように設定した上で、スクリプト(この例ではVBScript)から

    WScript.StdErr.WriteLine "単価にエラーがありました。"

のようにエラーメッセージを出力すると、下図のように反映出力されます。

 

【Designer実行でのエラーメッセージ】

f:id:xoblos:20171119111230p:plain

【coraboブラウザ実行でのエラーメッセージ】

f:id:xoblos:20171119111248p:plain

スクリプトからの WScript.StdErr.WriteLine の部分を、WScript.StdOut.WriteLine にすれば、標準出力にもデータを出力できます。その場合は、設定画面の「標準出力を書き込むファイル」にファイル名を指定します。

スクリプト言語での記述の差を下記にまとめました。

VBScript

    WScript.StdErr.WriteLine "エラーメッセージ"

    WScript.StdOut.WriteLine TankaData

JScriptJavaScript)】

     WScript.StdErr.WriteLine("エラーメッセージ");

     WScript.StdOut.WriteLine(TankaData);

また、C:\Windows\System32\cscript.exe を実行できるように、coraboサーバーでのセキュリティ例外設定が必要ですので、忘れないようにしてください。