SO with BTO marked Drop Ship linked to a PO - Address or Contact change on SO

Epicor did a good job to prevent a Sales Order that is marked Buy to Order from changing the part number or quantity on the release once a PO is Linked. It will not allow the release quantity to drop below the linked PO quantity. It will allow an increase in quantity with a simple message to inform Purchasing regarding the change.

However, Epicor does nothing to stop a Header ship to address change or the Release contact change on a Buy To Order Sales Order Release that is marked Drop Ship before or after a PO has been suggested or linked. Linked POs for Buy To Order SO releases marked Drop ship show the SO Ship To Address on the PO Release Detail (the issued PO has instructed the vendor where to drop ship the item to; and I have modified the form to include the Contact Name and Contact Phone number). But the Sales team can change all of this information on the Sales Order with no messages or stops.

So I have enabled an In-Transaction Data Directive on the Erp.OrderRel.Update. Is this the best route? I like the fact that the logic will work for both classic and kinetic screens.

Also the Erp.OrderRel.Update cannot monitor changes occurring with to the ship to address at the header level (which does push down to the ship to address box on the release). The ship to address box on the release is just a display field, so I am unable to monitor a change. Do I need to have my data directive on Erp.OrderHed.Update? If so, how do I verify if I have any Releases that are BTO and Drop Ship with a linked PO? I would still need to monitor contact changes at the release level (would that need to be a separate DD)?

Is there a better way to solve this issue?

So I created two BPMs, both Data Directives, one on Erp.OrderRel.Update and one on Erp.OrderHed.Update. What I had to do on OrderHed.Update was to set my first condition that “Number of rows in the MyQuery query is more or equal to 1”.

The query linked ttOrderHed with ERP.OrderRel criteria:


The next Condition looked for any changes to the ShipToNum, ShpConNum, ShipToCustNum, and a bunch of OTS changes. Then I raise exception asking the user to have purchasing unlink the line to allow the change to occur and to make sure that Purchasing communicates this change to the vendor.

The Erp.OrderRel.Update DD first condition looks for: BuyToOrder = true AND DropShip = true.
The next condition looks for PONum > 0 (the default is zero so I could not use null). The third condition looks for ShpConNum to change from any to another, then I raise exception asking the user to have purchasing unlink the line to allow the change to occur and to make sure that Purchasing communicates this change to the vendor.

This is functioning pretty well with the following Issues:

  1. If someone right clicks on the Ship To Contact and Opens With - Customer Contact Entry, you could change the phone number. This is minor so I am not going to worry about it.
    2) How can I get the display to REFRESH prior to the Raise Exception widget in the Data Directive?
1 Like