

# May 2018 - Feb 2019

### February 2019

- You can now specify the maximum number of records per page when returning the result set of your query on an entity. See [Pagination](https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/d3176110fa0c49bea574e6040b33da4b.html).

- CDS 3.5.0 is now available on npm with the following changes:
  - Use `cds compile -2 xsuaa` to generate default values for xsappname and tenant-mode.
  - Display help for a command by using `--help`. Earlier, only the following command was allowed: `cds help <command>`.
  - Node.js 8.9 is the minimum required Node.js version. Check your version with `node -v`.
  - `cds build` emits a warning for existing projects to add build task configurations.


### January 2019

- By deleting an entity, any entities that are associated to it by the composition relationship also get deleted automatically. For example, by deleting a _SalesOrder_ entity, all related _SalesOrderLineItems_ entities are also deleted.

- CDS 3.4.0 is now available on npm. With this release, executing `cds compile -2 xsuaa` supports base models.

### October 2018

With the application programming model, you can now:

- Define an element in an entity to contain media data.
- Create an entity and its associated entities in the SAP HANA database by overriding the generic Create operation.
- Enable caching of the metadata from an OData service that you're trying to consume.
- Execute actions and functions bound to an entity based on conditional checks using ETag.
- Use case-insensitive conditions in CDS Query API.
- Filter on the properties of child entities when consuming an OData V2 data source.

**CDS 2.10.1** is now available on npm. With this new version the development of Draft pages is supported.

The new CDS version also includes updates to the following components:
- cds-compiler 1.1.3 <br/>
  Adding ; before } is optional.

- cds-services 0.11.0 <br>
  C_UD operations on draft-enabled entities are supported. <br/>

- cds-ql 0.11.0 <br/>
  String values in the .where property are supported.

### September 2018
**CDS 2.9.1** is now available on npm. This new version includes:
- _[@sap/cds/common](/@external/cds/common)_ now includes annotations for `@title`, `@description`
- The `cds` command now supports reading from stdin. For example:
```sh
echo 'entity Foo {ID:UUID;}' | cds -2 sql
```
- Use `cds-2 sql` on the command line to get plain SQL.
- Use `cds -2 hana` to get SAP HANA CDS.
- Use `cds env` to see your CDS configuration.<br>
Use `cds help env` to learn more.

**CDS 2.8.1** is now available on npm. This new version includes:
- Support to build Node.js service modules.
- New `cds init` command to create projects with the application programming model template. The _@sap/generator-cds_ plugin is automatically installed when _init_ is called for the first time. The `cds new` command is still available and can be used instead of `cds init`.

### August 2018

- You can now use string, math, date and arithmetic functions with the $filter system query option when consuming an OData data source. See [Filter Functions](https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/14d471170f27417a85c9ba4d59d5bbdd.html).
- You can now access SAP performance statistics for each request to your service. See [SAP Performance Statistics](https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/78983134977e4ea9b2b32e9d6a945877.html).

### June 2018
- _isCountCall_ method of the _QueryRequest_ object. This API is useful when you want to execute code that is specific to the $count system query option in the _BeforeQuery_ or _AfterQuery_ hooks.

- You must now return an _InitTransactionResponse_ object from the _InitTransaction_ hook. If any of your validation checks fail in the For enterprise global accounts, administrators can now provide legal links per global account for predefined categories such as You can now conditionally check whether the service request contains the $count system query option using the _InitTransaction_ hook, you can end the transaction by returning an error in this response object.

- You can now use the string functions _tolower_ and _toupper_ with the filter query string operator.

### May 2018
You can now develop business applications quickly and easily, focusing on your domain logic using the SAP Cloud Application Programming Model. It offers a consistent end-to-end development experience tailored for SAP Cloud Platform.
