While importing sales data from Microsoft NAV to Microsoft CRM 2015 Online using SSIS, we noticed that PricePerUnit in Invoice Line Items was zero for some of the Line Items in Microsoft CRM but PricePerUnit of those Line Items was not zero in Microsoft NAV. While looking more into it we realized that currency precision for PricePerUnit coming from Microsoft NAV was up to 4 decimal places but in Microsoft CRM, currency precision for PricePerUnit was up to 2 decimal places. The number of decimal places used affects rounding in calculations. So PricePerUnit of 0.003 was changed to 0.00 when data was imported to CRM.
To fix the above mentioned issue, we need to change the currency precision in Dynamics CRM. There are three ways to change currency precision of a field in Dynamics CRM.
1. Pricing Decimal Precision
To change the currency precision for all of the system, one can use this option. To change this option go to Settings -> Administration -> System Settings -> General tab, set the Pricing Decimal Precision using the following option:
On the field level, under field properties, also make sure that ‘Precision’ is set be ‘Pricing Decimal Precision’ as shown below.
2. Currency Precision
To change the currency precision of a particular currency, one can use this option. To change this option go to the currency record you would like to change precision in Business Management ->Currencies. Click on the required currency and change ‘Currency Precision’ as shown below:
On the field level, under field properties, also make sure that ‘Precision’ is set be ‘Currency Precision’ as shown below:
3. Individual field
To change the currency precision of an individual field, under field properties, select the number of decimal places using the ‘Precision’ dropdown. In our case we simply changed the ‘Precision’ of PricePerUnit field to 4, as shown below.