page 50571 "DEV Kill Session"
{
ApplicationArea = All;
Caption = 'Kill Sessions (Danger)';
Editable = true;
PageType = List;
SourceTable = "Active Session";
UsageCategory = Tasks;
InsertAllowed = false;
ModifyAllowed = false;
layout
{
area(Content)
{
repeater(Group)
{
field("User ID"; Rec."User ID")
{
ApplicationArea = All;
StyleExpr = StyleExp;
ToolTip = 'Specifies the value of the User ID field';
}
field("Session ID"; Rec."Session ID")
{
ApplicationArea = All;
StyleExpr = StyleExp;
ToolTip = 'Specifies the value of the Session ID field';
}
field("Login Datetime"; Rec."Login Datetime")
{
ApplicationArea = All;
StyleExpr = StyleExp;
ToolTip = 'Specifies the value of the Login Datetime field';
}
field("Client Type"; Rec."Client Type")
{
ApplicationArea = All;
StyleExpr = StyleExp;
ToolTip = 'Specifies the value of the Client Type field';
}
field("Client Computer Name"; Rec."Client Computer Name")
{
ApplicationArea = All;
StyleExpr = StyleExp;
ToolTip = 'Specifies the value of the Client Computer Name field';
}
field("Server Instance ID"; Rec."Server Instance ID")
{
ApplicationArea = All;
StyleExpr = StyleExp;
ToolTip = 'Specifies the value of the Server Instance ID field';
}
field("Server Instance Name"; Rec."Server Instance Name")
{
ApplicationArea = All;
StyleExpr = StyleExp;
ToolTip = 'Specifies the value of the Server Instance Name field';
}
field("Database Name"; Rec."Database Name")
{
ApplicationArea = All;
StyleExpr = StyleExp;
ToolTip = 'Specifies the value of the Database Name field';
}
}
}
}
actions
{
area(Processing)
{
action(Kill)
{
ApplicationArea = All;
Caption = 'Kill Session';
Image = Stop;
Promoted = true;
PromotedCategory = Process;
PromotedIsBig = true;
PromotedOnly = true;
ToolTip = 'Kill selected session';
trigger OnAction();
var
KillMsg: Text;
KillLbl: Label '%1 killed your current session.', Comment = '%1 User Id';
begin
if Rec."Session ID" = SessionId() then
exit;
KillMsg := StrSubstNo(KillLbl, UserID());
ClearLastError();
if not StopSession(Rec."Session ID", KillMsg) then
Error(GetLastErrorText);
end;
}
action(Delete)
{
ApplicationArea = All;
Caption = 'Delete Session';
Image = Stop;
Promoted = true;
PromotedCategory = Process;
PromotedIsBig = true;
PromotedOnly = true;
trigger OnAction();
var
KillMsg: Text;
KillLbl: Label '%1 killed your current session.', Comment = '%1 User Id';
begin
if Rec."Session ID" = SessionId() then
exit;
Rec.Delete(TRUE);
end;
}
action(Kill_Selected)
{
ApplicationArea = All;
Caption = 'Kill Session (Selected Record)';
Image = Stop;
Promoted = true;
PromotedCategory = Process;
PromotedIsBig = true;
PromotedOnly = true;
ToolTip = 'Kill selected session';
trigger OnAction();
var
KillMsg: Text;
KillLbl: Label '%1 killed your current session.', Comment = '%1 User Id';
begin
Killrec();
end;
}
action(Delete_Selected)
{
ApplicationArea = All;
Caption = 'Delete Session (Selected Record)';
Image = Stop;
Promoted = true;
PromotedCategory = Process;
PromotedIsBig = true;
PromotedOnly = true;
ToolTip = 'Delete Selected Session';
trigger OnAction();
var
KillMsg: Text;
KillLbl: Label '%1 killed your current session.', Comment = '%1 User Id';
begin
Deleterec();
end;
}
}
}
trigger OnAfterGetRecord()
begin
StyleExp := 'standard';
if Rec."Session ID" = SessionId() then
StyleExp := 'strong';
end;
local procedure Killrec()
var
RecKill: Record "Active Session";
KillMsg: Text;
KillLbl: Label '%1 killed your current session.', Comment = '%1 User Id';
begin
CurrPage.SetSelectionFilter(RecKill);
IF RecKill.FindSet() Then begin
repeat
if RecKill."Session ID" <> SessionId() then begin
KillMsg := StrSubstNo(KillLbl, UserID());
ClearLastError();
if not StopSession(RecKill."Session ID", KillMsg) then
Error(GetLastErrorText);
End;
until RecKill.Next() = 0;
end;
end;
local procedure Deleterec()
var
DelRec: Record "Active Session";
begin
CurrPage.SetSelectionFilter(DelRec);
IF DelRec.FindSet() Then begin
repeat
if DelRec."Session ID" <> SessionId() then begin
DelRec.Delete(TRUE);
End;
until DelRec.Next() = 0;
end;
end;
var
StyleExp: Text;
}
No comments:
Post a Comment