-
Type: Improvement
-
Status: Open
-
Priority: Major
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: V4.01_ERRATA01
-
Labels:None
-
Proposal:
Must a function be composable to allow access to individual properties of its returned value?
GET BillingDocument('90000090')/self.GetPDF()/BillingDocOutputDataBinary
The CSDL specification says
A composable function can be invoked with additional path segments or key predicates appended to the resource path that identifies the composable function, and with system query options as appropriate for the type returned by the composable function.
and BillingDocOutputDataBinary is an "additional path segment".
The Protocol specification seems to allow system query options without composability
If the function is composable, additional path segments may be appended to the URL that identifies the composable function (or function import) as appropriate for the type returned by the function (or function import). The last path segment determines the system query options and HTTP verbs that can be used with this this URL
Assuming that BillingDocOutputDataBinary is a stream property,
GET BillingDocument('90000090')/self.GetPDF()?$expand=BillingDocOutputDataBinary
is allowed without composability, and it requires the server to retrieve the same data (just serialize it differently).
Related to ODATA-1644