4

Problem Description


  1. Due to a limitation in the base code, the email concurrency limit cannot be updated for existing email accounts. This is because the underlying ‘Email Rate Limit’ table is marked as internal, which restricts direct access or modifications.
  2. By default, the concurrency limit is set to 3 for newly created email accounts. However, for existing accounts, an issue exists in Page 8898: "Email Rate Limit Wizard". When this page is opened, the concurrency limit value is assigned to a Text variable, which is then validated. Since the table field cannot be directly accessed or updated, this validation triggers an error, preventing any changes to the concurrency limit in case when the Concurrency Limit is set to 0.


Object Code:


Page 8898: "Email Rate Limit Wizard"


 trigger OnOpenPage()

  begin

        EmailRateLimitDisplay := Format(Rec."Rate Limit");

        EmailConcurrencyLimit := Format(Rec."Concurrency Limit");

        UpdateRateLimitDisplay();

        UpdateConcurrencyLimitLimitDisplay();

  end;


local procedure UpdateConcurrencyLimitLimitDisplay()

    var

        CurrLimit: Integer;

    begin

        Evaluate(CurrLimit, EmailConcurrencyLimit);

        Rec.Validate("Concurrency Limit", CurrLimit);

    end;


table 8912 "Email Rate Limit"


field(5; "Concurrency Limit"; Integer)

        {

            DataClassification = SystemMetadata;

            InitValue = 3;


            trigger OnValidate()

            begin

                if (Rec."Concurrency Limit" < 1) or (Rec."Concurrency Limit" > 10) then

                    Error(ConcurrencyLimitErrLbl);

            end;

        }


Suggestion:


To resolve this, bypass the concurrency limit validation when opening Page 8898. This will allow the concurrency limit for existing email accounts to be updated successfully without encountering the validation error.


Category: Development
STATUS DETAILS
New