I tried with item reference, but unfortunately we have to select item reference manually to be filled automatically.
Is there any solution out of the box?
Thanks in advance!

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Item Reference Management", OnAfterFindItemReferenceForPurchaseLine, '', false, false)]
local procedure OnAfterFindItemReferenceForPurchaseLine(var PurchaseLine: Record "Purchase Line"; var ItemReference: Record "Item Reference"; var Found: Boolean)
begin
ItemReference.SetRange("Unit of Measure");
if ItemReference.FindFirst() then
Found := true;
end;