[
https://issues.jboss.org/browse/TEIID-4269?page=com.atlassian.jira.plugin...
]
Mirco Marchitiello commented on TEIID-4269:
-------------------------------------------
Actually with "Solution" I meant a workaround to make my production system work
I converted the number using the numeric functions PARSExxx and FORMATxxx
eg.
PARSEBIGDECIMAL(FORMATBIGDECIMAL(KTMNG, '#,##0.##;-#,##0.##'),
'#,##0.##;-#,##0.##')
numeric calculated fields not displayed with odata4
---------------------------------------------------
Key: TEIID-4269
URL:
https://issues.jboss.org/browse/TEIID-4269
Project: Teiid
Issue Type: Bug
Components: OData
Affects Versions: 8.13.3
Reporter: Mirco Marchitiello
Assignee: Ramesh Reddy
Priority: Minor
I've created a virtual table with a new field defined in this way:
select ROUND((BA.PREIS / BA.PEINH), 3) AS UnitPrice from xxxxxx
for the source field are bigdecimal I define UnitPrice as
BigDecimal (13,3)
If I run the qery from JDBC
select * from PurchaseRequisitionEntity where PurchaseRequisitionKey =
'300-8000001452-00010' ;
PREIS = 539,568
PEINH = 106
UnitPrice = 5,090.264
And the result is correct. If I run from odata2
/odata/CASALE.1/Entities.PurchaseRequisitionEntity('300-8000001452-00010')?$format=json
"UnitPrice" : "5090.2640000000000000"
As you can see the field is rounded to the 3rd digit but 13 more digits are returned with
0 value.
Anyway odata2 succeeds in returning the result without errors.
With odata4 I get an error:
/odata4/CASALE.1/Entities/PurchaseRequisitionEntity('300-8000001452-00010')?$format=json
{"error":{"code":null,"message":"The value
'5090.2640000000000000' is not valid for property 'UnitPrice'."}}
I think that's because the length of the field is greater then the matedata
definition.
At the moment the only solution I can imagine is to convert the number to a string in the
proper format and the parse it into a number
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)