Uploaded image for project: 'Teiid'
  1. Teiid
  2. TEIID-4269

numeric calculated fields not displayed with odata4

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 9.1, 8.12.11.6_4
    • 8.12
    • OData
    • None

      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

              rhn-engineering-rareddy Ramesh Reddy
              mirco73_jira Mirco Marchitiello (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: