SAP Cloud Application Programming Model Getting Started (CAP): Unterschied zwischen den Versionen
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Matt (Diskussion | Beiträge) |
||
Zeile 51: | Zeile 51: | ||
cds deploy | cds deploy | ||
This deploys the cds entity models and csv files to the database specified in package.json in section ''cds.requires.db''. | This deploys the cds entity models and csv files to the database specified in package.json in section ''cds.requires.db''. This should look like this:<syntaxhighlight lang="json" line="1"> | ||
{ "cds": | |||
For more explainations see for SQLite see https://cap.cloud.sap/docs/guides/databases-sqlite | { "requires": { | ||
"db": { | |||
"kind": "sqlite", | |||
"credentials": { "url": "db.sqlite" } | |||
} | |||
} | |||
} | |||
} | |||
</syntaxhighlight>For more explainations see for SQLite see https://cap.cloud.sap/docs/guides/databases-sqlite | |||
cds deploy --to sqlite # Deploys to sqlite.db | cds deploy --to sqlite # Deploys to sqlite.db | ||
cds deploy --to sqlite:my.db # Deploys to my.db | cds deploy --to sqlite:my.db # Deploys to my.db |
Version vom 24. Februar 2024, 18:08 Uhr
This article describes how to build Cloud Application Programming Model (CAP) projects and according artefacts with Core Data Services (CDS).
For CDS commands see: SAP Core Data Services Commands (CDS)
Source: ABAP Freak Show Ep. 1 - HANA Cloud and the Business Application Studio
https://www.youtube.com/watch?v=a3WPQwmpbvI&list=PLoc6uc3ML1JR38-V46qhmGIKG07nXwO6X&index=71
For local native development see SAP HANA Local Native Development
All-in-one Quick Start: https://github.com/SAP-samples/cloud-cap-walkthroughs/blob/master/exercises-node/intro/README.md
More Repositories: https://github.com/SAP-samples/cloud-cap-samples --> Use opensap*-Branches
Installation of Prerequisites
Relevant Tools from SAP
npm i -g @sap/cds npm i -g @sap/cds-dk
Additional 3rd Party Tools1
npm i -g hana-cli
Create CDS Project
cds init bookshop
or
cds init MyCDSProject --add hana, mta
Download and install dependencies:
npm install
Start Service
cds watch
This also monitors changes to the underlying files and restarts when a file has changed.
Add Persistency to CDS
In case of SQLite first install SQLite3 packages by executing in the root of the project folder:
npm i sqlite3 -D
Deploy data model to different database types:
cds deploy
This deploys the cds entity models and csv files to the database specified in package.json in section cds.requires.db. This should look like this:
{ "cds":
{ "requires": {
"db": {
"kind": "sqlite",
"credentials": { "url": "db.sqlite" }
}
}
}
}
For more explainations see for SQLite see https://cap.cloud.sap/docs/guides/databases-sqlite
cds deploy --to sqlite # Deploys to sqlite.db cds deploy --to sqlite:my.db # Deploys to my.db cds deploy --to hana # Deploys to HDI container on HANA # (Requires Cloud Foundry login)
This does not update the package.json secion cds.requires.db any more as opposed to older cds versions.
In order to see the actual created SQL statements:
cds compile srv/cat-service.cds --to sql # Creates SQL statements cds compile srv/cat-service.cds --to hana # Creates hdbcds or hdbtable/hdbview artefacts
When deployed to SQLite database use this statement to view the database:
sqlite3 my.db -cmd .dump
Deployment to SAP Business Technology Platform (BTP)
Login to CF space:
cf login
Build Deployment Package
cds add hana
package.json needs to contain "kind": "hana". (really? - for which CF / HANA Cloud Version?)
Also when deploying to BTP which is internally HANA 4.0 "deploy-format": "hdbtable" has to be set and hdi-deploy should be at least version 4. Example:
{
...
"devDependencies": {
"@sap/hdi-deploy": "^4"
},
...
"cds": {
"hana": {
"deploy-format": "hdbtable"
},
"requires": {
"db": {
"model": [
"db",
"srv"
],
"kind": "hana"
}
}
}
}
Deploy via Cloud Foundry CLI
Build the deployment artifacts:
cds build/all cds build --production # Only production profile?
Create a hana service for the hdi-container. The stated hdi-container name must correlate to the services-name in /gen/db/src/manifest.yaml.
cf create-service hana hdi-shared <app-db-hdi-container>
Now push the DB deployer application and also the actual service application:
cf push -f gen/db cf push -f gen/srv --random-route
Deploy via MTA
Install MTA Build Tool
npm install -g mbt
Generate MTA project descriptor file mta.yaml and build MTA archive:
cds add mta mbt build
Deploy MTA archive to CF space:
cf deploy mta_archives/<buildmta>.mtar
Troubleshooting
Real-time output of CF services can be displayed in BAS terminal with
cf logs <appname>
Executing CDS commands in CDS REPL
cds r cds repl
This launches an read-eval-print-loop which can be used as an interactive playground to experiment with CDS' JavaScript APIs.
CDS JavaScript APIs
API | Description |
---|---|
cds.utils.uuid() | Returns an UUID |