Skip to content

Commit

Permalink
Implement generic per user report notifyier
Browse files Browse the repository at this point in the history
  • Loading branch information
StefanMaron committed Jan 30, 2024
1 parent fd0f1ab commit bf16574
Show file tree
Hide file tree
Showing 5 changed files with 82 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ codeunit 50008 MarkingTestTypeNTSTM implements INtfyEventNTSTM

procedure DoCallNtfyEvent(NtfyEvent: Record NtfyEventNTSTM; Params: Dictionary of [Text, Text]) ReturnValue: Boolean;
begin
Evaluate(ReturnValue, NtfyEvent.NtfyMessage);
// Evaluate(ReturnValue, NtfyEvent.NtfyMessage); //fixme
end;

procedure GetMessage(NtfyEvent: Record NtfyEventNTSTM; Params: Dictionary of [Text, Text]) ReturnValue: Text[2048];
Expand Down
6 changes: 3 additions & 3 deletions MSDyn365BC.Ntfy.Test/tests/TestSendNotifications.Codeunit.al
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ codeunit 50004 "TestSendNotifications"
DummyNtfyType: Codeunit DummyNtfyTypeNTSTM;
begin
NtfyEvent.Init();
NtfyEvent.NtfyMessage := 'Hello World';
// NtfyEvent.NtfyMessage := 'Hello World'; //fixme
NtfyEvent.NtfyTopic := 'Hello World';
NtfyEvent.EventType := NtfyEvent.EventType::DummyNtfyType;
if not NtfyEvent.Insert() then;
Expand All @@ -35,12 +35,12 @@ codeunit 50004 "TestSendNotifications"
MarkingTestType: Codeunit MarkingTestTypeNTSTM;
begin
NtfyEvent.Init();
NtfyEvent.NtfyMessage := 'true';
// NtfyEvent.NtfyMessage := 'true'; //fixme
NtfyEvent.NtfyTopic := 'true';
NtfyEvent.EventType := NtfyEvent.EventType::DummyNtfyType;
if not NtfyEvent.Insert() then;
NtfyEvent.Init();
NtfyEvent.NtfyMessage := 'false';
// NtfyEvent.NtfyMessage := 'false'; //fixme
NtfyEvent.NtfyTopic := 'false';
NtfyEvent.EventType := NtfyEvent.EventType::DummyNtfyType;
if not NtfyEvent.Insert() then;
Expand Down
5 changes: 5 additions & 0 deletions MSDyn365BC.Ntfy/src/EventTypes/EventType.Enum.al
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,9 @@ enum 71179875 EventTypeNTSTM implements INtfyEventNTSTM
Caption = 'Sales document released';
Implementation = INtfyEventNTSTM = SalesDocumentReleasedNTSTM;
}
value(3; ReportFinishedProcessing)
{
Caption = 'Report finished processing';
Implementation = INtfyEventNTSTM = ReportFinishedProcessingNTSTM;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
codeunit 71179883 ReportFinishedProcessingNTSTM implements INtfyEventNTSTM
{
procedure SetSettings(NtfyEvent: Record NtfyEventNTSTM)
var
AllObjWithCaption: Record AllObjWithCaption;
FilterPageBuilder: FilterPageBuilder;
begin
FilterPageBuilder.AddTable('Report List', Database::AllObjWithCaption);
FilterPageBuilder.AddField('Report List', AllObjWithCaption."Object Type", 'Report');
FilterPageBuilder.AddField('Report List', AllObjWithCaption."Object ID");
if NtfyEvent.FilterText <> '' then
FilterPageBuilder.SetView('Report List', NtfyEvent.FilterText);
if FilterPageBuilder.RunModal() then begin
if not FilterPageBuilder.GetView('Report List').Contains('WHERE') then
NtfyEvent.Validate(FilterText, '')
else
NtfyEvent.Validate(FilterText, FilterPageBuilder.GetView('Report List'));
NtfyEvent.Modify(true);
end;
end;

procedure ResetSettings(NtfyEvent: Record NtfyEventNTSTM)
begin
NtfyEvent.Validate(FilterText, '');
NtfyEvent.Modify(true);
end;

procedure FilterNtfyEntriesBeforeBatchSend(var NtfyEvent: Record NtfyEventNTSTM; Params: Dictionary of [Text, Text])
begin
end;

procedure DoCallNtfyEvent(NtfyEvent: Record NtfyEventNTSTM; Params: Dictionary of [Text, Text]) ReturnValue: Boolean
var
FilterObjects: Record AllObj;
begin
ReturnValue := true;
if NtfyEvent.FilterText <> '' then begin
FilterObjects.SetView(NtfyEvent.FilterText);
FilterObjects.FilterGroup(2);
FilterObjects.SetRange("Object Type", FilterObjects."Object Type"::Report);
FilterObjects.SetFilter("Object ID", Params.Get('ReportID'));
ReturnValue := not FilterObjects.IsEmpty();
end;
end;

procedure GetMessage(NtfyEvent: Record NtfyEventNTSTM; Params: Dictionary of [Text, Text]) ReturnValue: Text[2048]
var
AllObjWithCaption: Record AllObjWithCaption;
ReportCaption: Text[249];
ReportFinishedLbl: Label 'Report %1 (%2) finished processing', Comment = '%1 - Report Caption, %2 - Report ID';
begin
AllObjWithCaption.SetRange("Object Type", AllObjWithCaption."Object Type"::Report);
AllObjWithCaption.SetFilter("Object ID", Params.Get('ReportID'));
AllObjWithCaption.SetLoadFields("Object Caption");
if AllObjWithCaption.FindFirst() then
ReportCaption := AllObjWithCaption."Object Caption";

exit(StrSubstNo(ReportFinishedLbl, ReportCaption, Params.Get('ReportID')));
end;



[EventSubscriber(ObjectType::Codeunit, Codeunit::ReportManagement, OnAfterDocumentReady, '', false, false)]
local procedure SentNtfyOnAfterReleaseSalesDoc(ObjectID: Integer; var Success: Boolean)
var
NtfyEvent: Record NtfyEventNTSTM;
Params: Dictionary of [Text, Text];
begin
Params.Add('ReportID', Format(ObjectID));
NtfyEvent.SendNotifications(NtfyEvent.EventType::ReportFinishedProcessing, Params);
end;

}
12 changes: 0 additions & 12 deletions MSDyn365BC.Ntfy/src/foundation/NtfyEvent.Table.al
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,6 @@ table 71179875 NtfyEventNTSTM
AllowInCustomizations = Never;
Caption = 'Filter Text';
}
field(5; NtfyTitle; Text[150])
{
Caption = 'Title';
AllowInCustomizations = Never;
//Temporary user only
}
field(6; NtfyMessage; Text[2048])
{
Caption = 'Message';
AllowInCustomizations = Never;
//Temporary user only
}
}

keys
Expand Down

0 comments on commit bf16574

Please sign in to comment.