Trying to figure out the best (= easiest to create and easiest to maintain…) way to do the following:
For each ShipDtll record we will create two UD fields:
Special List
ShipStatus
The first is a YN field that will be populated based on whether or not the part is on the Special List on the day it ships.
The second is an evaluation of whether the shipment was on time or late based on a comparison of the Ship By on the order release and the actual ship date.
Things I am considering (assuming they are possible):
Updatable BAQ that is scheduled to run at a certain time each night
BPM that is scheduled to run at a certain time each night
BPM that runs when the line is shipped
I really don’t like option 3 because (1) our system is sooo slow and any process added to it will exacerbate that problem and (2) we do a lot of shipping and unshipping, so it will not be clear to the system when the line is shipped for real.
I am not terribly technical, so the UBAQ appeals to me more, but I have not gotten into the details.
Option 3 seems like it might actually be the best, as it would be the easiest to maintain and is exactly the use case for a Data Directive. Something like this should be a negligible add to the processing, but obviously it’d be something you’ll need to consider. Regarding the shipping and unshipping, you could use the same BPM to clear the UD fields when a shipment is unshipped, so it would only remain static when it’s shipped for the last time.
If you want to go with option 2, I believe you’d use an Epicor Function, as those can be scheduled. I don’t know of a way to easily schedule a BPM. You can design these the same way as you would a BPM, with similar widgets.
As for using a uBAQ, I’ve only ever used these as a means to allow manual entry, not on schedules, so it is possible this is a better option and I’m just not aware of this use case.
I would go with a scheduled function which is basically option 2. A ubaq is just an older way to do it before functions and scheduling were a thing. Doing anything when the shipped checkbox is shipped is problematic as Epicor runs a lot of things when that is done.