I did a lot reservation record with a client which generates the lot number for them based on the source lot being consumed if the main component and some other logic.. uses 2 custom records, a header record linking to the source component and some other attributes and then child records to generate the future lot numbers for each output of the source. Then they can print the labels ahead of completions and builds, so prior to lot number creation they already have the details to the lot, then when the lot is actually generated a bunch of attributes already exist to push to the lot record.