Guidance on BPM for Sales Orders

I am looking for guidance on how I would create a BPM for all sales orders my team enters manually (not inbound EDI, those already have this BPM set). The goal of this BPM is so my order entry team knows which manual orders they have already processed, and our production and purchasing teams do not see demand in MRP for items or quantities that have not yet been reviewed and approved by our order entry team.

As of now, this is the logic of the BPM…

  1. All new sales orders automatically have the “Hold Set by Demand” box checked by default
  2. All line items on an order with the “Hold Set by Demand” box checked are not firmed.
  3. After my order entry team reviews that the order is correct and ready for production, they remove the “Hold Set by Demand” check box, which automatically firms all line items and sends an order acknowledgement to the customer.

If you know of another more efficient way to solve this, please let me know how you did it. I would appreciate any screenshots or code you can send. Thank you!

That is how I would handle the process.

yeah, that’s better than what we did and if you can avoid customizing the form and stick to BPMs you’re ahead of us.

We have a BPM that null’s out the ShipBy date field when we don’t want MRP to pick up the order and create jobs. This is driven by user security groups and the OrderHeld boolean. We also created user codes for hold reasons, and tied that to a dropdown next to the OrderHeld checkbox (put all this on the order summary page so the sales people can live on one page mostly).

This drives email alerts (don’t get me started) as well as filters dashboards to see who has what. Change logs (which we purge on a rolling 2 year cycle) show when the holds get changed or lifted, if we need to go back in time and see what happened.

There’s also the Ready to Fulfill checkbox too.

I like your method too!

Good idea.

We only put on the orders on ERP if it is a clean order though.

We have a bpm that uses the user security groups and the OrderHeld boolean,
but we use it to stop the customer shipment been (accidentally) Shipped for COD/Prepaid Customers.

The bpm will automatically put the order on held (Orderheld = true) for COD/Prepaid Customers type so the warehouse can’t shipped it and only allow Account staff with Account security group to uncheck it (after the they has received the payment for the order).