REST...Can't update Quote line Unit price

Hi everyone,

I am currently creating quotes with REST API. Every thing works like a charm from creating QuoteHed to Creating Quote line, quantities, etc. Although, I can’t figure why the Quote Line Unit Price is not Updating. No error, no nothing. The Tracing Options is telling me to use GetDtlUnitPriceInfo_User.

image .

Here is my code for the method:

I have a plan B witch is to call and updatable BAQ(not tested via REST) but it works through the BAQ Designer. I would really not prefer to go there. Can somebody help me out!

Check your column, you are using DocDspExpUnitPrice.- seeing the Dsp, tells me its merely a Display Field, probably calculated…

Perhaps, you oughta be using one of these:

  • ExpUnitPrice This is the unit price based on the expected quantity.
  • DocExpUnitPrice This is the unit price (in customer currency) based on the expected quantity.

Perhaps we need more code to help, I see you are trying to update the Dsp in a Get method.

Thanks for your reply Haso.

I’ve tried the fields you’ve mentionned in my tests (should have mentionned it) and it did not work. I’ve also tried to look what the UI does in the Column_Changed with the dsp field and JustDecompile is giving a bunch of scrap.

IL Spy is not much of a help neither.

The HttpRequestMessage is using a Post method. The Get method you see are reflection method of the current method. I’m using the same approach for all my methods. I have attached the Json object. You’ll notice there is alot of price fields set to 888.0.

I’ve just noticed there is an error returned by the server (500). The Epicor App server says nothing (in the event viewer).

data.zip (5.7 KB)

Thanks for your help.

Well,

I’ve called the GetDtlUnitPriceInfo_User from REST and from the UI and they do not give the same Json. The call from UI is updating QuoteHed while REST doesn’t. QuoteDtl seems to be the same.

I join the two files.JsonObjects.zip (11.4 KB). (VisualStudio = REST)

As stated previously, I’m updating DocDspExpUnitPrice in both calls (from UI and REST). I don’t have access to Column_Changed (DocDspExpUnitPrice) with a decompiler. So, I don’t know what’s going on.

Am I completely wrong @Bart_Elia , @josecgomez ? What Am I missing? (sorry to ping you, just want to know if it’s a known issue or it’s something I don’t understand).

Regards,

Did you do a trace? And update all the fields that change?

Jose, Thanks for your response.

Here’s what’s going on. I execute this portion (following the trace option sequence)

image

It creates a quote line plus quantities. Then I go in the UI and I enter the unit price. It raises the
GetDtlUnitPriceInfo_User

and the Update

When I execute my code entirely, all the fields your seeing above (from trace option) have the same values in the json (QuoteDtl) prior calling the update (FromREST.zip (5.8 KB)) .

I’ve also tried to execute all my code without the update, took the json from that point, went into Swagger and execute Update from there. Result is a response code 200 but nothing had being updated. As I said previously, maybe there is something going on in Column_Changed but I can’t see the decompiled code.

I’m kinda in the dark from here.

ADD UP
Do I have to serialize decimal as string? I mean my initial object has values as decimal. Do I have to change decimal as string prior to serialization?

Everything works fine with an Updatable BAQ…

Did you discover a solution to this issue? I have found if I create the line via REST and then come back and update DocExpUnitPrice in a separate operation, I can get the desired result.

Hope this helps.

Hi Brad,

I ended up using an updatable BAQ. Good suggestion you’re offering. I wish I would have thought about it :frowning:

Does anyone else have any ideas here? I can use DMT and it works, why doesn’t REST?

I remember having trouble with this as well, I think I ended up setting DocDspExpUnitPrice, DocExpUnitPrice, and ExpUnitPrice. I think that worked.

This doesn’t seem to work at all. I’ve even run traces to see what data is updated from the GUI. Additionally, I’ve tried updating QuoteQty…

You have a plan B. Run an updatable BAQ with REST. It worked for me :slight_smile:

2 Likes

Wow. Seems like an odd “solution”. While I can accomplish that, I would want to know why it isn’t working normally…

Honestly, the uBAQ + REST approach is how I’ve done 99 percent of these integrations. It just seems to work better and is better for documenting and implementing a solution than straight BO calls

2 Likes

Doesn’t this approach rely on free-from c# in Epicor though?