Skip to content

Commit 28c365f

Browse files
renejeglinskychgeodanjoarenovate[bot]vkozyura
authored
Patch Release 2026.1.2 (#2383)
Co-authored-by: Christian Georgi <[email protected]> Co-authored-by: Daniel Hutzel <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Vitaly Kozyura <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: chgeo <[email protected]> Co-authored-by: mariayord <[email protected]> Co-authored-by: Johannes Vogt <[email protected]>
2 parents adcfb01 + 15e12a3 commit 28c365f

File tree

12 files changed

+1965
-83
lines changed

12 files changed

+1965
-83
lines changed

cds/assets/cxl/expr.drawio.svg

Lines changed: 813 additions & 4 deletions
Loading

cds/assets/cxl/function.drawio.svg

Lines changed: 158 additions & 4 deletions
Loading

cds/assets/cxl/infix-filter.drawio.svg

Lines changed: 135 additions & 4 deletions
Loading

cds/assets/cxl/operators.drawio.svg

Lines changed: 609 additions & 4 deletions
Loading

cds/assets/cxl/ref.drawio.svg

Lines changed: 184 additions & 4 deletions
Loading

cds/cxl.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,9 +240,6 @@ This syntax diagram describes the possible expressions:
240240
]
241241
```
242242

243-
Compared to the previous example, we now use the expression directly in the query
244-
to calculate the total value of all books in stock.
245-
246243
```sql [SQL]
247244
SELECT
248245
Books.title,
@@ -254,6 +251,8 @@ This syntax diagram describes the possible expressions:
254251
```
255252
:::
256253

254+
Compared to the previous example, we now use the expression directly in the query
255+
to calculate the total value of all books in stock.
257256

258257

259258
## Path Expressions (`ref`)

guides/integration/inner-loops.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ npm install
5656

5757
## Mocked Out of the Box
5858

59-
Within the context of application service integration and microservice architecture, we'd need to mock remote services in a consuming app to reach inner loop. CAP greatly does that for us, based on:
59+
Within the context of application service integration and microservice architecture, we'd need to mock remote services in a consuming app to reach an inner loop. CAP handles this automatically for us, based on:
6060

6161
- A CDS service definition is all we need to serve a fully functional OData service
6262
- APIs imported via `cds export` and `cds import` are CDS service definition
@@ -138,11 +138,11 @@ We can also use `cds mock` to mock remote services in separate processes, which
138138

139139
> [!tip] Decoupled Development → Contracts First
140140
>
141-
> Local inner loops allow promote decoupled development of separate parts / applications / microservices in larger solution projects. Each team can focus on their local domain and functionality with the required remote services mocked for them based on imported APIs. These APIs are the contracts between the individual teams.
141+
> Local inner loops allow promoting decoupled development of separate parts / applications / microservices in larger solution projects. Each team can focus on their local domain and functionality with the required remote services mocked for them based on imported APIs. These APIs are the contracts between the individual teams.
142142

143143
> [!tip] Fast-track Inner-Loop Development → Spawning Parallel Tracks
144144
>
145-
> The mocked-out-of-the-box capabilities of CAP, with remoted services mocked in-process and a shared in-memory database, allows us to greatly speed up development and time to market. For real remote operations there is additional investment required, of course. But the agnostic nature of CAP-level Service Integration also allows you to spawn two working tracks running in parallel: One team to focus on domain and functionality, and another one to work on the integration logic under the hood.
145+
> The mocked-out-of-the-box capabilities of CAP, with remote services mocked in-process and a shared in-memory database, allows us to greatly speed up development and time to market. For real remote operations there is additional investment required, of course. But the agnostic nature of CAP-level Service Integration also allows you to spawn two working tracks running in parallel: One team to focus on domain and functionality, and another one to work on the integration logic under the hood.
146146

147147

148148

@@ -323,7 +323,7 @@ cds.User.default = cds.User.privileged
323323
324324
## Using `npm` Workspaces
325325
326-
So far we assumed we mainly wirked within the *xtravels* project, and we consumed thte APIs from xflights via `npm publish` / `npm install` . There might be situations where we would want to shortcut this process. For example, we might want to consume a very latest version of the xflights API, which is not yet published to the *npm* registry. Or we might even want to work on both projects simultaneously, and test our latest changes to *xflights* in *xtravels* in close loops.
326+
So far we assumed we mainly worked within the *xtravels* project, and we consumed the API from xflights via `npm publish` / `npm install`. There might be situations where we would want to shortcut this process. For example, we might want to consume a very latest version of the xflights API, which is not yet published to the *npm* registry. Or we might even want to work on both projects simultaneously, and test our latest changes to *xflights* in *xtravels* in close loops.
327327
328328
So, in essence, instead of exercising a workflow like that again and again:
329329
@@ -338,7 +338,7 @@ git clone https://github.com/capire/xtravels
338338
echo '{"workspaces":["xflights","xtravels"]}' > package.json
339339
```
340340
341-
Add a link to the local `@capire/xflights-data` API package, enclosed with the cloned xflights sources:
341+
Add a link to the local `@capire/xflights-data` API package, included with the cloned xflights sources:
342342
343343
```shell
344344
npm add ./xflights/apis/data-service
@@ -397,7 +397,7 @@ The usage of *npm workspaces* technique as described above streamlined our workf
397397
- Before: ( *develop* → *export* → *publish* ) → *npmjs.com* → ( *update* → *consume* )
398398
- After: ( *develop* → *export* ) → ( *consume* )
399399
400-
We can even more streamline that by eliminating the export step as follows...
400+
We can streamline that even more by eliminating the export step as follows...
401401
402402
Create a new subfolder `xflights-api-shortcut` in which we add two files as follows:
403403
@@ -416,15 +416,15 @@ Add a `package.json` file in there with that content:
416416
}
417417
```
418418
419-
And an `index.cds` file with that content:
419+
And an `index.cds` file with this content:
420420
421421
```cds
422422
using from '@capire/xflights/srv/data-service';
423423
```
424424
425425
<details> <summary> Using the shell's "here document" technique </summary>
426426

