You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: get-started/bookshop.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -175,7 +175,7 @@ As soon as we saved the domain model, `cds watch` reacted with additional output
175
175
> [!tip] Inner-Loop Development
176
176
> SQLite isn't meant for productive use, but rather for development only.
177
177
> It drastically speeds up turn-around times in local inner-loop development.
178
-
> Essentially it acts as a mock stand-in for the target databases we'll use in production, i.e., SAP HANA.
178
+
> Essentially it acts as a mock stand-in for the target databases we'll use in production, that is, SAP HANA.
179
179
180
180
181
181
### Compile to SQL {.optional}
@@ -634,7 +634,7 @@ With that in place, we can connect to the remote services, and send queries to t
634
634
###### CAP-level Service Integration
635
635
###### Calesi
636
636
> [!tip] CAP-level Service Integration (<i>'Calesi'</i>)
637
-
> CAP services can be consumed from other CAP applications, using the same uniform, and protocol-agnostic APIs as forlocal services – i.e., **_as if they were local_**. This is accomplished by the service instances returned by `cds.connect` being remote proxies, which automatically translate all requests into protocol-specific ones, sent to remote services. Thereby taking care of all connectivity, remote communication, marshalling of data, as well as generic resilience.
637
+
> CAP services can be consumed from other CAP applications, using the same uniform, and protocol-agnostic APIs as forlocal services – that is, **_as if they were local_**. This is accomplished by the service instances returned by `cds.connect` being remote proxies, which automatically translate all requests into protocol-specific ones, sent to remote services. Thereby taking care of all connectivity, remote communication, marshalling of data, as well as generic resilience.
Copy file name to clipboardExpand all lines: get-started/concepts.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -608,7 +608,7 @@ So, in total, and in effect, we learn:
608
608
609
609
610
610
611
-
The *[Hexagonal Architecture](https://alistair.cockburn.us/hexagonal-architecture/)* (aka*Ports and Adapters Architecture/Pattern*) as first proposed by Alistair Cockburn in 2005, is quite famous and fancied these days (rightly so). As he introduces it, its intent is to:
611
+
The *[Hexagonal Architecture](https://alistair.cockburn.us/hexagonal-architecture/)* (also known as*Ports and Adapters Architecture/Pattern*) as first proposed by Alistair Cockburn in 2005, is quite famous and fancied these days (rightly so). As he introduces it, its intent is to:
612
612
613
613
*"Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases"* {.indent style="font-family:serif"}
| Ask Questions / Get Answers |[SAP Community](https://community.sap.com/t5/c-khhcw49343/SAP+Cloud+Application+Programming+Model/pd-p/9f13aee1-834c-4105-8e43-ee442775e5ce)|
15
15
| Create issues / bug reports |[SAP Support Portal](https://support.sap.com)|
@@ -18,8 +18,7 @@ Support Channels & Troubleshooting FAQs {.subtitle}
18
18
</div>
19
19
20
20
> [!tip]
21
-
> If you encounter issues, check the Troubleshooting FAQs below.
22
-
> Do that first before posting questions to or creating issues in the other channels.
21
+
> If you encounter issues, check the Troubleshooting FAQs below before posting questions or creating issues in the support channels.
23
22
24
23
[[toc]]
25
24
@@ -29,13 +28,13 @@ Support Channels & Troubleshooting FAQs {.subtitle}
29
28
30
29
### Can't start VS Code from Command Line on macOS {#vscode-macos}
31
30
32
-
In order to start VS Code via the `code` CLI, users on macOS must first run a command (*Shell Command: Install 'code' command in PATH*) to add the VS Code executable to the `PATH` environment variable. Read VS Code's [macOS setup guide](https://code.visualstudio.com/docs/setup/mac) for help.
31
+
To start VS Code via the `code` CLI, users on macOS must first run a command (*Shell Command: Install 'code' command in PATH*) to add the VS Code executable to the `PATH` environment variable. Read VS Code's [macOS setup guide](https://code.visualstudio.com/docs/setup/mac) for help.
33
32
34
33
35
34
36
35
### Check the Node.js version { #node-version}
37
36
38
-
Make sure you run the latest long-term support (LTS) version of Node.js with an even number like `20`, `22`, `24`, and so on. Refrain from using odd versions, for which some modules with native parts will have no support and thus might even fail to install. Check version with:
37
+
Verify that you run the latest long-term support (LTS) version of Node.js with an even number like `20`, `22`, `24`, and so on. Refrain from using odd versions, for which some modules with native parts will have no support and thus might even fail to install. Check version with:
39
38
40
39
```sh
41
40
node -v
@@ -68,7 +67,7 @@ Global npm installations are stored in a user-specific directory on your machine
68
67
C:\Users\<your-username>\AppData\Roaming\npm
69
68
```
70
69
71
-
Make sure that your `PATH`-environment variable contains this path.
70
+
Verify that your `PATH`-environment variable contains this path.
72
71
73
72
In addition, set the variable `NODE_PATH` to: <br /> ``C:\Users\<your-username>\AppData\Roaming\npm\node_modules``.
74
73
@@ -148,8 +147,8 @@ Make sure that:
148
147
-_Acquiring client from pool timed out_
149
148
-_ResourceRequest timed out_
150
149
151
-
**First of all**, make sure the SAP HANA database is accessible in your application's environment.
152
-
This includes making sure the SAP HANA is either part of or mapped to your Cloud Foundry space or Kyma cluster and the IP addresses are [in an allowed range](https://help.sap.com/docs/HANA_SERVICE_CF/cc53ad464a57404b8d453bbadbc81ceb/71eb651f84274a0cb2f2b4380df91724.html). Connectivity issues are likely the root cause if you experience this error during application startup.
150
+
Verify that the SAP HANA database is accessible in your application's environment.
151
+
This includes verifying the SAP HANA is either part of or mapped to your Cloud Foundry space or Kyma cluster and the IP addresses are [in an allowed range](https://help.sap.com/docs/HANA_SERVICE_CF/cc53ad464a57404b8d453bbadbc81ceb/71eb651f84274a0cb2f2b4380df91724.html). Connectivity issues are likely the root cause if you experience this error during application startup.
153
152
154
153
[Learn how to set up SAP HANA instance mappings](https://help.sap.com/docs/hana-cloud/sap-hana-cloud-administration-guide/map-sap-hana-database-to-another-environment-context){.learn-more style="margin-top:10px"}
155
154
@@ -161,11 +160,11 @@ If you frequently get this error during normal runtime operation your database c
161
160
|_Root Cause 2_| The creation of a new connection to the database takes too long. |
162
161
|_Solution_| Adapt `max` or `acquireTimeoutMillis` with more appropriate values, according to the [documentation](../node.js/databases#databaseservice-configuration). |
163
162
164
-
Always make sure that database transactions are either committed or rolled back. This can work in two ways:
163
+
Ensure that database transactions are either committed or rolled back. This can work in two ways:
165
164
1. Couple it to your request (this happens automatically): Once the request is succeeded, the database service commits the transaction. If there was an error in one of the handlers, the database service performs a rollback.
166
165
2. For manual transactions (for example, by writing `const tx = cds.tx()`), you need to perform the commit/rollback yourself: `await tx.commit()`/`await tx.rollback()`.
167
166
168
-
If you're using [@sap/hana-client](https://www.npmjs.com/package/@sap/hana-client), make sure to adjust the environment variable [`HDB_NODEJS_THREADPOOL_SIZE`](https://help.sap.com/docs/SAP_HANA_CLIENT/f1b440ded6144a54ada97ff95dac7adf/31a8c93a574b4f8fb6a8366d2c758f21.html?version=2.11)which specifies the amount of workers that concurrently execute asynchronous method calls for different connections.
167
+
If you're using [@sap/hana-client](https://www.npmjs.com/package/@sap/hana-client), verify that the environment variable [`HDB_NODEJS_THREADPOOL_SIZE`](https://help.sap.com/docs/SAP_HANA_CLIENT/f1b440ded6144a54ada97ff95dac7adf/31a8c93a574b4f8fb6a8366d2c758f21.html?version=2.11)is adjusted appropriately. This variable specifies the amount of workers that concurrently execute asynchronous method calls for different connections.
|_Root Cause_|In case the application has a service binding with the same name as the requested destination, the SAP Cloud SDK prioritized the service binding. This service of course does have different endpoints than the originally targeted remote service. For more information, please refer to the [SAP Cloud SDK documentation](https://sap.github.io/cloud-sdk/docs/js/features/connectivity/destinations#referencing-destinations-by-name). |
223
+
|_Root Cause_|If the application has a service binding with the same name as the requested destination, the SAP Cloud SDK prioritizes the service binding. This service has different endpoints than the originally targeted remote service. For more information, refer to the [SAP Cloud SDK documentation](https://sap.github.io/cloud-sdk/docs/js/features/connectivity/destinations#referencing-destinations-by-name). |
225
224
|_Solution_| Use different names for the service binding and the destination. |
226
225
227
226
@@ -320,8 +319,8 @@ To fix this, either switch the Node.js version using a Node version manager, or
320
319
321
320
### How can I expose custom REST APIs with CAP?
322
321
323
-
From time to time you might want to expose additional REST APIs in your CAP application, that aren't covered through CAPs existing protocol adapters (for example, OData V4). A common example for this might be a CSV file upload or another type of custom REST endpoint.
324
-
In that case, you can leverage the powerful capabilities of Spring Web MVC, by implementing your own RestController. From within your RestController implementation, you can fully leverage all CAP Java APIs. Most commonly you'll be interacting with your services and the database through the [local service consumption API](../java/services). To learn more about Spring Web MVC, see the [Spring docs](https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc), [Spring Boot docs](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-spring-mvc), and this [tutorial](https://spring.io/guides/gs/serving-web-content/).
322
+
You might want to expose additional REST APIs in your CAP application that aren't covered through CAP's existing protocol adapters (for example, OData V4). A common example is a CSV file upload or another type of custom REST endpoint.
323
+
In that case, you can leverage the powerful capabilities of Spring Web MVC by implementing your own RestController. From within your RestController implementation, you can fully leverage all CAP Java APIs. Most commonly you'll be interacting with your services and the database through the [local service consumption API](../java/services). To learn more about Spring Web MVC, see the [Spring docs](https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc), [Spring Boot docs](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-spring-mvc), and this [tutorial](https://spring.io/guides/gs/serving-web-content/).
325
324
326
325
### How can I build a CAP Java application without SQL database?
Copy file name to clipboardExpand all lines: get-started/index.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -96,7 +96,7 @@ code --install-extension vscjava.vscode-maven # for Maven
96
96
## Command Line Interface
97
97
98
98
### The `cds` command
99
-
Run the `cds` command in your terminal to check whether installation was successful, and to see an overview of available commands, as shown below:
99
+
Run the `cds` command in your terminal to verify your installation and see an overview of available commands, as shown below:
100
100
```shell
101
101
cds
102
102
```
@@ -177,7 +177,7 @@ cds watch
177
177
Waiting for some to arrive...
178
178
```
179
179
180
-
Let's feed it with a simple service definition by running that in a secondary terminal, which adds a simple service definition as shown below:
180
+
Let's feed it with a simple service definition by running that in a _secondary terminal_, which adds a simple service definition as shown below:
181
181
```shell
182
182
cds add tiny-sample
183
183
```
@@ -278,4 +278,4 @@ npm upgrade
278
278
279
279
## Next: Bookshop
280
280
281
-
Continue with [_The Bookshop Sample_](./bookshop) for an step-by-step walkthrough of the most common development tasks in CAP projects. Then explore the [_Core Concepts_](./concepts) and [_Key Features_](./features) of CAP, before going on to the other [_Learning Sources_](./learn-more) within this documentation, or outside.
281
+
Continue with [_The Bookshop Sample_](./bookshop) for a step-by-step walkthrough of the most common development tasks in CAP projects. Then explore the [_Core Concepts_](./concepts) and [_Key Features_](./features) of CAP, before going on to the other [_Learning Sources_](./learn-more) within this documentation, or outside.
0 commit comments