web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

Session Id :
Small and medium business | Business Central, N...
Suggested Answer

OnAfterInsertEvent looping through the repeat until returns to the first line of the procedure code stack

(0) ShareShare
ReportReport
Posted on by 447

Hi All,

BC version: 19.1
deployment: OnPrem
issue: looping of records inside Repeat Until returns to the first line of the procedure code stack, after first record is inserted in the repeat until statement.

Detail description of the issue:

1. custom table no.=50000 - "ABC" with all the fields as expected. Table trigger OnInsert is not used in the table at all.

2. custom codeunit no.=50000 - "ABC Mgt." with OnRun trigger (is empty) and event subsriber is called to insert records in T5000 from another table T50001

below is the code of the CU:

Codeunit 5000 "ABC Mgt."

{
    Description='DZ01';
    trigger OnRun()
    begin
    end;
    
    [EventSubscriber(ObjectType::Table, Database::"ABC", 'OnAfterInsertEvent', '', false, false)]
    procedure InsertMissingTimesFromIntegrationTable(var ABC: Record "ABC")
    var:
        DCERec: Record "DCE";
        FoundRecords: Integer;
        ABC2Rec: Record "ABC";
    begin
        DCERec.RESET;
        DCERec.SETRANGE(DCERec."No.",Rec."No.");
        IF DCERec.FINDSET THEN BEGIN
            FoundRecords := DCERec.COUNT;
            REPEAT
                ABC2Rec."No." := DCERec."No.";
                ABC2Rec.Name := DCERec.First Name;
                ABC2Rec.INSERT(TRUE);
            UNTIL DCERec.NEXT() = 0;
        END;
    end;
}

in this repeat until statement code moves back to line numer=14 - DCERec.RESET; and this is happening in endless loop.

I just do not understand why the code jumps after the insert command in the loop of "Repeat Until" statement to the first code line of the procedure (after Begin). Do you have some idea?

Thank you

BR Damjan

I have the same question (0)
  • Suggested answer
    Nitin Verma Profile Picture
    21,812 Moderator on at

    Hi,

    below is the culprit line inthe code.

                   ABC2Rec.INSERT(TRUE);

    As you are using this statement inside the OnInsert Event and again this line calling the same event, and thats why its putting all your code into endless loop.

    Thanks.

  • Suggested answer
    IB-29041624-0 Profile Picture
    1,191 Moderator on at

    You should also probably create an OnBeforeInsertEvent instead so you can modify the records before the default OnInsert trigger is executed.

  • Suggested answer
    Damjan Zakojc Profile Picture
    447 on at

    Hi,

    I resolved the issue, by adding additional field "Processed" to the table and on OnAfterInsertEvent the code checks if record has been processed or not, then some additional code is inserting new record in same table from integration table.

    Thanks Damjan

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Stars!

Meet the Microsoft Dynamics 365 Contact Center Champions

We are thrilled to have these Champions in our Community!

Congratulations to the April Top 10 Community Leaders

These are the community rock stars!

Leaderboard > Small and medium business | Business Central, NAV, RMS

#1
OussamaSabbouh Profile Picture

OussamaSabbouh 2,260 Super User 2026 Season 1

#2
YUN ZHU Profile Picture

YUN ZHU 1,515 Super User 2026 Season 1

#3
AndrewThomas81 Profile Picture

AndrewThomas81 1,373

Last 30 days Overall leaderboard

Featured topics

Microsoft Training Manuals

Product updates

Dynamics 365 release plans