Skip to main content

Notifications

Community site session details

Community site session details

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

Additional OnInsertRecord is trigger when doing deep insert using API

(1) ShareShare
ReportReport
Posted on by 2
 
I have 2 tables lets call TableHeader and TableLine. In TableHeader, one field had TableRelation define. When i try to do POST request with deep insert, i notice additional OnInsertRecord is trigger in TableLine. This cause additional row being insert.  If i remove the table relation in TableHeader, then it work as expected. Does anyone know why tablerelation cause additional trigger to the OnInsertRecord?
 
table 1 "TableHeader"
{
    DataClassification = CustomerContent;

    fields
    {
        field(1; "Entry No."; Integer)
        {
            AutoIncrement = true;
        }
        field(10; "Message No."; Text)
        {
            TableRelation = "TableMessage"."Message No";
        }
}

table 2 "TableLine"
{
    DataClassification = CustomerContent;

    fields
    {
        field(1; "Entry No."; Integer)
        {
            AutoIncrement = true;
        }
        field(10; "Message No."; Text)
        {
            TableRelation = "TableMessage"."Message No";
        }
		field(11; "Description"; Text)
        {
        }
}

page 1 "Header"
{
    PageType = API;
    Extensible = false;
    APIPublisher = 'publisher';
    APIGroup = 'group';
    APIVersion = 'v1.0';

    EntityName = 'header';
    EntitySetName = 'headers';
    SourceTable = "TableHeader";

    DelayedInsert = true;
    DeleteAllowed = false;
    ModifyAllowed = false;
    ODataKeyFields = SystemId;
	
	layout
    {
        area(Content)
        {
            repeater(GroupName)
            {
                field(id; Rec.SystemId)
                {
                    Caption = 'Id';
                    Editable = false;
                }

                field("messageNumber"; Rec."Message No.")
                {
                }

                part(lines; "Line")
                {
                    EntityName = 'line';
                    EntitySetName = 'lines';
                    SubPageLink = "Message No." = field("Message No.");

                }
            }
        }
    }
}

page 2 "Line"
{
    PageType = API;
    Extensible = false;
    APIPublisher = 'publisher';
    APIGroup = 'group';
    APIVersion = 'v1.0';

    EntityName = 'line';
    EntitySetName = 'lines';
    SourceTable = "TableLine";

    DelayedInsert = true;
    DeleteAllowed = false;
    ModifyAllowed = false;
    ODataKeyFields = SystemId;
	
	layout
    {
        area(Content)
        {
            repeater(GroupName)
            {
                field(id; Rec.SystemId)
                {
                    Caption = 'Id';
                    Editable = false;
                }

                field("messageNumber"; Rec."Message No.")
                {
                }

                field("description"; Rec."Description")
                {
                }
            }
        }
    }
}

JSON 

{
    "messageNumber": "Message 1",
    "lines":   [{
                                    "Description": "Description 1"
                                },
                                {
                                    "Description": "Description 2"
                                }]
}
 
 


 
  • Suggested answer
    YUN ZHU Profile Picture
    85,116 Super User 2025 Season 1 on at
    Additional OnInsertRecord is trigger when doing deep insert using API
    Hi, hope the following can give you some hints.
    Tips & Tricks for Creating Custom APIs
     
    Thanks.
    ZHU
  • Suggested answer
    Khushbu Rajvi. Profile Picture
    17,451 Super User 2025 Season 1 on at
    Additional OnInsertRecord is trigger when doing deep insert using API
    I think the TableRelation causes the system to maintain referential integrity between related tables. When you use a deep insert with a TableRelation, the system tries to automatically manage the relationships between the parent and child records, which can lead to unexpected behavior.
     

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

Ramesh Kumar – Community Spotlight

We are honored to recognize Ramesh Kumar as our July 2025 Community…

Congratulations to the June Top 10 Community Leaders!

These are the community rock stars!

Announcing the Engage with the Community forum!

This forum is your space to connect, share, and grow!

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

#1
Sohail Ahmed Profile Picture

Sohail Ahmed 2,655

#2
Mansi Soni Profile Picture

Mansi Soni 1,574

#3
YUN ZHU Profile Picture

YUN ZHU 1,453 Super User 2025 Season 1

Featured topics

Product updates

Dynamics 365 release plans