mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 06:36:55 +01:00
* feat(community/agents): add AL agent quality guidance - add 20 agent knowledge rules with good and bad AL samples - clarify setup dialog shape, temporary persistence, permissions, profiles, instructions, capability registration, and interface wiring - add the community-owned AL agents review skill - make review fixture discovery layer-aware with custom, community, and Microsoft precedence - document layer-aware evaluation behavior * fix(community/agents): align setup and permission samples - mark agent setup pages as non-extensible where required - narrow the agent profile by hiding an unrelated sales-order field - define a dedicated read-only permission set for the sales review agent - assign AL-defined permission sets with system scope and the owning app ID - clarify the permission scope guidance for default access controls * Address agent review feedback
44 lines
1.3 KiB
AL
44 lines
1.3 KiB
AL
page 50100 "Sales Review Agent Setup"
|
|
{
|
|
PageType = ConfigurationDialog;
|
|
ApplicationArea = All;
|
|
SourceTable = "Sales Review Agent Setup";
|
|
SourceTableTemporary = true;
|
|
Extensible = false;
|
|
|
|
layout
|
|
{
|
|
area(Content)
|
|
{
|
|
part(AgentSetupPart; "Agent Setup Part")
|
|
{
|
|
ApplicationArea = All;
|
|
UpdatePropagation = Both;
|
|
}
|
|
}
|
|
}
|
|
|
|
trigger OnQueryClosePage(CloseAction: Action): Boolean
|
|
var
|
|
Agent: Codeunit Agent;
|
|
AgentSetup: Codeunit "Agent Setup";
|
|
TempAgentSetupBuffer: Record "Agent Setup Buffer" temporary;
|
|
AgentUserSecurityId: Guid;
|
|
begin
|
|
if CloseAction = CloseAction::Cancel then
|
|
exit(true);
|
|
|
|
CurrPage.AgentSetupPart.Page.GetAgentSetupBuffer(TempAgentSetupBuffer);
|
|
AgentUserSecurityId := AgentSetup.SaveChanges(TempAgentSetupBuffer);
|
|
Agent.SetInstructions(AgentUserSecurityId, GetInstructions());
|
|
Agent.Activate(AgentUserSecurityId);
|
|
exit(true);
|
|
end;
|
|
|
|
local procedure GetInstructions() Instructions: SecretText
|
|
var
|
|
InstructionsNameTxt: Label 'Instructions.txt', Locked = true;
|
|
begin
|
|
Instructions := NavApp.GetResourceAsText(InstructionsNameTxt);
|
|
end;
|
|
}
|