GeneXus で生成されたオフラインアプリケーションがデバイスにインストールされるたびに、GXPendingEvents という補助テーブルがローカルデータベース内に自動的に作成されます。
GXPendingEvents テーブルは、オフラインで実行されたビジネスコンポーネントのすべての変更 (挿入、削除、更新) を、後でサーバーに複製するためにイベントとして格納します。各イベントには、そのイベントの状態を表す項目属性が設定されます。状態の値は、EventStatus ドメインによって定義されます:
値 |
名前 |
意味 |
1 |
Pending |
この状態のイベントは、デバイスによってサーバーに送信できる状態です。さらに、これらのイベントは、ビジネス コンポーネント トランザクションが実行されるたびに、作成されます。 |
2 |
ProcessingServer |
これは、サーバー側でイベントを処理中のときの一時的状態です。 |
3 |
ConfirmedServer |
この状態は、サーバー側にイベントが正常に複製されたことを意味します。確認済みのイベントは、格納しておく必要はないので、GXPendingEvents テーブルからすべて即座に削除されます。 |
4 |
RejectedServer |
この状態のイベントは、何らかのエラーの発生によりサーバー側で複製できませんでした。デバイスから、GetEvents メソッドおよび GxSynchroEventSD の [ EventErrors ] プロパティを使用することで、エラーコードおよびメッセージにアクセスできます。 |
5 |
CanceledUser |
イベントがユーザーによってキャンセルされたことを意味します。 |
6 |
RejectedFK |
2 つ以上の挿入イベントが送信され、そのうちの 1 つのイベントにほかのイベントへの外部キーが追加されている場合、そのイベントが失敗すると (RejectedServer 状態)、外部キーを持つイベントも失敗しますが、状態は RejectedFK になります。
たとえば、Customer-Invoice モデルがあり、Invoice が 1 つある Customer を挿入した場合、何らかの理由でこの Customer に関連付けられたイベントが複製時にサーバーによって却下されると、Invoice イベントは RejectedFK としてマークされます。
|
注:ProcessingServer、ConfirmedServer、CanceledUser はイベントの一時的状態であり、これらのいずれかの状態であるイベントはすべて、GXPendingEvents テーブルから削除されます。つまり、状態が Pending、RejectedServer、または RefectedFK のイベントだけが GXPendingEvents テーブルに残ります。
同期イベント API には、GXPendingEvents のデータにアクセスしてそれを操作できるメソッドがあります。
次のメソッドです:
検討事項
RejectedFK 状態のイベントは、GeneXus X Evolution 3 Upgrade 1 以降、Apple スマートデバイス (iOS) オフラインアプリケーションでのみサポートされます。
参考情報
|