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サーバーでのセキュリティ例外設定が必要ですので、忘れないようにしてください。

xobQuery:項目名の大文字小文字を保持する

xobQueryでの項目名についてです。

::\helper\xobquery.exe

-i sales.xml/tbl -o out.xml/tbl -q "select * from tbl"

上記のように入力する場合、sales.xmlの項目で「DOCUMENT_No」のように大文字を含む項目名が、出力では「document_no」のようにすべて小文字になるのが、デフォルトの仕様です。

下記のように /C を付けることにより、「DOCUMENT_No」のままで出力できます。

-i sales.xml/tbl/C -o out.xml/tbl -q "select * from tbl"

/table_name なしで指定している場合は、「/tbl」のように明示的にテーブル名を指定してから /C を付けてください。

ExcelシートからXMLに直接変換する場合も、/C が使えます。

-i sales.xlsx::データ/tbl/C -h -o out.xml/tbl

【corabo】画面表示がおかしい!

環境構築は終わったのだけれど‥‥

corabo のセットアップが完了し、さあログイン‥‥。しかし初期画面時点から、デザインが失われてしまっている――。

問題の状態:
f:id:xoblos:20171018194333p:plain 本来の状態:
f:id:xoblos:20171018194324p:plain

インターネット回線の速度や、JavaScript などの有効/無効によって、類似した画面の差異を目にすることはありますね。

しかしそれらにも問題が無い場合は、セットアップの工程にある――下図のような設定内容を、振り返る必要があるかもしれません。

f:id:xoblos:20171018194343p:plain

この設定は、「コントロール パネル\すべてのコントロール パネル項目\プログラムと機能」の『Windows の機能の有効化または無効化』の選択から行えます。‥‥上図で選択されている項目のチェックが外れている場合、デザインの欠けた corabo が実行されてしまいます。オフになっていた場合は、オンにしてから再確認してみましょう。(チェックのオン/オフで、マシンの再起動が必要になる場合もあります。)

「xoBlosLockService の実行設定」画面の保存時

 『corabo ご利用ガイド』の「業務定義」からアクセス可能なファイルやフォルダーを変更する に関する補足です。

下図は、ServerSettingWindow.exe をダブルクリックして起動した、「xoBlosLockService の実行設定」画面です(『corabo ご利用ガイド』より抜粋)。

 f:id:xoblos:20171015222946p:plain

設定を保存したのに、タイミングにより設定が反映されない場合は、Windowsの「サービス」画面から、xoBlosLockServiceを選択し、右クリック [再起動] することにより、設定が反映されます。

f:id:xoblos:20171015223619p:plain

corabo DB のバックアップをとるとき

SQL Server Management StudioのGUIを使用して、corabo DBのバックアップをとろうとしたときに、下記のようなエラーメッセージが出て失敗したら。

***.bakに読み込まれたメディアは1メディアファミリをサポートするようにフォーマットされていますが、バックアップデバイスの仕様では、2メディアファミリが必要です。

f:id:xoblos:20171015220036p:plain

 手順を見直してみましょう。

f:id:xoblos:20171015220127p:plain

f:id:xoblos:20171015220141p:plain

 既に上図のように、前回バックアップファイル名 c:\corabo\201709.bak が表示されていて、今回 c:\corabo\201710.bak という新しいファイルにバックアップをとりたいときは、古い方のファイル名を [削除] してから、新しいファイル名を [追加] してください。

こうしないと、 前述の「バックアップデバイスの仕様では、2メディアファミリが必要です。」のようなエラーメッセージが出ることがあります。

 

データにマッチキー項目が無い変換入力

マッチングの考えが抜けていたら?

変換入力。一例としてはマスタデータを用意し、基本入力データとマッチングをかけて、足りない情報を出力させる。制御シートを直接修正することもなく、マスタデータのメンテナンスのみで変更対応が行える。

‥‥しかし時として、補足すべき情報でもマッチさせるキーが無いというケースが発生します。このような場合のマッチングには、生成時点で参照される基本入力データの全レコードに共通の補足情報を追加して良いことと、それでいて変動する補足情報であることが大前提になります。

f:id:xoblos:20171013143034p:plain

上図のような極めて小さい情報も、マスタデータ化しておくことで変更対応がスムーズに行えるようになります。しかし基本入力データを見る限り、マッチングできる項目は無さそうですね。‥‥では制御シート側はどういう作りにしておく必要があるでしょうか。

f:id:xoblos:20171013140659p:plain

上図、決め手は『基本入力』『変換入力』両セクション内にあるキーワード『固定値』になります。マッチングさせる共通の値がお互いのデータ内に無いのであれば、無理矢理作ってしまえば良いのです。

青字の「#Dummy」は無論、基本入力データにも変換入力データにも存在しない項目なので、変数(お皿)扱いです。しかし、いずれの全レコードにも共通の値「A」を持つことになりました。‥‥ここまで来れば簡単ですね。どのデータも「平成」「1988」の値を取り扱うことができ、年号マスターを修正するだけで変更対応が行えるようになりました。

.NET Framework 3.5 を有効にするときの「HTTP アクティブ化」などの設定

xoBlos corabo のインストール時、Microsoft .NET Framework 3.5 SP1、および、 Microsoft .NET Framework 4.0 以降は必須のシステム要件となります。

NET Framework 3.5 が有効になっていない環境では、有効にしますが、「.NET Framework 3.5 Features」をチェックオンにしたときの、その下の階層の 「HTTP アクティブ化」、「非 HTTP アクティブ化」はチェックしなくて結構です。

f:id:xoblos:20171009194014p:plain

Windows Server 2012 では、チェックするとインストールに失敗することがあります。

また、Windows 7 では、下図のようにUIが英語になっていることがありますが、これもチェックオフのままにします。

f:id:xoblos:20171009194035p:plain