Benachrichtigungen erstellen und senden
Um eine Benachrichtigung zu erstellen, müssen Sie eine Variable vom Datentyp Notification definieren. Einige Eigenschaften und Funktionen, die Sie für eine Variable vom Datentyp Notification verwenden können, lauten:
ID – Gibt einen Bezeichner für die Benachrichtigung an.
Nachricht – Gibt den Inhalt der Benachrichtigung an, die in der Benutzeroberfläche angezeigt wird.
Umfang – Gibt den Bereich an, in dem die Benachrichtigung angezeigt wird. Sie müssen diese Eigenschaft nicht angeben, da der Standardwert LocalScope lautet.
Send – Sendet die Benachrichtigung, die vom Client angezeigt werden soll.
AddAction – Fügt der Benachrichtigung eine Aktion hinzu. Mit der Eigenschaft AddAction können Sie eine bestimmte Methode in einer anderen Codeunit ausführen.
SetData – Legt einen Dateneigenschaftswert für die Benachrichtigung fest.
GetData – Ruft einen Dateneigenschaftswert aus der Benachrichtigung ab.
Recall – Ruft eine gesendete Benachrichtigung ab.
Wenn Sie eine ID angeben, können Sie diese Benachrichtigung mit der Funktion Recall abrufen. Durch die Verwendung einer ID wird auch sichergestellt, dass Benachrichtigungen mit derselben ID nur einmal in der Liste angezeigt werden.
Um eine grundlegende Benachrichtigung zu senden, müssen Sie eine Nachricht bereitstellen und die Funktion Senden verwenden. Seien Sie vorsichtig mit der Funktion Message. Sie können keine Platzhalter wie bei einer regulären Message-Aussage verwenden. Wenn Sie Platzhalter verwenden möchten, müssen Sie die Funktion StrSubstNo verwenden, um Platzhalter durch ihre Werte zu ersetzen.
var
MyNotification: Notification;
begin
MyNotification.Id('2f511c20-b456-4894-8472-4eed76826c65');
MyNotification.Message('Here comes your notification text.');
MyNotification.Send();
end;
Sie können der Benachrichtigung auch eine Aktion hinzufügen. Mit dieser Funktion kann der Benutzer die Aktion auswählen und eine Funktion in einer Codeunit ausführen. Um eine Aktion mit einer Benachrichtigung zu senden, verwenden Sie die Funktion AddAction.
MyNotification.AddAction(Caption, CodeUnitID, MethodName);
Das folgende Beispiel ändert das vorherige Beispiel mithilfe der Funktion AddAction.
var
MyNotification: Notification;
ShowDetailsTxt: Label 'Show details';
begin
MyNotification.Id('2f511c20-b456-4894-8472-4eed76826c65');
MyNotification.Message('Here comes your notification text.');
MyNotification.AddAction(ShowDetailsTxt, Codeunit::"Notif Mgmt", 'ShowInfo');
MyNotification.Send();
end;
Das folgende Beispiel zeigt, wie eine globale Funktion in einer anderen Codeunit erstellt wird, die den Datentypparameter Notification aufweist. Sie können der Funktion zur Abwicklung der Aktion Code hinzufügen.
codeunit 50102 "Notif Mgmt"
{
procedure ShowInfo(MyNotification: Notification)
begin
Page.Run(Page::"Customer List");
end;
}
Sie können auch Daten an die Funktion Codeunit übergeben. Daher können Sie die Daten nicht als Parameter übergeben, sondern müssen die Funktionen SetData und GetData verwenden, um der Benachrichtigung Daten hinzuzufügen. Die Funktionen SetData und GetData definieren die Daten als Schlüssel-Wert-Paar. Das Schlüssel-Wert-Paar kann nur Textdatentypen akzeptieren. Wenn Sie den Wert „DateTime“ oder eine Ganzzahl übergeben möchten, müssen Sie zuerst den Wert formatieren.
var
MyNotification: Notification;
ShowDetailsTxt: Label 'Show details';
begin
MyNotification.Id('2f511c20-b456-4894-8472-4eed76826c65');
MyNotification.Message('Here comes your notification text.');
MyNotification.SetData('Created', Format(CurrentDateTime, 0, 9));
MyNotification.SetData('CustomerNo', '10000');
MyNotification.AddAction(ShowDetailsTxt, Codeunit::"Notif Mgmt", 'ShowInfo');
MyNotification.Send();
end;
Die Funktion GetData ruft die Daten erneut durch Verwendung des Schlüssels ab.
codeunit 50102 "Custom Notification Management"
{
procedure ShowInfo(MyNotification: Notification)
var
Customer: Record Customer;
CustomerNo: Text;
Created: DateTime;
begin
CustomerNo := MyNotification.GetData('CustomerNo');
Evaluate(Created, MyNotification.GetData('Created'));
if Customer.Get(CustomerNo) then
Page.Run(Page::"Customer Card", Customer);
end;
}