Hi Tyler. I’m not going to say this can’t be done, but I’ll relay our story in case it helps. Long-story-short… we (using Epicor’s CSG team) were not successful in doing this… but hopefully things may have changed and perhaps you may have better luck.
Okay… now the long version:
Prior to our Go Live, we actually had Epicor’s CSG group build us a customization to handle this type of material burden. Basically, for us, anything that gets “received” gets a material burden applied to it. So, don’t think of it having to hit inventory. Whether you receive something to stock… or receive it to a job (via subcontract) it is still “received” against a PO and THAT is when you can apply burden.
So, we created a UD field which held a “corporate material burden rate”. We had the same approach that it sounds like you do… anything that gets “received” requires additional management/handling and incurs more cost. This is the way we had done things for decades in our legacy system. So, CSG created a BPM where, upon receipt, the BPM would fire with some custom code and apply the “corporate burden rate” to the receipt line. This all worked very well… for about six months. Around September 2022, Epicor changed something in their base code and it blew this customization away.
While troubleshooting/testing, we found that parts would hit inventory without the applied burden. So, we would unreceive them and re-receive them and the burden would be there. So, this was bad.
- Initial receipt (no burden applied)
- Un-Receiving would actually pull the material cost AND the applied burden cost out (which would result in a negative transaction balance). For example, if it was a $10 part and a 10% burden… the part would go into inventory @ $10… but would be un-received with a -$11 transaction.
- Re-Receiving would then go back in at $11… which was correct.
What we found was whatever change Epicor made, either altered when the BPM fired… or it fired but didn’t happen fast enough to apply the burden before the initial “transaction” was recorded.
We found a work around while testing where, if we created the receipt line and “saved” WITHOUT checking the “Received” check box… it would work. So we would have to create the receipt line… SAVE… click the checkbox… SAVE again. If we did it this way, the calculations came out correctly.
I was hoping Epicor could create some kind of script/code for us to manage this automatically… but one of the issues they brought up was they would have problems with “Mass Receipts”. Receiving multiple lines all at once would create issues. They basically threw in the towel and said it wasn’t possible, so we abandoned the customization project.
Now… it may BE possible. I’ve seen some people on this forum that can create miracles! But, in our case, the CSG team said they couldn’t pull it off. We paid them for the initial customization and we had paid for their “customization maintenance” to fix it if it broke after an update (which it did). But they weren’t able to repair it and may have just bailed on it, not wanting to invest more hours since they were on the hook for “maintenance”. Hard to say. I don’t want to discredit them. They had multiple people researching it for a couple months trying to figure it out. But again, ultimately, they said they couldn’t find a way to do it without altering the base code, which, being a cloud customer, wasn’t an option for us.
Epicor at least admitted that they found the developers had changed something in the base code which altered the timing of events in the background… This was evident as the customization worked for months, initially, and then broke.
Anyway… we eventually bailed on this. That being said, that was ~September 2022, so they may have fixed the issue (although, I don’t know that it was ever reported as a problem… it just worked differently after their code change)… or perhaps just a fresh set of eyes could figure it out?? But for us (brand new to Epicor and not experienced customizers ourselves) we relied on Epicor and they more or less came back and said they couldn’t make it work without altering the base code… which, again, we couldn’t do since we were cloud.
Don’t want to discourage you from trying… just wanted to share what we went through at the time.