I have added bit of code to validate the external document No on Sales Order. The current function detects if a duplicate External Doc number is entered on Sales Order and errors, user can’t continue with the order until a unique External Doc Number is entered.
I want to slightly amend this so only a warning message pops up if a user enters a duplicate External Doc Number, and they still can continue with the order. Can someone please help with this.
Here is My Code
[EventSubscriber(ObjectType::Table, Database::"Sales Header", 'OnAfterValidateEvent', 'External Document No.', false, false)]
procedure CheckForDuplicatedExternalDocumentNo(var Rec: Record "Sales Header"; var xRec: Record "Sales Header"; CurrFieldNo: Integer)
var
SalesHeaderRec: Record "Sales Header";
WKText001: Label 'External Document No. %1 already exist on %2 %3';
WKText002: Label 'External Document No. %1 already exist on %2 %3';
DocumentType: Label 'Sales %1';
Archive: Label 'Archive';
SalesDocument: Text;
begin
SalesHeaderRec.Reset();
SalesHeaderRec.SetCurrentKey("External Document No.");
SalesHeaderRec.SetRange(SalesHeaderRec."External Document No.", Rec."External Document No.");
if SalesHeaderRec.Find('-') then begin
if SalesHeaderRec."Sell-to Customer No." = Rec."Sell-to Customer No." then begin
SalesDocument := StrSubstNo(DocumentType, SalesHeaderRec."Document Type");
Error(WKText001, Rec."External Document No.", SalesDocument, SalesHeaderRec."No."); // need to show a warning message instead of throwing an error
end;
end;