![]() |
#1 |
Участник
|
vanvugt: How-to: Create Notifications – Steps to Take
Источник: https://dynamicsuser.net/nav/b/vanvu...-steps-to-take
============== ![]() It was special to experience how this resonated i me as that was exactly what I ran into when preparing this part of the training. Notifications as a functional feature are efficient, simple and powerful. To code them isn't surely rocket science, but to have a clear overview what is needed and how it can be structured can indeed be somewhat muddy. Triggered by Bogdan's question I came up with the following steps:
1.Create method NotificationId Each notification should a unique id being a Guid. For reusibility ease of use you need to create a function that will allow you to assign and retrieve this id. localprocedure NotificationId(): Guid; begin exit('fab25372-5716-4fad-b6ee-20c6d0f5105c'); end; Note that you have to fill in your own, unique Guid. 2.Create sender method The code part that sets up your notification is called the sender. This is how it could look like: localprocedure SendCompanyInfoMissingNotification() var CompanyInfoMissingNotification: Notification; begin CompanyInfoMissingNotification.ID := NotificationId(); CompanyInfoMissingNotification.Message := CompanyInfoMissingNotificationMsg; CompanyInfoMissingNotification.Scope := NotificationScope::LocalScope; CompanyInfoMissingNotification.AddAction(OpenCompanyInfoTxt, Codeunit::"Notication Company Info", 'ShowCompanyInfomationWizard'); CompanyInfoMissingNotification.Send(); end; 3.Create recaller method Each sender should in general be accompanied by a recaller: localprocedure RecallCompanyInfoMissingNotification() var CompanyInfoMissingNotification: Notification; begin CompanyInfoMissingNotification.ID := NotificationId(); CompanyInfoMissingNotification.Recall(); end; 4.Create method with send-or-recall logic Given sender and recaller we can now build the send-or-recall logic that will define whether a notification should be sent or recalled. localprocedure SendOrRecallCompanyInfoMissingNotification() var CompanyInfo: Record "Company Information"; begin CompanyInfo.Get(); if (CompanyInfo.Name = '') or (CompanyInfo."E-Mail" = '') then SendCompanyInfoMissingNotification() else RecallCompanyInfoMissingNotification(); end; 5.Trigger send-or-recall method in event subscribers to relevant publishers Eventually, now having all logic in place to create a notification and determine to get it shown, the last part we need to setup is when it shouild be triggered. [EventSubscriber(ObjectType::Page, Page::"Sales Order", 'OnAfterGetCurrRecordEvent', '', false, false)] localprocedure CompanyInfoMissingNotifOnAfterGetCurrRecordEvent(var Rec: Record "Sales Header") begin SendOrRecallCompanyInfoMissingNotification(); end; Hope this makes sense and can be of help. Источник: https://dynamicsuser.net/nav/b/vanvu...-steps-to-take
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
|
|