427-
You can also create those two files from the command line as follows:
427+
You can also create these two files from the command line as follows:
428428
```shell
429429
cat > xflights-api-shortcut/package.json << EOF
430430
{

guides/protocols/odata.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ OData is an OASIS standard that enhances plain REST with standardized system que
4040
| [Parameters Aliases](https://docs.oasis-open.org/odata/odata/v4.01/os/part1-protocol/odata-v4.01-os-part1-protocol.html#sec_ParameterAliases) | Replace literal value in URL with parameter alias | <X/> | <X/> <sup>(4)</sup> |
4141

4242
- <sup>(1)</sup> The elements to be searched are specified with the [`@cds.search` annotation](../services/served-ootb#searching-data).
43-
- <sup>(2)</sup> Node.js only supports a limited subset in `$select` query option.
43+
- <sup>(2)</sup> Node.js only supports a limited subset.
4444
- <sup>(3)</sup> The navigation path identifying the collection can only contain one segment.
4545
- <sup>(4)</sup> Supported for key values and for parameters of functions only.
4646

node.js/cds-ql.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -938,6 +938,12 @@ INSERT.into (Books) .columns (
938938
[ 252, 'Eleonora', 150, 234 ]
939939
)
940940
```
941+
942+
::: tip In Essence:
943+
944+
[Managed fields](../guides/domain/index#managed-data) and [UUIDs](../guides/domain/index#prefer-uuids-for-keys) are automatically filled with `INSERT.entries()`, but not when using `INSERT.columns().values()` or `INSERT.columns().rows()`.
945+
:::
946+
941947
### from() {.method #from}
942948
943949

package-lock.json

Lines changed: 36 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)