Page 6321 Power BI Deployments, source in 29
Source29
src/Layers/W1/BaseApp/Modules/System/PowerBI/Obsoleted/PowerBIDeployments.Page.al182 lines, Copyright (c) Microsoft Corporation. MIT
#if not CLEAN27
namespace System.Integration.PowerBI;
using System.Security.AccessControl;
using System.Security.User;
page 6321 "Power BI Deployments"
{
Caption = 'Power BI Deployments';
DeleteAllowed = false;
InsertAllowed = false;
LinksAllowed = false;
ModifyAllowed = false;
PageType = List;
SourceTable = "Power BI Customer Reports";
SourceTableTemporary = true;
Description = 'Page for letting the user delete their uploaded OOB PBI reports.';
ObsoleteReason = 'This functionality is no longer supported.';
ObsoleteState = Pending;
ObsoleteTag = '27.0';
layout
{
area(content)
{
group(Control3)
{
ShowCaption = false;
field(SelectedUser; SelectedUser)
{
ApplicationArea = All;
Caption = 'User';
Editable = false;
Enabled = IsUserPBIAdmin;
trigger OnAssistEdit()
var
User: Record User;
Users: Page Users;
begin
// Handles clicking the ellipsis button next to the user field.
Users.SetRecord(User);
Users.LookupMode(true);
if Users.RunModal() in [ACTION::OK, ACTION::LookupOK] then begin
Users.GetRecord(User);
SelectedUser := User."User Name";
SelectedUserSecurityId := User."User Security ID";
LoadReports();
end;
end;
trigger OnValidate()
var
User: Record User;
begin
// Handles typing a value into the user field.
User.Reset();
User.SetFilter("User Name", SelectedUser);
if User.FindFirst() then begin
SelectedUser := User."User Name";
SelectedUserSecurityId := User."User Security ID";
end else
Clear(SelectedUserSecurityId);
LoadReports();
end;
}
}
repeater("Default Reports")
{
Caption = 'Default Reports';
field(ReportName; Rec.Name)
{
ApplicationArea = All;
Caption = 'Report Name';
Editable = false;
}
field(ReportID; Rec.Id)
{
ApplicationArea = All;
Caption = 'Report ID';
}
}
}
}
actions
{
area(processing)
{
action(Delete)
{
ApplicationArea = All;
Caption = 'Delete';
Ellipsis = true;
Image = Delete;
Scope = Repeater;
ToolTip = 'Removes the deployed report from your Power BI account.';
trigger OnAction()
var
PowerBIReportUploads: Record "Power BI Report Uploads";
PowerBICustomerReports: Record "Power BI Customer Reports";
begin
CurrPage.SetSelectionFilter(PowerBICustomerReports);
if not Dialog.Confirm(DeleteQst, false) then
exit;
if PowerBICustomerReports.FindSet() then
repeat
if PowerBIReportUploads.Get(PowerBICustomerReports.Id, SelectedUserSecurityId) then begin
PowerBIReportUploads.Validate("Report Upload Status", PowerBIReportUploads."Report Upload Status"::PendingDeletion);
PowerBIReportUploads.Modify(true);
end;
until PowerBICustomerReports.Next() = 0;
PowerBIServiceMgt.SynchronizeReportsInBackground('');
LoadReports();
end;
}
}
area(Promoted)
{
group(Category_Report)
{
Caption = 'Reports';
actionref(Delete_Promoted; Delete)
{
}
}
}
}
trigger OnInit()
begin
IsUserPBIAdmin := PowerBIServiceMgt.IsUserAdminForPowerBI(UserSecurityId());
end;
trigger OnOpenPage()
begin
SelectedUser := CopyStr(UserId(), 1, MaxStrLen(SelectedUser));
SelectedUserSecurityId := UserSecurityId();
LoadReports();
end;
var
PowerBIServiceMgt: Codeunit "Power BI Service Mgt.";
DeleteQst: Label 'Would you like to delete the selection from the table?';
SelectedUserSecurityId: Guid;
SelectedUser: Code[50];
IsUserPBIAdmin: Boolean;
local procedure LoadReports()
var
PowerBIReportUploads: Record "Power BI Report Uploads";
PowerBICustomerReports: Record "Power BI Customer Reports";
begin
// Clear temp records
Rec.DeleteAll();
if IsNullGuid(SelectedUserSecurityId) then
exit;
PowerBIReportUploads.SetRange("User ID", SelectedUserSecurityId);
PowerBIReportUploads.SetFilter("Report Upload Status", '<>%1', PowerBIReportUploads."Report Upload Status"::Completed);
// Check all upload records for the user and find only the ones for customer reports
if PowerBIReportUploads.FindSet() then
repeat
if PowerBICustomerReports.Get(PowerBIReportUploads."PBIX BLOB ID") then begin
Rec.Copy(PowerBICustomerReports);
Rec.Insert();
end;
until PowerBIReportUploads.Next() = 0;
end;
}
#endif