Documenting for others who may run across this issue as I saw no other references
- Use case was an OData 4.0 provider for Shopify
- The External Data Source button Validate and Sync creates external objects for each exposed OData table. In my case, I was using the Shopify Orders table.
- SFDC creates custom fields for all "amount" fields as
Field Type Number (18,0). So, an order amount in Shopify of 99.99 would display as 100.
- Initially, I changed the field (in Salesforce) to Number (16,2). This displays fine (as 99.99)
- I changed the Field Data type to Currency (16,2) and then got the error.
Checking the Salesforce Compatibility Considerations for Salesforce Connect—All Adapters doc, I note that Currency data type is not supported except for the cross-org adapter in Salesforce Connect. Unfortunately, although SFDC knows the external object arises from an external data source other than the Salesforce Connect cross-org adapter, you don't get any error message when you change the field type to Currency.
So, bottom line, if you expect currency fields in your external objects to display as currency fields in the OOTB detail pages/list views - they won't. You will need to expose on list views and page layouts the external object's custom currency field, assuming one exists in the OData data source.