Subscribing to changes in sales order total changes

markclemarkcle Member Posts: 36
Hi All

Fairly new to Nav Extension Development (using AL)

I need to figure out when the total before tax changes for a sales order (seems to be a flow field).

When the total (or any line total would work) changes, I need to get the current total of all lines that are not freight (a specific set of item nos) and update the price for the freight item. I know I could use a trigger on the SalesLine.LineAmount, but I understand Event Subscriptions are a better approach.

I ran event recorder to see what events there are



I tried this, but it triggers my subscription for every single field that the user modifies when entering a line and also when the order opens:
codeunit 50002 SubSalesLines
{
    EventSubscriberInstance = StaticAutomatic
 
    [EventSubscriber(ObjectType::Table, Database::"Sales Line", 'OnAfterModifyEvent', '', true, true)]
}


Another thing I thought of was this, but there's no OnAftervalidate event on Line Amount
codeunit 50002 SubSalesLines
{
    EventSubscriberInstance = StaticAutomatic
 
    [EventSubscriber(ObjectType::Page, Page::"Sales Order Subform", 'OnAfterValidateEvent', 'Line Amount', true, true)]
}


Only other option I see is subscribing to all the fields that could change the price (would have to be at least customer, unit price, discount, tax code, tax area, qty, item, order date, price group, discount group, and I'm sure a bunch more

e.g.
codeunit 50002 SubSalesLines
{
    EventSubscriberInstance = StaticAutomatic
 
    [EventSubscriber(ObjectType::Page, Page::"Sales Order Subform", 'OnAfterValidateEvent', 'Quantity', true, true)]
}


Anyone got a suggestion on how to do it?

Thanks

Mark

Answers

  • TallyHoTallyHo Member Posts: 339
    OnAfterValidateEvent in T37 has a parameter for the field too. You'll probably want to look into this.
  • markclemarkcle Member Posts: 36
    TallyHo wrote: »
    OnAfterValidateEvent in T37 has a parameter for the field too. You'll probably want to look into this.

    Thanks for reply. I tried this, but my code never got called

    [EventSubscriber(ObjectType::Table, Database::"Sales Line", 'OnAfterValidateEvent', 'Line Amount', true, true)]
  • TallyHoTallyHo Member Posts: 339
    Strange. If you run page 9510 Event Subscriptions, is it visible? If it is, is it in error?
Sign In or Register to comment.