-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: V4.01_OS
-
Fix Version/s: V4.01_ERRATA01
-
Labels:None
-
Environment:
Closed as applied 2023-10-18.
-
Proposal:
-
Resolution:
OData-CSDL, section "Path evaluation" does not specify rules for annotations that target another annotation.
Imagine an annotation term PAngV.PriceSection2 whose value is an amount.
<EntityType Name="SalesOrderItem"> <Property Name="Pieces" Type="Edm.Int"/> <Property Name="Price" Type="Edm.Decimal"/> <Annotation Term="PAngV.PriceSection2"> <DivBy> <Path>Price</Path> <Path>Pieces</Path> </DivBy> <Annotation Term="Measures.ISOCurrency"> <Path>Price/@Measures.ISOCurrency</Path> </Annotation> </Annotation> </EntityType>
This entity type computes the PAngV.PriceSection2 as an annotation and wants to annotate this annotation with the corresponding currency. I would expect the evaluation of the path Price/@Measures.ISOCurrency to follow the rules for "annotations embedded within a structural or navigation property of an entity type or complex type", because the "outer" annotation has a primitive type and can thus be treated like a structural property.
This should be clarified in the specification.