If working with serial numbers it is a must to split orderlines with quantity > 1 into multiple lines with quantity = 1
This can be done with "copy record" but actual behavior forces to edit every copied record to change quantity.
create purchase / sales order
create one order line with quantity = 5
create material receipt / shipment
switch to detail view
change quantity of orderline from 5 to 1
press "copy record"
The resulting orderline has quantity = 5
Order line has quantity = 1
calculate running qty on same shipment/receipt - when user choose same order line twice the callout subtract the running qty of orderline
callout set qty to 1 when using a serialized ASI