AL icon indicating copy to clipboard operation
AL copied to clipboard

page trigger OnInsertRecord does not work as before

Open AlexCeg opened this issue 1 year ago • 4 comments

Please include the following with each issue:

1. Describe the bug I have an extension that inserts a record in the OnInsertTrigger of a page extension and returns false in this trigger. This does not work in BC25. The return ist ignored

2. To Reproduce

  1. Go to a sales order and try to insert a line. It works in BC24 and it does not work in BC25.
pageextension 50106 "EXT" extends "Sales Order Subform"
{
    trigger OnInsertRecord(BelowxRec: Boolean): Boolean
    begin
        if CheckFeatureActive() then begin
            Rec.Insert();
            exit(false);
        end else
            exit(true);
    end;

    local procedure CheckFeatureActive(): Boolean
    begin
        exit(true); // e.g. check some setup
    end;
}

3. Expected behavior There should be no change.

4. Actual behavior An error occurrs which is quite dangerous when we bring our customers to BC25 because they are not able to create sales orders any more.

5. Versions:

  • AL Language: v14.1.1180850
  • Business Central: 25.0.23364.25738/de
  • Version: 1.94.2 (user setup)
  • Commit: 384ff7382de624fb94dbaf6da11977bba1ecd427
  • Date: 2024-10-09T16:08:44.566Z
  • Electron: 30.5.1
  • ElectronBuildId: 10262041
  • Chromium: 124.0.6367.243
  • Node.js: 20.16.0
  • V8: 12.4.254.20-electron.0
  • OS: Windows_NT x64 10.0.19045

Final Checklist

Please remember to do the following:

  • [x] Search the issue repository to ensure you are reporting a new issue

  • [x] Reproduce the issue after disabling all extensions except the AL Language extension

  • [x] Simplify your code around the issue to better isolate the problem

AlexCeg avatar Oct 22 '24 10:10 AlexCeg

The return value already handles if the insert should happen. Why do you call Rec.insert and return false? If you want to insert the record, just return true and if not, return false inside the trigger.

dannoe avatar Oct 23 '24 08:10 dannoe

@dannoe It is just an easy example. If I insert the record return false I get an error because the return value is ignored and the standard tries to insert the record as well.

AlexCeg avatar Oct 28 '24 07:10 AlexCeg

@AlexCeg I tried your code in a cloud sandbox with Version: DE Business Central 25.0 (Plattform 25.0.26191.0 + Anwendung 25.0.23364.24599) but i don't get a error. Do you have other apps installed?

JohnnyUndercover avatar Nov 05 '24 12:11 JohnnyUndercover

Hi, I retried it. It works in one of the newest versions 25.1.25873.26550 but it definetely did not work in 25.0.23364.25738

It would be interesting to know the version with which this problem was solved. For us the bug does not appear any more so you can close this issue.

AlexCeg avatar Nov 12 '24 09:11 AlexCeg