The only way I could get part creation to work is to give every configurator in the multi-level BOM these settings:
- Enable Part Number Creation
- Create Revision
- Create Non-Configurable Part
- Use Quote Method
The method rules also operate on quote entities, not ECO or job. However, we do not use quotes. Configurators with these settings create parts when you configure a sales order line. It’s not an accident that this works, because Epicor knows to replace the part number on the order line with the one it generated.
I know which ConfigurationRuntime method triggers the creation of parts and BOMs. When using an order number/order line smart string, the part number is still on the order line. So a pre BPM can’t delete the part and change partExists to false. I thought there was a partExists param, but looking at a trace I saved, it looks up whether the part exists but doesn’t pass that information along to the next BO method. So maybe it would recreate the BOM/MOM if I deleted it but left the part. There’s also a mysterious property called KeepIt that I haven’t experimented with yet.
When we were using quotes, I had a BPM that deleted the quote BOM and ran get details automatically when saving a changed configuration. That BPM used the quote BO, and it doesn’t seem to trigger with this workflow despite the configurator settings and rules referencing quote entities.