From 1a9897441c2e0ae24929727b43fadace6e8621e1 Mon Sep 17 00:00:00 2001 From: Qasim Ikram Date: Fri, 24 Jul 2026 11:24:48 +0200 Subject: [PATCH] Enable manual task creation for Sales Order Agent Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../Integration/SOACreateTaskImpl.Codeunit.al | 9 +++++++++ .../src/Setup/SOAMetadataProvider.Codeunit.al | 18 +++++++++++++++++- .../src/Setup/SOAMetadataProvider.EnumExt.al | 2 +- .../app/src/Setup/SOASetup.Page.al | 6 ++---- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/Apps/W1/SalesOrderAgent/app/src/Integration/SOACreateTaskImpl.Codeunit.al b/src/Apps/W1/SalesOrderAgent/app/src/Integration/SOACreateTaskImpl.Codeunit.al index b9bfbcbf28e..20aaf1019ee 100644 --- a/src/Apps/W1/SalesOrderAgent/app/src/Integration/SOACreateTaskImpl.Codeunit.al +++ b/src/Apps/W1/SalesOrderAgent/app/src/Integration/SOACreateTaskImpl.Codeunit.al @@ -25,6 +25,15 @@ codeunit 4415 "SOA Create Task Impl" GlobalAgentUserSecurityID := NewAgentUserSecurityID; end; + internal procedure OpenCreateTaskPage(AgentUserSecurityID: Guid) + var + SOACreateTask: Page "SOA Create Task"; + begin + SOACreateTask.SetAgentUserSecurityID(AgentUserSecurityID); + SOACreateTask.LookupMode(true); + SOACreateTask.RunModal(); + end; + internal procedure GetCurrentUserSalespersonCode(): Code[20] var UserSetup: Record "User Setup"; diff --git a/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOAMetadataProvider.Codeunit.al b/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOAMetadataProvider.Codeunit.al index 4de92c1ceb6..da823480aa7 100644 --- a/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOAMetadataProvider.Codeunit.al +++ b/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOAMetadataProvider.Codeunit.al @@ -11,7 +11,7 @@ using System.AI; using System.Reflection; using System.Security.AccessControl; -codeunit 4401 "SOA Metadata Provider" implements IAgentMetadata, IAgentFactory +codeunit 4401 "SOA Metadata Provider" implements IAgentMetadata, IAgentFactory, IAgentManualTaskCreation { Access = Internal; InherentEntitlements = X; @@ -74,7 +74,23 @@ codeunit 4401 "SOA Metadata Provider" implements IAgentMetadata, IAgentFactory SOASetupCU.GetDefaultAccessControls(TempAccessControlBuffer); end; + procedure IsManualAgentTaskCreationEnabled(AgentUserId: Guid; ManualTaskType: Enum "Manual Agent Task Creation Type"): Boolean + begin + exit(ManualTaskType = ManualTaskType::Default); + end; + + procedure IsMultipleFileUploadAllowed(AgentUserId: Guid): Boolean + begin + exit(false); + end; + + procedure CreateManualAgentTask(AgentUserId: Guid; Files: List of [FileUpload]) + begin + SOACreateTaskImpl.OpenCreateTaskPage(AgentUserId); + end; + var SOAAnnotation: Codeunit "SOA Annotation"; + SOACreateTaskImpl: Codeunit "SOA Create Task Impl"; SOASetupCU: Codeunit "SOA Setup"; } \ No newline at end of file diff --git a/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOAMetadataProvider.EnumExt.al b/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOAMetadataProvider.EnumExt.al index 4cbfa38f8ec..242cc9e87a0 100644 --- a/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOAMetadataProvider.EnumExt.al +++ b/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOAMetadataProvider.EnumExt.al @@ -13,6 +13,6 @@ enumextension 4400 "SOA Metadata Provider" extends "Agent Metadata Provider" value(4400; "SO Agent") { Caption = 'Sales Order Agent'; - Implementation = IAgentFactory = "SOA Metadata Provider", IAgentMetadata = "SOA Metadata Provider", IAgentTaskExecution = "SOA Agent Task Execution"; + Implementation = IAgentFactory = "SOA Metadata Provider", IAgentMetadata = "SOA Metadata Provider", IAgentTaskExecution = "SOA Agent Task Execution", IAgentManualTaskCreation = "SOA Metadata Provider"; } } \ No newline at end of file diff --git a/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOASetup.Page.al b/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOASetup.Page.al index 9322d931ad9..7809af832c1 100644 --- a/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOASetup.Page.al +++ b/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOASetup.Page.al @@ -122,7 +122,7 @@ page 4400 "SOA Setup" trigger OnDrillDown() var - SOACreateTask: Page "SOA Create Task"; + SOACreateTaskImpl: Codeunit "SOA Create Task Impl"; begin CurrPage.AgentSetupPart.Page.GetAgentSetupBuffer(TempAgentSetupBuffer); if (TempAgentSetupBuffer.State <> TempAgentSetupBuffer.State::Enabled) and (Rec."Email Monitoring" or (Rec."Email Address" <> '')) then begin @@ -148,9 +148,7 @@ page 4400 "SOA Setup" Commit(); - SOACreateTask.SetAgentUserSecurityID(Rec."User Security ID"); - SOACreateTask.LookupMode(true); - SOACreateTask.RunModal(); + SOACreateTaskImpl.OpenCreateTaskPage(Rec."User Security ID"); CurrPage.Update(false); end; }