本ページでは簡単なリクエスト管理ページの作成を例として、プッシュ通知の作成方法と利用例を紹介します。
プッシュ通知を利用することで、他のユーザーの操作などを通知として受け取り、それをトリガーにしてコマンドを実行することが出来ます。本ページでは、他のユーザーのデータ更新を検知して、一覧ページをリアルタイムに更新する機能を実装します。
使い方
次のような「リクエスト」テーブルを作成し、テーブルからページを生成します。
ページの生成手順はテーブルからページを作成を参照してください。
[作成]リボンタブ - [プッシュ通知]ボタンをクリックし、[新しいプッシュ通知の作成]ダイアログを開きます。
[新しいプッシュ通知の作成]ダイアログで、次のような「リフレッシュ通知」を作成します。
[OK]ボタンをクリックして[新しいプッシュ通知の作成]ダイアログを閉じると、作成されたプッシュ通知がナビゲーション ウィンドウに表示されます。
アイコンをクリックすると、プッシュ通知の各種設定が展開表示されます。[全般]/[パラメーター]をダブルクリックすると、それぞれのダイアログが表示されます。
プッシュ通知を選択し右クリックすると、コンテキストメニューが表示され、[開く]や[複製]が行えます。
「リクエスト」テーブルのレコード追加時をトリガーとしてプッシュ通知を送信する、次のスケジュールタスクを作成します。
スケジュールタスクの作成手順はスケジュールタスクを参照してください。
コマンドを次のように設定してください。パラメーターに設定された値が、送信されるプッシュ通知に情報として付与されます。
生成された一覧ページのページロード時のコマンドに、プッシュ通知を受信する処理を実装します。
結果表示用に、一覧ページに次のように行を追加します。リストビューの列幅は、見やすいように任意に設定してください。
ページロード時のコマンドを、次のように設定します。「プッシュ通知の登録」コマンドは、そのページで指定したプッシュ通知を受信可能にするコマンドです。プッシュ通知の通信はページごと(ブラウザーのタブごと)に独立しているため、受信したいページごとにこのコマンドを設定する必要があります。
「プッシュ通知の登録」コマンドの後に、プッシュ通知受信後に実行するコマンドを設定できます。次のように、プッシュ通知の内容を表示し、リストビューを再表示するコマンドを設定します。
プッシュ通知の動作を確認します。
次のように、開発時のユーザーアカウントを設定します。手順については開発時ユーザーアカウント管理へのログインを参照してください。
次の手順で動作を確認します。
「tanto1」でログインした一覧ページが、プッシュ通知を受け取って自動で更新されます。
また、このときブラウザーの開発者ツールのコンソールタブから、実際に受信したプッシュ通知の内容を確認できます。
通知グループを利用することで、通知先を限定してプッシュ通知を送信できます。上記で作成したリクエスト管理ページに、リクエストのオープン機能を実装し、「担当者」ロールを持つユーザのみが受信できるプッシュ通知を実装します。
リクエストのオープン時にプッシュ通知を送信する、次のサーバーサイドコマンドを実装します。
サーバーサイドコマンドの作成手順については、サーバーサイドコマンドの基本型のパラメーターを参照してください。
今回は、戻り値タブの設定は不要です。コマンドタブでは「プッシュ通知の送信」コマンドの[送付先]に通知グループ「担当者」を指定します。
通知グループ「担当者」に参加する、次のサーバーサイドコマンドを作成します。
通知グループを指定したプッシュ通知を受信するには、その通知グループに参加している必要があります。通知グループへの参加は、サーバーサイドコマンドの「通知グループ参加」コマンドを使用します。
登録・更新ページに「オープン」ボタンを作成します。
任意の場所に、ログインユーザー型セルと「オープン」ボタンを配置します。また、「ステータス」を標準セル型にして、ユーザーサイドでの入力を不可にします。
「オープン」ボタンのコマンドを、次のように設定します。
パラメーター「user」には、ログインユーザー型セルのセル位置を指定します。%CurrentUser%キーワードからログインユーザー名を設定できます。
一覧ページのページロード時のコマンドに、ログインユーザーが「担当者」ロールを持つとき、通知グループ「担当者」に参加する処理を追加します。
プッシュ通知の動作を確認します。
次の手順で動作を確認します。
「tanto1」でログインした一覧ページが、プッシュ通知を受け取って自動で更新されます。
レコード更新時にプッシュ通知を送信することで、同じレコードを参照しているユーザーにレコードの更新を伝えることが出来ます。上記で作成したリクエスト管理ページに、レコード更新時のプッシュ通知を実装します。
プッシュ通知「更新通知」を作成します。
更新されたレコードを参照しているかを判断するために、プッシュ通知のパラメータにID情報を持たせます。パラメータを以下のように設定します。
レコード更新時に「更新通知」を送信するスケジュールタスクを作成します。
以下のようなスケジュールタスク「リクエスト更新時の通知」を作成します。
レコードの更新ページにプッシュ通知受信時のコマンドを作成します。
「リクエスト_登録・更新の共通ページ」のページロード時のコマンドに、以下のコマンドを設定します。
受信したプッシュ通知の「id」パラメータと、表示されているレコードのIDが等しいとき、ユーザーにレコードが更新されたことを伝えます。
プッシュ通知を利用して、様々なリアルタイム処理を実装することが出来ます。ただし、あまりにも通知の頻度が多い場合、受信後の処理が短時間に何度も実行され、サーバーに高い負荷をかけるおそれがあることに注意してください。