EventSender.PostExternalEventメソッド

 

説明

外部イベントを送付します。

 

受け手を特定した送付

serviceにサービス名、portIdにポートIDを指定した場合、受け手が特定され、対応するサービス名とポートIDを持つ受け手へイベントが伝えられます。イベントの送付前に、指定したserviceportIdの正当性検査が行われ、対応するサービス名とポートIDを持つ受け手が待ち受け状態にあることが確認されます。

 

受け手を特定しない送付(マルチキャスト)

serviceにサービス名、portId"*"を指定した場合、受け手を特定せず、同一のサービス名を持つすべての受け手にイベントが伝えられます。この場合、受け手の存在は確認されません。

 

外部イベントの伝達保証

すべての外部イベントは、伝達保証がありません。従って、受け手により実際にイベントが受け取られたことを確認することや、受け手が送り手に応答を返すことはできません。

 

送り手が、受け手によりイベントが処理されたことを確認するためには、受け手から別の外部イベントとして、送り手に応答結果を返すなどの処理が必要となります。

 

PostExternalEventメソッドの復帰

PostExternalEventメソッドは、送付する外部イベントを受け取る相手により、復帰する契機が異なります。

 

送付された外部イベントをBiz/Browserが受け取った場合、対応するイベントハンドラの有無に関わらず、イベントキューに格納されPostExternalEventの呼び出しは直ちに復帰します。

 

送付された外部イベントをBizEventListener ActiveXオブジェクトが受け取った場合、ActiveXのイベント処理が完了するまでPostExternalEventはブロックされます。従って、外部イベントの処理中にBiz/Browserの応答が必要となるような操作を実行すると、デッドロック状態に陥る可能性があることに注意してください。

 

マルチキャスト指定の場合、全ての受け手に対して上記と同様の送付が行われた後に復帰します。

 

呼出形式

sender.PostExternalEvent( service, pottId, eventName, param )

 

戻り値

なし

 

引数

String service

外部イベントのサービス名を指定します。

サービス名の命名規則にしたがった名前とする必要があります。

 

String portId

外部イベントを受け取るポートIDを指定します。

"*"を指定すると、受けてのポートIDに関わらず、serviceのサービス名で待ち受け状態にある全ての受け手に送付されます。

ポートIDの命名規則にしたがった名前とする必要があります。

 

String eventName

送付するイベント名。

CRSのクラス名規則にしたがった名前とする必要があります。

 

String param

または

UString param

イベントに関連するパラメータ。最大で4096バイト(4096文字)までの文字列を指定することができます。

 

よりUStringの指定が可能になりました。

ValueTypeUStringとしてEventSenderオブジェクトを作成した場合は引数をUStringとして扱います。

 

例外

ExternalEvent-3

サービス名が長すぎます

 

ExternalEvent-4

サービス名が不正です

 

ExternalEvent-5

ポートIDが長すぎます

 

ExternalEvent-6

ポートIDが不正です

 

ExternalEvent-10

送付先のサービスまたはポートが見つかりません

 

ExternalEvent-11

イベント名が長すぎます

 

ExternalEvent-12

イベント名が不正です

 

ExternalEvent-13

パラメータが長すぎます

 

使用例

var sender = new EventSender;
try {
    sender.PostExternalEvent("SALES", "HistoryView", "QUERY", "ZP0001");
} catch (ex) {
    :
}

 

 



「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る