外部イベント

このイベントは、Magic uniPaaSが外部プログラムからイベントとデータを受け取り、処理することを可能にすることによって、同じコンピュータ上で動作しているMagic uniPaaSと外部プログラムの間を簡単に統合させることができます。

リッチクライアント

このイベントは、[ブラウザステータステキスト変更]イベントの代わりに利用できます。[ブラウザステータステキスト変更]イベントは、Internet Explorer7でデフォルトでブロックされるためです。

このイベントは、以下の構文を使用してブラウザコントロール内のHTMLページのスクリプトによって発行することができます。

window.external.MGExternalEvent(パラメータ)

リッチクライアントタスクでは、1つの(Unicode)BLOBパラメータのみ渡すことができます。

以下の例のようにすることで、VBスクリプトスクリプトから3つのパラメータ(年数、月数、日数)を渡してMGExternalEventを呼び出すことができます。[イベント]ロジックユニットは、これら3つのパラメータを受け取り、項目を更新し、画面を再表示させることで対応できます。

注意:

リッチクライアントでは、1つのパラメータしか渡せません。従って、これらの値を結合して1つの文字列にして渡す必要があります。

 

MGExternalEvent.gif

Windows APIの使用

Magic uniPaaSで外部イベントを発行させる場合、WM_COPYDATAメッセージタイプを持つSendMessageのWidowsAPIコマンドを使用します。このメッセージは、COPYDATASTRUCT構造のポインタが含まれています。Magic uniPaaSは、これらのパラメータをイベントキューに置き、ハンドラによるイベントの受け取りによってパラメータも受け取ります。

COPYDATASTRUCTの書式 ……この構造体には以下の3つのメンバが含まれています。

パラメータ ……cbDataメンバ内に配置されたパラメータは、バッファ内にNULLで終了する文字列です。Magic uniPaaSは、パラメータを以下の4つのデータ型として受け取ることができます。

例:

次の4つのパラメータを送る場合を想定します。店舗名、17、True、643.23。作成されるバッファは、以下のようになります。

-AXXX^-N17^-LT^-F643.23   ^:NULL文字を表します。

ロジックユニットの定義

外部イベントを処理する場合、[外部イベント]という内部イベントを指定した[イベント]ロジックユニットを作成する必要があります。このロジクユニット内で、渡されるパラメータを受け取るためのパラメータ項目を定義することができます。

実行可能なデモファイルやCPPファイル

Magic uniPaaSをインストールすると、外部イベントの呼出しを行うことのできる実行可能ファイルとしてMsg2mgic.exeが提供されます。詳細については、MSG2MGICユーティリティを参照してください。