Push UD QuoteHed Fields To UD OrderHed Fields

Hi

I’ve read other posts but can’t find my answer.

We provide customers with a try-before-you-buy trial kit and for free or a low fee.
I’ve been tasked with adding checkboxes on the QuoteHed to capture when we are providing kits out on this premise.

(We can’t use identifiable part-numbers as these will become the parts kept by the customer if they go ahead and purchase).

So far, no problem, however I need thee checkboxes to carry over to the sales order OrderHed table.

I have read the post (Any way to copy UD fields from quote to order without code? - ERP 10 - Epicor User Help Forum), and the section starting on p677 in the ICE 3.1 technical reference guide on using Fill Table By Query and Invoke BO Method and have been able to replicate the examples provided in UAT.

However, I cannot get this working for my task at hand.

I’m using Erp.Quote.CreateOrder
Condition: ttQuoteHed.Trial_c has been changed from any to another

Fill Table By Query:
Use the QuoteTrialKits query to insert data into the UD04LogRecords.UD04 table with configured mapping

Invoke BO Method:
Invoke Ice.UD04.UpdateExt BO Method with configured parameters

I have tried creating a new quote, ticking the trial checkbox, then converting to an order but nothing is showing up at all in the UD04 table

In the BAQ I thought I would need to select the ttOrderHed table but there was no option to select it.
Any help would be much appreciated!




Just an FYI - Once you get it working to “push” a quote to an order, you’ll need to do something similar for the SalesOrder.CreateOrderFromQuote directive so you can “pull” a quote into an order during Order entry.

I wonder if you can even use FillByQuery to actually create new records in a UD table. @timshuwy?

Back when we ere on V8, we had some user fields copied from the Quote to the Order, and it was pretty straight forward. V8 didn’t have a graphical BPM designer, so it had to be done in code. It only took the following lines:

for each OrderDtl where OrderDtl.QuoteNum = iQuoteNum, 
		each QuoteDtl where (QuoteDtl.Company = OrderDtl.Company and QuoteDtl.QuoteNum = OrderDtl.QuoteNum and QuoteDtl.QuoteLine = OrderDtl.QuoteLine) and  OrderDtl.Number10 = 0 and QuoteDtl.Number10 <> 0 no-lock. 

	if available OrderDtl then do: 
		Run lib\UpdateTableBuffer.p(input BUFFER OrderDtl:HANDLE,'Number10',QuoteDtl.Number10). 
	end. 
End.

Note that’s from the CreateOrderFromQuote: which is part of the SalesOrder BO. Basically the “pull” from quote, compared to your “push” to order.

yes you can use the FillByQuery… this will create as many records as there are in the query. Then you call the UpdateEXT method i believe, and it will put the data away.

It’s a shame that Epicor doesn’t allow us to create our own UD Field Maps… this would do what is needed but there is no pre-configured map from quotehed to orderhed included that I know of.

1 Like

tenor(1)

:stuck_out_tongue_winking_eye:

1 Like

That was back in V8 !!!

1 Like

I remember! I was against working outside the framework even back then! :smirk: No roll-back recovery or backing out if the user cancelled the transaction. It’s the kind of tool that VW would have loved to use for its emission software! :joy:

1 Like