WorkwithPlus13の通知機能(Notifications)
かなり楽しみにしていた機能でして、詳細を確認してみました。
利用方法としてはWorkwithPlusのデザインシステムウィザードのステップ⑤で、
「通知を含める」にチェックを入れるだけです。
右上に通知アイコンと通知件数のバッジが表示される。
クリックするとこんな感じ。
私の想像では通知用のテーブルとAPIが用意されて、それを使って通知を登録したり、
通知から遷移したりするのだろうと思っていたのですが、もっと全然シンプルな方式でした。
結局のところは上記画像の見た目のコントロールのみが提供されます。
コントロールにはSDTで情報を受け渡す。
SDTの中に通知情報とクリックしたときのURLをセットしておく。
①通知情報のSDTの編集は自分で行う
②通知情報のSDTの元ネタは自分でトランザクション定義をする
③通知情報を管理するための部品は自分で用意する
という感じです。
すごくシンプルで潔く、自分で用意しないといけないものが多いですが、
自由度は高いので、この形で良いのかなと感じました。
通知を消すタイミング(見たら消す、処理完了したら消す、時間で消す 等)とか、
通知の管理(部門や権限で表示範囲の制御、共通通知や個別通知の分類 等)とか、
色んな要件が出てきたときに、通知トランザクションの構造や仕様も融通が利かせられますので。
通知のコントロールはマスターページに配置されており、
WorkWithPlusMasterPageのEventsを確認すると、以下の記述があります。
◆「すべての通知をチェック>」のメッセージ内容とクリックしたときにどこに遷移するかを設定する
&NotificationsData = new()
&NotificationsDataItem = new()
&NotificationsDataItem.Title = 'WWP_Notifications_CheckAllNotifications'
&NotificationsDataItem.EventKey = !'SeeNotifications'
&NotificationsDataItem.IsDivider = False
&NotificationsData.Add(&NotificationsDataItem)
※デフォルトではどこにも遷移しない
実際の業務では、通知一覧画面を用意してそこに遷移させるのが良いかな
◆通知情報の編集
ddo_Bookmarks.Tooltip = 'WWP_Bookmark_Tooltip'
ddo_Bookmarks.TitleControlAlign = !"Left"
&SDTNotificationsData = WWPBaseObjects.GetNotificationSamples()
&NotificationsDataItem = new()
&NotificationsDataItem.Title = GetNotificationsToDisplay(&SDTNotificationsData)
&NotificationsDataItem.EventKey = !'<#RawHTML#>'
&NotificationsDataItem.IsDivider = False
&NotificationsData.Add(&NotificationsDataItem, 1)
ddo_Notifications.TitleControlAlign = !"Left"
ddo_Notifications.Update(iif(&SDTNotificationsData.Count > 0, &SDTNotificationsData.Count.ToString().Trim(), ''), ddo_Notifications.Icon)
・「GetNotificationSamples」がデータプロバイダーで、デフォルトのメッセージ内容が編集されている
実際の業務では、このデータプロバイダーの中身を通知情報テーブルからの編集にするか、
データプロバイダーではなくプロシージャにして、色々な条件を加えていくか。
・「ddo_Notifications.Update」はバッジの数値を設定するメソッドかな
・「NotificationsDataItem」SDTの詳細説明がないですね・・・
.EventKeyはその通知がクリックされた時にイベントが発行できるのかな?
.Linkがあるので、通知がクリックされた時に画面遷移させる場合は、ここを編集するようですね
.IsDividerはなんだろ?区切り線の有無かな?
整理すると以下のタスクを行えば通知機能が使えるということですね。
①通知トランザクションを定義する
キー項目はSEQ(従属項目でユーザーIDをつけて、ユーザー毎に管理)
②マスターページに通知トランザクションから自分向けのデータを読み出して、
通知SDT/通知バッジ数を編集する処理を入れる
③通知一覧画面を作成する。必要があれば通知詳細画面も。
④共通部品として通知登録プロシージャを用意する
・渡されたパラメータで通知トランザクションを登録する
通知メッセージ
通知クリック時の遷移先URL
通知期間
通知の種類(アイコンや文字色をコントロールする場合)
等々
⑤共通部品として通知更新プロシージャを用意する
・通知トランザクションのステータスを更新する
コメント
コメントを投稿