Uploaded image for project: 'OASIS Content Management Interoperability Services (CMIS) TC'
  1. OASIS Content Management Interoperability Services (CMIS) TC
  2. CMIS-655

Folder Children (restrict acceptable values for OrderBy)

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Applied
    • Affects Version/s: None
    • Fix Version/s: V1.1
    • Component/s: Domain Model
    • Labels:
      None
    • Environment:

      n/a

    • Proposal:
      Hide

      The orderBy parameter for getChildren specified in section 2.2.3.1.1 be restricted to the set of pre defined cmis:xxx properties (union of base, document and folder).
      (see list below)

      Here are some examples of how this would work.
      (all requests are for folder getchildren)

      request:
      orderby = "cmis:parentId"
      response:
      order folders by cmis:parentId and order documents by default property

      request:
      orderby = "cmis:creationDate"
      response:
      order folders AND documents by cmis:creationDate

      request:
      orderby = "foo"
      response:
      exception thrown with message something like : " foo is not supported in the orderby in folder children. If you must orderby this property you may use Query. See documentation..."

      ------------------------------------- for easy reference only -------------
      List of allowable properties for orderBy parameter on GetfolderChildren:

      Base:

      CMIS_NAME("cmis:name"),
      CMIS_OBJECT_ID("cmis:objectId"),
      CMIS_OBJECT_TYPE_ID("cmis:objectTypeId"),
      CMIS_BASE_TYPE_ID("cmis:baseTypeId"),
      CMIS_CREATED_BY("cmis:createdBy"),
      CMIS_CREATION_DATE("cmis:creationDate"),
      CMIS_LAST_MODIFIED_BY("cmis:lastModifiedBy"),
      CMIS_LAST_MODIFICATION_DATE("cmis:lastModificationDate"),
      CMIS_CHANGE_TOKEN("cmis:changeToken");

      Document:

      CMIS_IS_IMMUTABLE("cmis:isImmutable"),
      CMIS_IS_LATEST_VERSION("cmis:isLatestVersion"),
      CMIS_IS_MAJOR_VERSION("cmis:isMajorVersion"),
      CMIS_IS_LATEST_MAJOR_VERSION("cmis:isLatestMajorVersion"),
      CMIS_VERSION_LABEL("cmis:versionLabel"),
      CMIS_VERSION_SERIES_ID("cmis:versionSeriesId"),
      CMIS_IS_VERSION_SERIES_CHECKED_OUT("cmis:isVersionSeriesCheckedOut"),
      CMIS_VERSION_SERIES_CHECKED_OUT_BY("cmis:versionSeriesCheckedOutBy"),
      CMIS_VERSION_SERIES_CHECKED_OUT_ID("cmis:versionSeriesCheckedOutId"),
      CMIS_CHECKIN_COMMENT("cmis:checkinComment"),
      CMIS_CONTENT_STREAM_LENGTH("cmis:contentStreamLength"),
      CMIS_CONTENT_STREAM_MIME_TYPE("cmis:contentStreamMimeType"),
      CMIS_CONTENT_STREAM_FILE_NAME("cmis:contentStreamFileName"),
      CMIS_CONTENT_STREAM_ID("cmis:contentStreamId");

      Folder:

      CMIS_PARENT_ID("cmis:parentId"),
      CMIS_ALLOWED_CHILD_OBJECT_TYPE_IDS("cmis:allowedChildObjectTypeIds"),
      CMIS_PATH("cmis:path");

      Show
      The orderBy parameter for getChildren specified in section 2.2.3.1.1 be restricted to the set of pre defined cmis:xxx properties (union of base, document and folder). (see list below) Here are some examples of how this would work. (all requests are for folder getchildren) request: orderby = "cmis:parentId" response: order folders by cmis:parentId and order documents by default property request: orderby = "cmis:creationDate" response: order folders AND documents by cmis:creationDate request: orderby = "foo" response: exception thrown with message something like : " foo is not supported in the orderby in folder children. If you must orderby this property you may use Query. See documentation..." ------------------------------------- for easy reference only ------------- List of allowable properties for orderBy parameter on GetfolderChildren: Base: CMIS_NAME("cmis:name"), CMIS_OBJECT_ID("cmis:objectId"), CMIS_OBJECT_TYPE_ID("cmis:objectTypeId"), CMIS_BASE_TYPE_ID("cmis:baseTypeId"), CMIS_CREATED_BY("cmis:createdBy"), CMIS_CREATION_DATE("cmis:creationDate"), CMIS_LAST_MODIFIED_BY("cmis:lastModifiedBy"), CMIS_LAST_MODIFICATION_DATE("cmis:lastModificationDate"), CMIS_CHANGE_TOKEN("cmis:changeToken"); Document: CMIS_IS_IMMUTABLE("cmis:isImmutable"), CMIS_IS_LATEST_VERSION("cmis:isLatestVersion"), CMIS_IS_MAJOR_VERSION("cmis:isMajorVersion"), CMIS_IS_LATEST_MAJOR_VERSION("cmis:isLatestMajorVersion"), CMIS_VERSION_LABEL("cmis:versionLabel"), CMIS_VERSION_SERIES_ID("cmis:versionSeriesId"), CMIS_IS_VERSION_SERIES_CHECKED_OUT("cmis:isVersionSeriesCheckedOut"), CMIS_VERSION_SERIES_CHECKED_OUT_BY("cmis:versionSeriesCheckedOutBy"), CMIS_VERSION_SERIES_CHECKED_OUT_ID("cmis:versionSeriesCheckedOutId"), CMIS_CHECKIN_COMMENT("cmis:checkinComment"), CMIS_CONTENT_STREAM_LENGTH("cmis:contentStreamLength"), CMIS_CONTENT_STREAM_MIME_TYPE("cmis:contentStreamMimeType"), CMIS_CONTENT_STREAM_FILE_NAME("cmis:contentStreamFileName"), CMIS_CONTENT_STREAM_ID("cmis:contentStreamId"); Folder: CMIS_PARENT_ID("cmis:parentId"), CMIS_ALLOWED_CHILD_OBJECT_TYPE_IDS("cmis:allowedChildObjectTypeIds"), CMIS_PATH("cmis:path");

      Description

      Since folder getChildren is basically a specialized query against two different tables, supporting all orderBy values for all possible orderable properties becomes prohibitively difficult for some repositories.

      In some repositories, the underlying query against all documents (and sub classes of document) may not permit sorting by a field that only may be present on a subclass of document. But the scope of this call implies all cmis:document subclasses and all cmis:folder subclasses.

      An example of a case that may be difficult to correctly service is the following:
      A subclass of cmis:document named invoicedoc exists that has a an orderable property value of 'foo'.
      A folder getchildren is then reqested for a folder with an orderBy parm set to "foo".

        Attachments

          Activity

            People

            • Assignee:
              fmueller Florian Müller (Inactive)
              Reporter:
              jay.brown Jay Brown
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: