Thanks Rehan,
Does the code change if the event subscribes to an action, for example the Publish action on the Sales Order page?
I have written this code based on your recommendation, but this process does not fill the custom table. Can you help me make it work?
[EventSubscriber(ObjectType::Page, 42, 'OnAfterActionEvent', 'Post', false, false)]
procedure InsertCustomSalesLineEntry()
var
changeLogSalesLine: Record "Sales Report";
SalesInvoiceHeader: Record "Sales Invoice Header";
SalesInvoiceLine: Record "Sales Invoice Line";
Item: Record Item;
DimensionSetEntry: Record "Dimension Set Entry";
begin
if SalesInvoiceHeader.IsTemporary then
exit;
changeLogSalesLine.Init();
changeLogSalesLine.Validate("Salesperson Code", SalesInvoiceHeader."Salesperson Code");
changeLogSalesLine.Validate("Sell-to Customer No.", SalesInvoiceHeader."Sell-to Customer No.");
changeLogSalesLine.Validate("Bill-to Name", SalesInvoiceHeader."Bill-to Name");
changeLogSalesLine.Validate("Bill-to City", SalesInvoiceHeader."Bill-to City");
changeLogSalesLine.Validate(Description, SalesInvoiceLine.Description);
changeLogSalesLine.Validate("Vendor No.", Item."Vendor No.");
changeLogSalesLine.Validate("Shortcut Dimension 1 Code", SalesInvoiceLine."Shortcut Dimension 1 Code");
changeLogSalesLine.Validate("Dimension Code", DimensionSetEntry."Dimension Code");
changeLogSalesLine.Validate("Posting Date", SalesInvoiceHeader."Posting Date");
changeLogSalesLine.Validate("Order No.", SalesInvoiceHeader."Order No.");
changeLogSalesLine.Validate("No.", SalesInvoiceHeader."No.");
changeLogSalesLine.Validate("Quantity (Base)", SalesInvoiceLine."Quantity (Base)");
changeLogSalesLine.Validate(Amount, SalesInvoiceLine.Amount);
changeLogSalesLine.Insert()
end;