I have a codeunit I created that when a Purchase document is /posted/, I want to have the posting description update based on the /Description/ in the first line of the Purchase Lines. Everything seems to be correct on this, but it will not update the actual field. In the below code, I have the /Posting Description/ message twice, once before I try and change the value, and once after I set it, and the message is correct in both cases, (i.e. Order POXXXXX the first time, then /Utilities/ the second), but the field itself is not being updated. I have switched posting description to other fields (i.e. Vendor Shipment Number), but it does the same thing. What am I missing to have it actually update the field for me?
[EventSubscriber(ObjectType::Table, Database::/Purchase Header/, 'OnBeforeSendToPosting', '', true, true)]
local procedure OnBeforeSendToPosting(var PurchaseHeader: Record /Purchase Header/)
var
PurLine: Record /Purchase Line/;
begin
PurLine.SetRange(/Document No./, PurchaseHeader./No./);
PurLine.FindFirst();
Message(PurchaseHeader./Posting Description/);
PurchaseHeader./Posting Description/ := PurLine.Description;
Message(PurchaseHeader./Posting Description/);
end;