diff --git a/abnf/odata-abnf-construction-rules.txt b/abnf/odata-abnf-construction-rules.txt index ced5037..9faa960 100644 --- a/abnf/odata-abnf-construction-rules.txt +++ b/abnf/odata-abnf-construction-rules.txt @@ -525,6 +525,9 @@ rootExpr = %s"$root/" ( entitySetName [ collectionNavigationExpr ] firstMemberExpr = memberExpr / inscopeVariableExpr [ "/" memberExpr ] + / "$" request-id "/" memberExpr ; reference to single-valued response of earlier request + / "$" request-id collectionNavigationExpr ; reference to collection-valued response of earlier request + / "$" request-id memberExpr = directMemberExpr / ( optionallyQualifiedEntityTypeName / optionallyQualifiedComplexTypeName ) "/" directMemberExpr diff --git a/abnf/odata-abnf-testcases.yaml b/abnf/odata-abnf-testcases.yaml index fa8cc5e..4970d49 100644 --- a/abnf/odata-abnf-testcases.yaml +++ b/abnf/odata-abnf-testcases.yaml @@ -250,6 +250,10 @@ Constraints: - Title - X - ZipCode + request-id: + - '1' + - First-Insert~Customer_1.1 + - group1 singletonEntity: - BestProductEverCreated - MainSupplier @@ -2268,6 +2272,26 @@ TestCases: Rule: odataRelativeUri Input: Customers?$select=Addresses(@a=$this;$filter=endswith(@a/Street,'gasse')) + - Name: request reference in $batch + Rule: commonExpr + Input: Customer eq $1 + Expect: + - firstMemberExpr:Customer + - firstMemberExpr:$1 + + - Name: property reference in $batch + Rule: commonExpr + Input: Customer/Name eq $1/Name + Expect: + - memberExpr:Customer/Name + - memberExpr:Name + + - Name: member reference in $batch + Rule: commonExpr + Input: Customer/Name eq $1('ALFKI')/Name + Expect: + - collectionNavigationExpr:('ALFKI')/Name + - Name: 5.1.1.15 Path expressions Rule: commonExpr Input: Items diff --git a/abnf/odata-aggregation-testcases.yaml b/abnf/odata-aggregation-testcases.yaml index a7e6e85..d3a902a 100644 --- a/abnf/odata-aggregation-testcases.yaml +++ b/abnf/odata-aggregation-testcases.yaml @@ -238,6 +238,8 @@ Constraints: - Total # dynamic - WeightedAmount # dynamic - Year + request-id: + - group1 streamProperty: - Image termName: