エラーで中断されない限り最後の行まで順番に実行される GeneXus コードをグループ化します。
Event
'ClientEventName' |
Control.AssociatedControlEvent
Composite
Event_code
EndComposite
EndEvent
ClientEventName
ユーザーイベントの名前です。
Control
AssociatedControlEvent イベントをプログラミングするコントロール名です。
AssociatedControlEvent
コントロールに関連付けられるそれぞれのイベント (コントロールタイプに応じて、タップ、ロングタップ、ドラッグ、ドロップ、PageChanged、ControlValueChanged など) です。
Event_code
イベントが発生した場合に実行されるコードの詳細を示します。 2 つ以上のコマンドが必要です。
Composite/EndComposite のコードブロックで、GeneXus コードをグループ化します。このコードは、途中の行でエラーが発生した場合を除いて、最後の行まで順番に実行されます。エラーが発生した場合は、シーケンスは中断されます。
したがって、主に次の 2 つが前提となります:
- 命令 (呼び出しまたは割り当て) の 1 つが失敗すると、残りは実行されません。
- エラーメッセージ (自動的なものと開発者がロードしたもの) がデバイス画面に表示されます。
1 つのイベントに対して複数回の呼び出しが行われる場合において、かならずしもこのコマンドを実行する必要はありません。代わりに &Err と &ErrMsg 変数を使用してエラー処理を実行できます。
&Err 変数の値は、エラーが発生したときは 0 より大きい値、処理が正常に実行された場合は 0 になります。
&Err 値が正のときは、その値がエラーの内容を示します:
- 1: 一般的なエラー、
- 2: ユーザーによるアクションのキャンセル
- 3: パラメーターの誤り。
イベントによって
Procedure オブジェクトや
Data Provider オブジェクトなどのサーバー側の GeneXus オブジェクトが呼び出されたときにエラーになった場合は、&Err の値は返却される HTTP コードを反映します。たとえば、HTTP 404 や 500 などです。
サーバーから応答がなかった場合は (HTTP コードなし)、&Err が 1 に設定されます。
&ErrMsg 変数にはエラーのデスクリプションが格納され、Composite ブロック内の場合はそのデスクリプションが画面に表示されます。
Composite コマンドを使用しない場合は、エラーメッセージは自動的にはエンドユーザーに表示されません。エラーの処理とエンドユーザーへの通知をどのように行うかはユーザー側の責任であることにご注意ください。
Event 'UpdateEmail'
Composite
UpdateEMail.Call(ClientId,&ClientEmail)
Interop.SendMessage("Your Email has been updated successfully in my database", ClientMobilePhone)
EndComposite
EndEvent
Event 'UpdateEmail'
UpdateEMail.Call(ClientId,&ClientEmail)
If &Err <> 0
msg(&ErrMsg)
Else
Interop.SendMessage ("Your Email has been updated successfully in my database", ClientMobilePhone)
EndIf
EndEvent
Composite の例
Grammar of Events on the Client Side and Composite Command
Events in Mobile Applications