Codeunit 5917 Process Service Email Queue, source in 29
Source29
src/Layers/W1/BaseApp/Service/Email/ProcessServiceEmailQueue.Codeunit.al47 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Service.Email;
using System.Threading;
codeunit 5917 "Process Service Email Queue"
{
TableNo = "Job Queue Entry";
trigger OnRun()
var
ServEmailQueue: Record "Service Email Queue";
ServEmailQueue2: Record "Service Email Queue";
ServMailMgt: Codeunit ServMailManagement;
RecRef: RecordRef;
Success: Boolean;
begin
if RecRef.Get(Rec."Record ID to Process") then begin
RecRef.SetTable(ServEmailQueue);
if not ServEmailQueue.Find() then
exit;
ServEmailQueue.SetRecFilter();
end else begin
ServEmailQueue.Reset();
ServEmailQueue.SetCurrentKey(Status, "Sending Date", "Document Type", "Document No.");
ServEmailQueue.SetRange(Status, ServEmailQueue.Status::" ");
end;
ServEmailQueue.LockTable();
if ServEmailQueue.FindSet() then
repeat
Commit();
Clear(ServMailMgt);
Success := ServMailMgt.Run(ServEmailQueue);
ServEmailQueue2.Get(ServEmailQueue."Entry No.");
if Success then
ServEmailQueue2.Status := ServEmailQueue2.Status::Processed
else
ServEmailQueue2.Status := ServEmailQueue2.Status::Error;
ServEmailQueue2.Modify();
Sleep(200);
until ServEmailQueue.Next() = 0;
end;
}