Erp.Contract.BO.SalesOrder

Trying to understand what in Epicor updates the ShipToAddressList. Wrote customization to overwrite the ttOrderHed.ShipToAddressList and it works until click Save and then it gets overwritten.

Thank you

Automatically gets assigned on GetRows / GetByID
What is it you are trying to do?

I have user defined fields created and attempting to assign them use as the ShipToAddressList.
I have tried BPMs and it gets overwritten and now trying customization it is getting overwritten. I am able to overwrite it but upon save it changes. Even changing on the last method called shows changing it but does not commit to the database. Trying to find that key element that is overwriting what I am writing.

There is no key element it is part of the business logic for BO it is not a field that is meant to be written to.

But yet I am able to write to it and watch it change. I just not able to commit an update.

I would think there is some possible way to commit changes to the database since I am able to write to it. I just cannot find it in the BO.

It only exists in the temp table records. It does not exist in the DB table - there is no where to write it to.

image

With that said, it is piped to the UI. You should be able to overwrite in a POST process bpm

You can ā€œwriteā€ to the value on the screen but it wont sve anywhere its generated on GetRows.
What is the end goal? Maybe we can find an alternate solution for you.

1 Like

The data you want to update isnā€™t stored in the Order tables. Neither OrderHed nor OrderRel, its via the relationship the ShipTo table via ShipToCustNum and ShipToNum where the address fields live in the database.

Are you trying to add new ShipTos?

1 Like

I am trying to create an alternative Ship to fields instead of using Ship To or One Time Ship To.

Begs the why questionā€¦ One Time ShipTo is specifically designed for when ShipTo doesnā€™t work. What scenario are you trying to solve.

It is a ship to for a ship to. The Customer has a Bill to address. And the Ship To is a Satellite location, but it needs to go to a different location.

Do not want to save the ship to location that it is going too in One Time Ship To so using User Defined fields.

So you canā€™t use One Time ShipTo? Is it cause its always going to an ā€œalternateā€ location? Thatā€™s a weird setup. Looks like drop shipping?

1 Like

Not drop shipping because shipping from warehouse.

And on occasion it is going to an alternate location. So there must be a way through the BO to commit the ShipToAddressList to display what I want it to display. It displays through customization and through BPM until you click save. Some function after the save which I cannot pinpoint is changing what I wrote.

ShipToAdressList is not a valid field that can be committed to or saved or changed. It is built in to the core of the Epicor Application.
Usually when weā€™ve had to do this, we handle it by drawing a Custom Control on top of it and toggling the visible / invisible. However I strongly suggest you consider using the OTS Functionality.
You can also use the parent / child relationship and alternate billto / shiptos. Theres a lot of functionality already out there that I feel should solve most of your issues.
BUT if you must re-invent the wheel then youā€™ll have to use custom UD fields and custom controls.

1 Like

Use CustShip.BuildShipToList post proc - and modify or append the results

That does not see the temp tables.

as @Randy said, the displayed value on SalesOrder BO, called from the ShipTo table through Customer table linked by CustNum, so if you want to alter it you need to custom code in BPM to find your Customer record first, then use Fill table to change the RowMod to ā€˜Updateā€™ then invoke the BO method.