GlobalEvents は、GeneXus によって既定でインポートされる外部オブジェクトです。開発者が変更可能なこのオブジェクトでは、Web アプリケーションやスマート デバイス アプリケーションのフォームに含まれるコンポーネント間でより柔軟にやり取りするために、グローバルイベントを作成できます。そのため、このオブジェクトは、組み込みモジュールの一部として配布されるのではなく、GeneXus のフォルダ内 (ナレッジベースの [ Root Module ] の下位) に用意されています。
グローバルイベントをトリガーできるオブジェクトと、それらのイベントを処理できるオブジェクトがあります。Web アプリケーションとスマート デバイス アプリケーションのいずれの場合も、イベントハンドラーは、UI があるオブジェクト (Web パネルや SD パネルなど) についてのみ、Event セクションのタブでプログラムできます。一方、グローバルイベントは次の任意の場所からトリガーできます:
- Web パネルおよび Web トランザクション。
- Panel for Smart Devices オブジェクトおよび WorkWithDevices オブジェクト。ユーザーイベントからは常にトリガーできますが、オフラインアプリケーションでは Start、Refresh、Load イベントからのみトリガーできます(1)。
- スマート デバイス アプリケーションのオフラインプロシージャーおよびビジネスコンポーネント(1)。
その後、次のようにハンドラーイベントを記述できます:
Event GlobalEvents.MyParmEvent(&aNumeric, &aString)
code_section
EndEvent
グローバルイベントは、アプリケーションの別の部分からトリガーします:
code_section
GlobalEvent.MyParmEvent(1,&StringCollection)
code_section
- GlobalEvents 外部オブジェクトの名前は変更できません。
- GlobalEvents 外部オブジェクトのプロパティやメソッドは編集できません。
- すべてのイベントの [ IsStatic ] プロパティを True に設定する必要があります (最近の GeneXus アップグレードでは、このプロパティは既定で事前に設定されており、読み取り専用として公開されています)。
- イベントでは、戻りパラメーターは使用できません。
- オンラインのスマート デバイス アプリでは、必ずクライアント側からグローバルイベントをトリガーする必要があります (サーバー側のイベントからトリガーすることはできません)。
- スマートデバイスのオフラインプロシージャーからグローバルイベントをトリガーするには、次のプロパティを設定する必要があります:
ルートノード:
[ iOS External Name ] プロパティ |
GXEOGlobalEvents |
[ Android External Name ] プロパティ |
GlobalEvents |
Android Package Name |
com.artech.android.api |
各 SD イベント:
[ iOS External Name ] プロパティ |
EventName |
[ Android External Name ] プロパティ |
EventName |
"EventName" は、イベントの [ Internal Name ] プロパティの値 (小文字で記述) です。
GeneXus 15 Upgrade 12 で作成したナレッジベースでは、ルートノードのプロパティが事前に設定されます。
ジェネレーター |
スマートデバイス (Android、iOS)、Web (.NET、Java) |
接続 |
オンライン、オフライン |
この外部オブジェクトは、GeneXus 15 以降で利用できます。
|