Monetary-value-REST-CRM

Microsoft Dynamics CRM Tip: Monetary Value in REST

By Paddy Byrne

 

I was running some JavaScript on a form and I wanted to populate a currency field with the value of another currency field. The source currency field existed on another record so I had to use the REST interface to retrieve this.

When I tried to populate the target field I received the following error -

"This control only accepts numerics or null as an input."

REST-API-Monetary-Value

 

On debugging my JavaScript I found that the value of the source field returned by the REST request (in this case data.Price) was an object with property Value.

 

REST-API-Monetary-Value

 

So, rather than set the value of the target field to data.Price I tried setting it to data.Price.Value. I received the same error.

On closer inspection of the Value property of the source object you see that it looks like a string rather than a decimal or float.

So I tried converting it to float using parseFloat() as I set the value of the target field.

Xrm.Page.data.entity.attributes.get("chorus_amountpaid").setValue(parseFloat(data.Price.Value));

This worked and the field was populated correctly.

So in conclusion, the value returned from a monetary field retrieved using the REST interface is an object which has a string property named Value. In order to use this value to populate another field it must first be converted to a float.

 

Hope this helps!