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." {