Sales Order Customization to Customer Shipment Customization

Hello All,

I’ve created a customized checkbox (OrderHed.Checkbox01) and text box (OrderHed.Character01) in Sales Order Entry under the tab Header/Manifest Info. I want the information to show up when a do a Customer Shipment Entry for that Sales Order. Basically the same as the Apply Charge checkbox does in the Handling group, only I’m using my Checkbox01 and Character01 to relaying special instructions on how to package the shipment. In Customer Shipment Entry I’ve created the same customization under the Manifest Info tab using ShipHead.Checkbox01 and ShipHead.Character01, but how do I transfer the information from the Sales Order?


I do something like this in 9.05, so I assume this will apply to 8. You can use CustShip.GetManifestInfo with a post processing bpm to get the information or CustShip.UpdateMaster pre-processing with code like this.


/* Assign CB01 / Char01 to shiphead from order */

For Each ttShiphead where ttShiphead.Company = cur-comp,
Each ttShipDtl where ttShipDtl.Company = ttShipHead.Company and ttShipDtl.PackNum = ttShipHead.PackNum no-lock.

	Message " IN Ship getmanifestinfo assign to Char01".

				Find First OrderHed where ttShipHead.Company = OrderHed.Company and ttShipHead.OrderNum = OrderHed.OrderNum no-error.
					If available (OrderHed) then Do.
							ttShipHead.Character01 = OrderHed.Character01.
							ttShipHead.CheckBox01 = OrderHed.Checkbox01.


I tried the following, but didn’t seem to work: I’m new to this forum and not sure copy and paste will work.

Does this look right?

There are a couple of issues. The Find first I had used ttShipHead.ordernum, but that is always blank. Change to ttShipDtl.OrderNum. you used CustShip.Update and you need UpdateMaster.

One of the things I was taught was to put a show informational message on the method I was using to make sure it fired before I wrote code.

Good advice from Greg to put in message first to verify your BPM is firing
off when you expect and also not looping.

I’m just getting back to this customization. I don’t have CustShip.UpdateMaster as an option, could it be because I’m using v8.03.810? So I used the CustShip.GetManifestInfo and pre-process. I changed the ttShipHead.OrderNum to ttShipDtl.OrderNum. The information transferred to Customer Shipment Entry like I wanted. A couple of problems, I don’t get the message we coded in and when I try to save the transaction I get the error message; “Record has been modified by another user…refresh button and re-enter you changes.”. So when I refresh it removes the line item and I have to re-enter it and then I get the error message again. Any Ideas.

if you are in get manifest then you want post processing. The data is coming from the server to the client and you want to change it after epicor is done.

The message line goes into the server log. I use them for debugging.

Yes, I typed it wrong in my post above. I did use CustShip.GetManifestInfo and post-process.

Epicor is making changes after yours, so getmanifest won’t work. Look at the trace file to see if update is called. I looked at mine and GetNewOrdrShipDtl and GetOrderInfo are called when a new detail line is added before getmanifestinfo is called. Then UpdateMaster, which you don’t have so update or something else is saving the line.

You need the line to exist in the data before you can use it.

I’m not sure what to try. I tried CustShip.Update again and no information was passed. I’m not sure where to look for the trace file. Thought that came out in Epicor 9 also or are the server log files the same?

I have only used 9.05, so I don’t know about 8. In 9 it is under options > tracing options on the menu. You can try an informational message.

If you can access the server log files, the message should be in there if the routine was hit, even if the transfer didn’t happen. I use a log reader so it can read them while they are in use. Sometimes I will put a message in the beginning and on in each loop or if condition to follow the execution.