Uploaded image for project: 'OASIS Open Data Protocol (OData) TC'
  1. OASIS Open Data Protocol (OData) TC
  2. ODATA-295

Services should be able to "advertise" what form of change tracking they support

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: V4.0_CSD01
    • Fix Version/s: V4.0_CSD02
    • Component/s: Protocol
    • Labels:
      None
    • Environment:

      [Applied]

    • Proposal:
      Hide

      Add Core annotation

      <Term Name="ChangeTracking" Type="Capabilities.ChangeTrackingType" AppliesTo="EntitySet">
      <Annotation Term="Core.Description" String="Change tracking capabilities of this entity set" />
      </Term>
      <ComplexType Name="ChangeTrackingType">
      <Property Name="Supported" Type="Edm.Boiolean" DefaultValue="true">
      <Annotation Term="Core.Description" String="This entity set supports the odata.track-changes preferenc" />
      </Property>
      <Property Name="FilterableProperties" Type="Collection(Edm.PropertyPath)" Nullable="true">
      <Annotation Term="Core.Description" String="Change tracking supports filters on these properties" />
      </Property>
      <Property Name="ExpandableProperties" Type="Collection(Edm.NavigationPropertyPath)" Nullable="true">
      <Annotation Term="Core.Description" String="Change tracking supports these properties expanded"/>
      </Property>
      </ComplexType>

      Accepted: https://www.oasis-open.org/committees/download.php/49325/odata-meeting-38_on-20130523-minutes.html#odata-295

      Show
      Add Core annotation <Term Name="ChangeTracking" Type="Capabilities.ChangeTrackingType" AppliesTo="EntitySet"> <Annotation Term="Core.Description" String="Change tracking capabilities of this entity set" /> </Term> <ComplexType Name="ChangeTrackingType"> <Property Name="Supported" Type="Edm.Boiolean" DefaultValue="true"> <Annotation Term="Core.Description" String="This entity set supports the odata.track-changes preferenc" /> </Property> <Property Name="FilterableProperties" Type="Collection(Edm.PropertyPath)" Nullable="true"> <Annotation Term="Core.Description" String="Change tracking supports filters on these properties" /> </Property> <Property Name="ExpandableProperties" Type="Collection(Edm.NavigationPropertyPath)" Nullable="true"> <Annotation Term="Core.Description" String="Change tracking supports these properties expanded"/> </Property> </ComplexType> Accepted: https://www.oasis-open.org/committees/download.php/49325/odata-meeting-38_on-20130523-minutes.html#odata-295
    • Resolution:
      Show
      https://www.oasis-open.org/committees/download.php/49353/odata-v4.0-wd02-part1-protocol-2013-05-28.docx https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/vocabularies/Org.OData.Capabilities.V1.xml?rev=320 Accepted: https://www.oasis-open.org/committees/download.php/49557/odata-meeting-41_on-20130613_14-F2F-minutes.html#odata-295

      Description

      Protocol spec (2013-03-12) states in section 10.3 Requesting Changes.

      Services MAY support requesting changes for arbitrary queries against the entityset or MAY require that any filters be applied solely to immutable (i.e., key) fields.

      Now suppose that a client is interested in change tracking for a particular entity set, using a filter.

      The client must first try the query with the filter (and with odata.track-changes preference), and will get a result, but it may finally prove to have no delta link (the client has no way to know in advance if the server will provide a delta link).

      Then the client (if the server doesn't provide a delta link) may need to try the query again without a filter, and then somehow apply the filter "locally" (on the client-side). Again the client may discover that the server doesn't support change tracking (even for the case without a filter).

      It would be much preferred by client application and framework designers for OData services somehow to be able to "advertise" their support (or not) for change tracking (and any limits that are placed upon it, such as what kind of filters can be used), rather than the clients having to discover by a process of trial and error.

        Attachments

          Activity

            People

            • Assignee:
              handl Ralf Handl
              Reporter:
              evan.ireland.2 Evan Ireland
            • Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: