diff --git a/src/System Application/App/Agent/Interaction/AgentMessage.Codeunit.al b/src/System Application/App/Agent/Interaction/AgentMessage.Codeunit.al
index 1ec3011219..830749353a 100644
--- a/src/System Application/App/Agent/Interaction/AgentMessage.Codeunit.al
+++ b/src/System Application/App/Agent/Interaction/AgentMessage.Codeunit.al
@@ -61,6 +61,20 @@ codeunit 4307 "Agent Message"
AgentMessageImpl.SetStatusToSent(AgentTaskMessage);
end;
+ ///
+ /// Add an attachment to the task message.
+ ///
+ /// The name of the file to be attached.
+ /// The MIME type of the file to be attached.
+ /// The attachment stream.
+ [Scope('OnPrem')]
+ procedure AddAttachment(var AgentTaskMessage: Record "Agent Task Message"; FileName: Text[250]; FileMIMEType: Text[100]; Attachment: InStream)
+ var
+ AgentMessageImpl: Codeunit "Agent Message Impl.";
+ begin
+ AgentMessageImpl.AddAttachment(AgentTaskMessage, FileName, FileMIMEType, Attachment);
+ end;
+
///
/// Downloads the attachments for a specific message.
///
diff --git a/src/System Application/App/Agent/Interaction/AgentMessageImpl.Codeunit.al b/src/System Application/App/Agent/Interaction/AgentMessageImpl.Codeunit.al
index 17a727fd55..61fc62d8d8 100644
--- a/src/System Application/App/Agent/Interaction/AgentMessageImpl.Codeunit.al
+++ b/src/System Application/App/Agent/Interaction/AgentMessageImpl.Codeunit.al
@@ -47,6 +47,28 @@ codeunit 4308 "Agent Message Impl."
UpdateAgentTaskMessageStatus(AgentTaskMessage, AgentTaskMessage.Status::Sent);
end;
+ procedure AddAttachment(var AgentTaskMessage: Record "Agent Task Message"; FileName: Text[250]; FileMIMEType: Text[100]; InStream: InStream)
+ var
+ AgentTaskFile: Record "Agent Task File";
+ AgentTaskMessageAttachment: Record "Agent Task Message Attachment";
+ AgentTaskImpl: Codeunit "Agent Task Impl.";
+ OutStream: OutStream;
+ begin
+ // Add attachment to task file
+ AgentTaskFile."Task ID" := AgentTaskMessage."Task ID";
+ AgentTaskFile."File Name" := FileName;
+ AgentTaskFile."File MIME Type" := FileMIMEType;
+ AgentTaskFile.Content.CreateOutStream(OutStream, AgentTaskImpl.GetDefaultEncoding());
+ CopyStream(OutStream, InStream);
+ AgentTaskFile.Insert();
+
+ // Link task file to task message
+ AgentTaskMessageAttachment."Task ID" := AgentTaskMessage."Task ID";
+ AgentTaskMessageAttachment."Message ID" := AgentTaskMessage.ID;
+ AgentTaskMessageAttachment."File ID" := AgentTaskFile.ID;
+ AgentTaskMessageAttachment.Insert();
+ end;
+
procedure DownloadAttachments(var AgentTaskMessage: Record "Agent Task Message")
var
AgentTaskFile: Record "Agent Task File";
diff --git a/src/System Application/App/Agent/Interaction/AgentTaskImpl.Codeunit.al b/src/System Application/App/Agent/Interaction/AgentTaskImpl.Codeunit.al
index 79afb13f3f..a34b1f141a 100644
--- a/src/System Application/App/Agent/Interaction/AgentTaskImpl.Codeunit.al
+++ b/src/System Application/App/Agent/Interaction/AgentTaskImpl.Codeunit.al
@@ -5,8 +5,8 @@
namespace System.Agents;
-using System.Integration;
using System.Environment;
+using System.Integration;
codeunit 4300 "Agent Task Impl."
{