orkungedik/SAP-basis-dataset huggingface dataset:
## 3.3.1.5.1.2  Configuring the Neo Account as SAML Service Provider and Export SAML Metadata
Configure the Neo account as local SAML service provider.
## Context
##  Note
The following steps are only relevant if your developers will use SAP Web IDE in the Neo environment for UI development.
This configuration is needed for developer authentication in the Neo environment (Web IDE runs in the Neo environment).
In the SAML 2.0 communication, each account acts as a service provider. In this documentation, we use the term 'local service provider' to describe the account in SAP BTP as a service provider in the SAML 2.0 communication. You need to configure how the local service provider communicates with the identity provider. This includes, for example, setting a signing key and certificate to verify the service provider's identity and encrypt data.
For more information, see Configure SAP BTP as a Local Service Provider.
## Procedure
1. Log on to the SAP BTP cockpit as Neo administrator.
2. Go to the subaccount for the Neo environment.
3. In the SAP BTP cockpit, choose Security Trust .
4. On the Local Service Provider tab, choose Edit .
5. Change the configuration type from Default to Custom .
6. If the fields for the signing key and the signing certificate are already filled, leave them as they are and don't generate a new key pair.
7. If the fields for the signing key and the signing certificate are empty, choose Generate Key Pair .
8. Set principal propagation to Enabled .
9. Leave the settings for force authentication as they are.
10. Choose Save and confirm the alert message.
11. If you haven't downloaded the SAML metadata file yet: Choose Get Metadata .
The metadata file is downloaded automatically.
12. Rename the downloaded file so that you can easily recognize it later on, for example, to metadataNeo&lt;tentant-id&gt;.xml ,
You must download and upload multiple SAML metadata files. Renaming the file helps you distinguishing the metadata files from each other.
## Results
You can now switch to the Application Identity Provider tab to import the SAML identity provider metadata.
## 3.3.1.5.1.3  Establishing Trust to the SAML Identity Provider for the Neo Account
Import the SAML identity provider metadata to the Neo account to configure SAML trust to the identity provider (that is, the Identity Authentication service tenant).
## Prerequisites
You have downloaded the SAML identity provider metadata file from the Identity Authentication service tenant (see Exporting SAML Identity Provider Metadata [page 212]).
## Context
##  Note
The following steps are only relevant if your developers will use SAP Web IDE in the Neo environment for UI development.
You want to use Identity Authentication service as an SAML 2.0 identity provider. For more information, see Configure Trust to the SAML Identity Provider.
## Procedure
1. Log on to the SAP BTP cockpit as Neo administrator.
2. In the SAP BTP cockpit, navigate to the subaccount for the Neo environment.
3. In the navigation area, choose Security Trust .
4. Choose the Application Identity Provider tab.
5. Choose Add Trusted Identity Provider .
6. Choose Browse .
7. Upload the metadata file of the custom Identity Authentication service tenant.
##  Note
During the setup of the ABAP environment, you need to upload multiple SAML metadata files. Make sure that you upload the correct file. If you have followed the naming conventions suggested in this documentation, the file needed here is metadataIDP&lt;tentant-id&gt;.xml .
8. Enter a description.
9. Choose Save .
## 3.3.1.5.2 Enabling SAP Web IDE Full-Stack in the Neo Account
Enable the SAP Web IDE Full-Stack service in the Neo account if it is not yet enabled.
## Context
##  Note
You only need this step if your developers want to use SAP Web IDE as environment for UI development. As an alternative, you can also use SAP Business Application Studio.
SAP Web IDE Full-Stack is a development environment to create new or extend existing SAP Fiori, SAPUI5, or hybrid applications. For more information about the SAP Web IDE Full-Stack, see SAP Web IDE Full-Stack.
## Procedure
1. Log on to the SAP BTP cockpit for the Neo environment as Neo administration user.
2. In the navigation area, choose Services .
3. Scroll down to the Web IDE Full-Stack tile.
4. If the service is not yet enabled, choose the Web IDE Full-Stack tile.
5. On the Service: Web IDE Full-Stack: Overview screen, choose Enable .
6. Wait for the status to change to the green Enabled status.
This may take a few minutes.
## 3.3.1.5.3 Creation of Developer Users for SAP Web IDE
If your developers want to use SAP Web IDE, use identity provider users for them to ease log on to the Neo enviroment.
If you have followed the steps for setting up a custom identity provider, you have already created a developer group in the tenant for the Identity Authentication service (see also Setup of a Custom Identity Service [page 206]). Now you need to create a developer group in the Neo enviroment and map this group to the developer group in the tenant for the Identity Authentication service.
## 3.3.1.5.3.1  Creating a Neo Group for Developers
Define a Neo group to map the developer group of the identity provider to the DiDeveloper role of SAP Web IDE.
## Context
##  Note
The following steps are only relevant if your developers will use SAP Web IDE in the Neo environment for UI development.
For more information about roles, see Managing Roles.
## Procedure
1. Log on to the SAP BTP cockpit (Neo account) as Neo administration user.
2. In the navigation area, choose Security Authorizations .
3. Choose the Groups tab.
4. Choose New Group .
5. Enter a group name, for example, Developers , and choose Save .
6. In the Roles screen area, choose Assign .
7. As subaccount, select the service provider account of the Web IDE, for example, sapwebide EU1 .
8. As application, select the Web IDE application ( di ).
9. As role, select the predefined Web IDE developer role DiDeveloper .
10. Choose Save .
## 3.3.1.6 Getting Started as a Developer in the ABAP Environment
Learn about your first steps to get started as a developer in the ABAP environment.
##  Note
This documentation informs you about the first steps as a developer and assumes that the necessary steps for setting up the ABAP environment are done. For more information about how to set up the ABAP environment and getting started as an administrator, see Getting Started with a Customer Account in the ABAP Environment [page 169].
## Developing Applications: Overview
<!-- image -->
- https:/ /tools.hana.ondemand.com/#abap [https:/ /tools.hana.ondemand.com/#abap]
- Connect to the ABAP System [page 748]
- https:/ /developers.sap.com/tutorials/abap-environmentgcts.html#b1afe95c-9acb-4f75-8f80-1abe93cb524f [https:/ /developers.sap.com/ tutorials/abap-environment-gcts.html#b1afe95c-9acb-4f75-8f80-1abe93cb524f]
- https:/ /help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/ 31367ef6c3e947059e0d7c1cbfcaae93.html [https:/ /help.sap.com/viewer/ 65de2977205c403bbc107264b8eccf4b/Cloud/en-US/31367ef6c3e947059e0d7c1cbfcaae93.html]
- https:/ /help.sap.com/viewer/DRAFT/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/ 59656c2f858748fe976456248d390c5c.html [https:/ /help.sap.com/viewer/DRAFT/ 65de2977205c403bbc107264b8eccf4b/Cloud/en-US/59656c2f858748fe976456248d390c5c.html]
- https:/ /help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/ 31367ef6c3e947059e0d7c1cbfcaae93.html [https:/ /help.sap.com/viewer/ 65de2977205c403bbc107264b8eccf4b/Cloud/en-US/31367ef6c3e947059e0d7c1cbfcaae93.html]
1. Download and install ABAP Development Tools (ADT) from https:/ /tools.hana.ondemand.com/#abap. See Video Tutorial: Configure ABAP Development Tools .
##  Note
SAP GUI is not supported in the ABAP environment. You can only use ADT as your development environment.
2. Create an ABAP cloud project with ADT to connect to the ABAP system in the ABAP environment (see Connect to the ABAP System [page 748]).
3. Develop your application (see Development in the ABAP Environment). To learn more about how to develop applications, see Tutorial: Create Your First ABAP Console Application and Video Tutorial: Create Application .
## More Information About Development in the ABAP Environment
For more information about ABAP development, see Development in the ABAP Environment.
## 3.3.2  Getting Started with Custom Code Analysis in the ABAP Environment
Learn how to get started with Custom Code Analysis in the SAP BTP ABAP environment.
You want to use the SAP BTP ABAP environment to analyze your custom code remotely in your SAP ECC or SAP S/4HANA systems? This documentation will help you gain insight into all the options to work with the ABAP Test Cockpit (ATC) in the SAP BTP ABAP environment.
The following list covers all possible use cases and will guide you to the respective documentation chapters providing more details on each use case.
1. Configure ABAP Test Cockpit: Use this app to maintain ATC configurations using the SAP Fiori launchpad.
2. For more information on this app, see ABAP Test Cockpit Configurator.
3. To learn how to enable the app, see Enable Usage of the ABAP Test Cockpit Configurator App.
2. Custom Code Analysis: If you want to check your custom code in your on-premise system remotely using the SAP BTP ABAP environment as the central check system, you need to set up the Analyze Custom Code app on the SAP Fiori launchpad.
5. To enable the Analyze Custom Code app, see Enable Usage of the Custom Code Migration App. To learn all about custom code migration, see the Custom Code Migration Guide for SAP S/4HANA 2023.
3. ATC Developer Scenario: You can use a system in the SAP BTP ABAP environment as a central check system to run ATC checks from an on-premise system against this system. To do this, a number of configurations will be necessary.
7. To learn how to use the ATC as a central check system, see Configuring Remote ATC Using a Central Check System.
8. To learn how to set up the ATC developer scenario, see Configuring the ATC Developer Scenario.
4. Working with Exemptions: Learn about your options to exempt your ATC findings. To learn how to enable the Approve ATC Exemptions app to be able to exempt the findings from your custom code analysis, see Enable Usage of the Approve ATC Exemptions App. For more information on the Approve ATC Exemptions app, see Approve ATC Exemptions.
5. Schedule Custom Code Analysis: The Schedule Custom Code Analysis app enables you to schedule projects created in the Analyze Custom Code app as application jobs. With this functionality, the analyses can be performed once or periodically.
To learn more about the app and how to enable it, see Schedule Custom Code Analysis.
6. Maintain the Baseline: In the Analyze Custom Code app, it is now possible to maintain the ATC baseline. This means that you can add/remove custom code project check results to/from the baseline and choose whether you would like to exempt your findings, suppress your findings or reduce their priority. After adding findings to the baseline, they won't appear in the subsequent check results of the custom code project.
To learn more about the baseline functionality in the Analyze Custom Code app, see Custom Code Migration.
## Related Information
SAP BTP ABAP environment Custom Code Analysis [page 2665]
## 3.4 Getting Started in the Kyma Environment
As an administrator, you must perform several steps to set up a fully operational Kyma environment to which you can connect the chosen SAP solutions.
## Prerequisites
- To perform administrative and development tasks, you need a global account and one or several subaccounts for which you can provision the Kyma environment. For details, see Creating a Kyma Instance [page 3125].
- The subaccount must have the following entitlements assigned:
- Kyma environment (added by the subaccount manager)
- Service Manager (added by default). However, if you removed the entitlement, you must add it again in your subaccount
For details, see Configure Entitlements and Quotas for Subaccounts [page 2269].
## Procedure
1. Set up a Kubernetes cluster with the project "Kyma" to connect and extend SAP systems: Creating a Kyma Instance [page 3125]
2. Add the modules you'd like to use: Kyma Modules [page 83].
3. Assign the roles to users to allow the administrators to manage Kyma and the developers to create Functions: Assign Roles in the Kyma Environment [page 3301]
##  Caution
Assign the roles before the users start using the Kyma dashboard. Not granting the roles results in an error.
4. Use the Kyma environment to integrate external systems: Register an SAP Customer Experience System You have the following options:
- Integrate a CX system and the Kyma environment, so that the Functions you develop can use the system's API and receive business events.
- Integrate an SAP S/4 HANA Cloud system to use the services it provides to extend your applications.
After you've integrated externals systems, the developers can start working on their Functions.
5. Extend SAP S/4HANA Cloud by developing event-driven extensions and applications: Extending SAP S/ 4HANA Cloud in the Cloud Foundry and Kyma Environment
6. Group several solutions into one formation to meet the requirements of your business scenario: Including SAP Systems in a Formation
## Results
You have set up the Kyma environment and connected it as required.
## Next Steps
After the administrator has set up the Kyma environment, the developers can access it through the Kyma dashboard. After logging on, developers can start creating extensions for the SAP systems either from the Kyma dashboard or from the terminal after downloading the kubeconfig file with the cluster configuration. For details, see Development in the Kyma Environment [page 1773].
## 3.4.1  Getting Started with an Enterprise Account in the Kyma Environment
Quickly get started with an enterprise account in the Kyma environment using the SAP BTP cockpit.
## Procedure
1. Get a global account.
After you've signed up for your enterprise account, you get an e-mail with a link to SAP BTP and the logon data as administrator for the global account.
Log on to SAP BTP and navigate to your global account.
##  Note
For more information on available plans, including free tier, see Available Plans in the Kyma Environment [page 3131].
2. Set up your subaccount. For more information, see Create a Subaccount [page 2249].
You can create more subaccounts to break down your account model and structure it according to your development scenario. But first it's important you understand how to navigate to your accounts using the SAP BTP cockpit.
You can also download and use the SAP BTP command line interface (btp CLI) to create new subaccounts. See Download and Start Using the btp CLI Client [page 2402] and Working with Global Accounts, Directories, and Subaccounts Using the btp CLI [page 2434].
3. Create your Kyma environment. For more information, see Creating a Kyma Instance [page 3125].
4. Configure your Kyma environment.
Now that you've set up your account model, it's time to think about member management. You can add members at different levels:
- For Kyma-specific role assignment, see Assign Roles in the Kyma Environment [page 3301].
- To learn more about how user roles are assigned in SAP BTP, have a look at User and Member Management [page 121].
5. Develop your applications and extend SAP solutions.
Check out Development in the Kyma Environment [page 1773] to learn more.
## Related Information
Available Plans in the Kyma Environment [page 3131]
## 3.4.2  Getting Started with a Trial Account in the Kyma Environment
Quickly get started with a trial account in the Kyma environment.
## Procedure
1. Get a global account.
Sign up for a free trial account. See Get a Free Trial Account [page 147]. For more information about the scope of our trial offering, see Trial Accounts and Free Tier [page 99] .
For more information on available plans, including free tier, see Available Plans in the Kyma Environment [page 3131].
2. Set up your subaccount.
When you register for a trial account, a subaccount is created for you.
If you want to create more subaccounts to break down your account model and structure it according to your development scenario, see Create a Subaccount [page 2249]. But first it's important you understand how to navigate to your accounts using the SAP BTP cockpit.
You can also download and use the SAP BTP command line interface (btp CLI) to create new subaccounts. See Download and Start Using the btp CLI Client [page 2402] and Working with Global Accounts, Directories, and Subaccounts Using the btp CLI [page 2434].
3. Create your Kyma environment. For details, see Creating a Kyma Instance [page 3125] and Enable Trial Kyma Environment [page 233].
4. Configure your Kyma environment.
Now that you've set up your account model, it's time to think about member management. You can add members at different levels:
- For Kyma-specific role assignment, see Assign Roles in the Kyma Environment [page 3301].
- To learn more about how user roles are assigned in SAP BTP, have a look at User and Member Management [page 121].
5. Develop your applications and extend SAP solutions.
Check out Development in the Kyma Environment [page 1773] to learn more.
You can also provide extensions for the SAP Commerce Cloud, SAP Cloud for Customer, and SAP Field Service Management systems. For more information, read Extending SAP Solutions [page 2105].
## 3.4.2.1 About the Trial Account
A trial account lets you try out the Kyma environment for free with a restricted use of the platform resources and services. Access is open to everyone. Trial accounts are intended for personal exploration, and not for production use or team development.
## Trial Period
The trial account is valid for 90 days. During this time, you can explore and use the basic functionality of SAP BTP, Kyma runtime for 14 days. After 90 days, your account is automatically deleted, and you'll no longer be able to access your data. See Trial Accounts and Free Tier to learn more about the trial periods.
Note that while your trial account is valid for 90 days, the Kyma environment that you create with it expires 14 days after its creation and is then deleted permanently. To create a new Kyma environment, you must first disable the expired Kyma on your subaccount. To learn how to do that, see Disable Expired Trial Kyma Environment [page 234].
##  Caution
Once your account has expired, your cluster is deleted and all the cluster resources are removed. We recommend that you back up your cluster configuration to restore it quickly if you choose to create a new Kyma environment.
## Scope and Limitations
- It's possible to provision only one Kyma environment per global account.
- You can manage members in your trial account.
- Kyma trial accounts are available in all SAP BTP regions.
- A trial account provides you with a 1-node cluster with 4 vCPU and 16 GB of memory. An idle cluster without any customer workload uses around 33% of vCPU and 33% of memory.
- A trial account comes with a cluster with built-in eventing.
- Events are processed in-memory and are not persisted to disk. Not delivered events will be lost on restart of the eventing infrastructure.
- There's no service level agreement with regards to the availability of the platform.
## Related Information
Trial Accounts and Free Tier [page 99] Assign Roles in the Kyma Environment [page 3301]
## 3.4.2.2 Setting Up Your Trial Account
Your global trial account is set up automatically, so that you can start using it right away. However, if one or more of the automatic steps fail, you can also finalize the setup manually by following the steps below.
## 3.4.2.2.1 Create Your Trial Subaccount
The first thing that is needed in the setup of your trial account is the creation of a subaccount. If this step was successful in the SAP BTP cockpit, you can directly skip to the next section.
## Procedure
1. Navigate into your global account by choosing Enter Your Trial Account .
2. Choose New Subaccount .
3. Configure your trial account:
| Field                                                                                                   | Input                                                                                                                                                                                       |
|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Display Name                                                                                            | trial                                                                                                                                                                                       |
|  Note The value for this parameter is a sample one, you can provide a name of your choice. Description | Optional                                                                                                                                                                                    |
| Provider                                                                                                | Desired infrastructure provider                                                                                                                                                             |
| Region                                                                                                  | Desired region                                                                                                                                                                              |
| Subdomain                                                                                               | <your_id>trial Example: P0123456789trial                                                                                                                                                    |
| Enable beta features                                                                                    | Optional Enables the use of beta services and applications.                                                                                                                                 |
| Custom Properties                                                                                       | Optional You can use custom properties to identify and organize the subaccounts in your global account. For example, you can filter subaccounts by custom property in some cock- pit pages. |
## Results
You have successfully set up your trial subaccount.
## 3.4.2.2.2 Add Entitlements
Once you have a subaccount (whether it was created automatically or you followed the steps described above), you need entitlements to get your trial up and running.
## Procedure
1. Navigate to your subaccount by choosing its tile.
2. Choose Entitlements from the left-hand side navigation.
3. Choose Configure Entitlements to enter edit mode.
4. Choose Add Service Plans and select all the service plans available for your subaccount.
##  Note
To select a service plan, choose a service from the left and tick all the service plans that appear on the right. Do that for all services.
5. Once you've added all the service plans, you see them all in a table. Before you choose Save, for all the plans with numerical quota, choose  to increase the amount to the maximum (until the icon becomes disabled).
6. Finally, choose Save to save all your changes and exit edit mode.
## 3.4.2.2.3 Enable Trial Kyma Environment
After you've successfully added the entitlements, you can enable your trial Kyma environment and start developing.
## Procedure
1. Navigate to your subaccount.
2. Create your Kyma environment. For details, see Creating a Kyma Instance [page 3125].
3. Provide the name of your cluster and, optionally, a description.
Wait until the cluster is provisioned and you see the link to the Kyma dashboard.
4. Access the Kyma dashboard. For further information on the development options, see Development in the Kyma Environment [page 1773].
## Results
Your trial Kyma environment is ready to use.
## 3.4.2.2.4 Disable Expired Trial Kyma Environment
After your trial Kyma environment has expired, you must disable it to remove all the data connected to the cluster from SAP systems.
## Procedure
1. Navigate to your subaccount.
2. In the Kyma Environment section of your subaccount overview, click Disable Kyma .
##  Note
On deletion of the expired cluster, we attempt to delete the Service Instances that you created with the cluster. If we cannot do that, you have to remove the Service Instances yourself before you disable such a Kyma Environment .
## 3.4.2.2.5 Extend Trial Kyma Environment
You cannot extend your trial Kyma environment. After your trial Kyma environment has expired, you must disable it on your subaccount and enable it again to create a new cluster.
## Procedure
1. Navigate to your subaccount.
2. Disable your expired Kyma environment. [page 234]
3. After your Kyma environment has been successfully disabled, create a new Kyma environment. [page 233]
## 4.1.2  Developing Your First Application
Follow any of these tutorials to develop your first application on SAP BTP. Choose your preferred programming model and technology.
| Name                                                       | Technology                                                  |
|------------------------------------------------------------|-------------------------------------------------------------|
| Build a Business Application Using CAP for Node.js         | SAP Cloud Application Pro- gramming Model (CDS and Node.js) |
| Develop a Simple Hello World Application Using SAPUI5      | SAPUI5                                                      |
| Create an Application with SAP Java Buildpack              | Java                                                        |
| Create an Application with Cloud Foundry Python Buildpack  | Python                                                      |
| Create an Application with Cloud Foundry Node.js Buildpack | Node.js                                                     |
## 4.1.3  Developing Applications and Services
Get started with developing applications and services in the Cloud Foundry environment.
## Basic Considerations
At the outset of every development project stand questions about the goal you want to achieve, which skills, tools, and programming languages are required, and how the finished application or service is deployed and maintained. This topic provides an overview of the programming models, development languages, tools, and services you can leverage in the SAP BTP, Cloud Foundry environment to help you address those questions.
## SAP Business Application Studio
Learn about the SAP Business Application Studio, the environment tailored for efficient development of business applications. For more information, see SAP Business Application Studio [page 243].
## Business Application Pattern
To find information about the recommended development architecture for business applications in the SAP BTP, Cloud Foundry environment, see Business Application Pattern [page 244].
## SAP Cloud Application Programming Model
The SAP Cloud Application Programming Model (CAP) is the recommended framework for application and service development in the Cloud Foundry environment. To learn more, see Developing with the SAP Cloud Application Programming Model [page 247].
## Services in the Cloud Foundry Environment
In a PaaS environment, external dependencies such as databases, messaging systems, and file systems are services. To use a service, you need to create a service instance and bind it to your application, using either the cockpit or the Cloud Foundry Command Line Interface (CF CLI). To learn more, see Using Services in the Cloud Foundry Environment [page 252].
## Development Languages
Find information and tutorials for the main development languages supported in the SAP BTP, Cloud Foundry environment: Java, Node.js, and Python. See Development Languages [page 264].
## Multitenant Applications
If you want to make your applications and services available for use to other SAP BTP users, you can design them as multitenant applications. This allows consumers, who are called tenants in this scenario, to access what you've created through dedicated URLs. For more information, see Developing Multitenant Applications in the Cloud Foundry Environment [page 388].
## 4.1.3.1 SAP Business Application Studio
SAP Business Application Studio is a new cloud service in the SAP BTP, Cloud Foundry environment offering a modern development environment tailored for efficient development of business applications.
SAP Business Application Studio provides a desktop-grade IDE experience in the cloud, including command line functionalities and optimized editors.
It features dev spaces that function like isolated virtual machines. They contain tailored tools and pre-installed runtimes that can save you time and effort when setting up your development environment and that allow you to efficiently develop, test, build, and run your solutions both locally or in the cloud.
SAP Business Application Studio is the recommended environment when working with the Cloud Application Programming Model (CAP).
For more information, see SAP Business Application Studio.
## 4.1.3.3 Developing with the SAP Cloud Application Programming Model
The SAP Cloud Application Programming Model (CAP) is a framework of languages, libraries, and tools for building enterprise-grade services and applications. It guides developers along a 'golden path' of proven best practices and a great wealth of out-of-the-box solutions to recurring tasks.
Use Core Data Services (CDS) to build data models and service definitions on a conceptual level. These CDS models are used as inputs for the data, service, and UI layers. They're then translated to native artifacts, for example SQL database schemas, and interpreted to automatically serve requests at runtime.
In summary, CDS is used as a business level data definition source, and to generate the artifacts at the persistence layer. It's used to define visual aspects relating to the data, with those definitions (annotations) defining the UI layer. And it's used to generate the application service layer.
We provide seamless integration with the Cloud Foundry environment on SAP Business Technology Platform. This makes it easier for you to deploy your application and consume platform services.
The programming model is compatible with any development environment, but we recommend using the SAP Business Application Studio.
The following graphic shows the relationship between CAP, SAP Business Technology Platform, platform services, and development tools:
Overview of the SAP Cloud Application Programming Model
<!-- image -->
## Best Practices [page 248]
To help you create concise and comprehensible models with CDS, we have put together a list of best practices.
## Core Data Services (CDS) Language Reference Documentation [page 248]
CDS is the backbone of the SAP Cloud Application Programming Model (CAP). It provides the means to declaratively capture service definitions and data models, queries, and expressions in plain (JavaScript) object notations. CDS features to parse from a variety of source languages and to compile them into various target languages.
## Developing Business Applications Using Java [page 249]
The CAP Java SDK enables developing SAP Cloud Application Programming Model (CAP) applications in Java. While the SAP Business Application Studio provides excellent support to develop CAP Java applications, you can also develop locally with your tool of choice, for example Eclipse.
## Developing Business Applications Using Node.js [page 250]
Develop a sample business service using Core Data Services (CDS), Node.js, and SQLite, by using the SAP Cloud Application Programming Model (CAP). Develop on your local environment and deploy to the Cloud.
## References [page 251]
Find additional references in the following sections.
## 4.1.3.3.1 Best Practices
To help you create concise and comprehensible models with CDS, we have put together a list of best practices.
- Domain Modeling - Find here an introduction to the basics of domain modeling with CDS, complemented with recommended best practices.
- Providing Services - Learn in this guide how to define services exposed through REST and OData APIs, including an overview of generic features to serve metadata as well as most CRUD requests out of the box, input validations and more.
- Consuming Services - CAP provides manifold generic handlers for common, recurring tasks, which serve many requests out-of-the-box, thereby capturing proven best practices collected from a wealth of successful SAP applications.
- Using Databases - This guide is about defining, providing, implementing, deploying, and publishing services - so about Service Providers in general.
- Localization - Guides you through the steps to internationalize your application to provide localized versions with respect to both Localized Models as well as Localized Data.
- Localized Data - Guides you through the steps to internationalize your application to provide localized versions.
- Temporal Data - T emporal data allow maintaining information relating to past, present, and future application time.
- Authorization - About restricting access to data by adding respective declarations to CDS models, which are then enforced in service implementations.
- SaaS Extensibility - How SaaS subscribers can extend SaaS applications on a tenant level.
- Multitenancy - How to implement multitenant aware applications (SaaS applications) with CAP.
- Serving OData APIs - All about OData Annotations, OData Vocabularies, Data Aggregation, and OData V2 Support.
- Serving Fiori UIs - Explains how to add one or more SAP Fiori Elements apps to a CAP project and how to add SAP Fiori Elements annotations to respective service definitions.
- Deploy to Cloud - How to deploy your services to the cloud.
- Native SAP HANA - How to use existing database objects with CDS.
## 4.1.3.3.2 Core Data Services (CDS) Language Reference Documentation
CDS is the backbone of the SAP Cloud Application Programming Model (CAP). It provides the means to declaratively capture service definitions and data models, queries, and expressions in plain (JavaScript) object
notations. CDS features to parse from a variety of source languages and to compile them into various target languages.
CDS models are plain JavaScript objects complying to the Core Schema Notation (CSN), an open specification derived from JSON Schema. You can easily create or interpret these models, which foster extensions by 3rd-party contributions. Models are processed dynamically at runtime and can also be created dynamically.
For further information, please refer to the following sections:
- Upgrade to Compiler v2 - CDS compiler version 2 (cv2) brings numerous improvements, which allow us to significantly streamline model processing going forward.
- Definition Language (CDL) - A reference and overview of all CDS concepts and features in the form of compact examples.
- Schema Notation (CSN) - Specification of CSN, CDS' canonical format for representing CDS models as plain JavaScript objects, similar to JSON Schema.
- Query Language (CQL) - Documents the CDS Query Language (aka CQL) which is an extension of the standard SQL SELECT statement.
- Query Notation (CQN) - Specification of the Core Query Notation (CQN) format that is used to capture queries as plain JavaScript objects.
- Expression Notation (CXN) - Specification of the Core Expression Notation (CXN) used to capture expressions as plain JavaScript objects.
- Built-in Types - List of provided built-in types.
- Common Types &amp; Aspects - Introduces @sap/cds/common a prebuilt CDS model shipped with @sap/cds that provides common types and aspects.
- Common Annotations - A reference and glossary of common annotations intrinsically supported by the CDS compiler and runtimes.
- Compiler Messages - This page lists selected error messages and explanations on how to fix them.
- The Nature of Models - Introduces the fundamental principles of CDS models.
- Node.js API - The CDS compiler is implemented in Node.js. Find here the reference documentation for the respective APIs which can be used in CLI tools as well at runtime in CDS service implementations.
## 4.1.3.3.3 Developing Business Applications Using Java
The CAP Java SDK enables developing SAP Cloud Application Programming Model (CAP) applications in Java. While the SAP Business Application Studio provides excellent support to develop CAP Java applications, you can also develop locally with your tool of choice, for example Eclipse.
The CAP Java SDK supports lean application design by its modular architecture, that means you pick the required features and add them to your application dependencies on demand.
It enables local development by supporting in-memory or file-based SQLite databases. At the same time, the CAP Java SDK enables switching to a productive environment, using, for example, SAP HANA as a database, easily by simply switching the application deployment configuration.
The following sections help you get started.
- Getting Started
- Using Local Development
- Starting a New Project
- Stack Architecture
- Services
- Event Handlers
- Working with Data
- Building CQL Statements
- Executing CDS QL Statements
- Introspecting CQL Statements
- Working with CDS Models
- Application Services
- Fiori Drafts
- Indicating Errors
- Request Contexts
- ChangeSet Contexts
- Security
- Remote Services
- Messaging
- Multitenancy
- Persistence Services
- Audit Logging
- Development
- Observability
- Migration
## 4.1.3.3.4 Developing Business Applications Using Node.js
Develop a sample business service using Core Data Services (CDS), Node.js, and SQLite, by using the SAP Cloud Application Programming Model (CAP). Develop on your local environment and deploy to the Cloud.
The following sections describe how to set up a development environment to get you started.
- Getting Started in a Nutshell
- Jumpstarting Projects
- Defining Domain Models
- Defining Services
- Using Databases
- Adding/Serving UIs
- Adding Custom Logic
- Deploying to Cloud
- Model Processing in Node.js
- The cds Facade Object
- Node.js Core Services API
- Authentication
- Application Service Providers
- Remote Services
- Transaction Management
- Databases
- Messaging
- Best Practices
- Using TypeScript
- CDS Design Time APIs
## 4.1.3.3.5 References
Find additional references in the following sections.
## 4.1.3.3.5.1  What's New
Find out what is new and what has changed in CAP since the last release.
- Release Notes
- Changelog
## 4.1.3.3.5.2  Learning Content
Learn about the golden path that CAP gives users to create service-based applications. Get to know the principles that enable you to focus on your domain and avoid boilerplate code. With CAP you focus on what you can do best: Solving business problems.
Try out the Learning Sources we collected on this page.
## 4.1.3.3.5.3  Sample Projects
CAP enables you to quickly create business applications by allowing you to focus on your domain logic. It offers a consistent end-to-end programming model that includes languages, libraries, and tools tailored for full-stack development on SAP BTP.
Get started with samples and reusable packages created based on CAP for Node.js and Java provided can be run in a local setup on, for example, a SQLite database.
## 4.1.3.3.5.4  Tutorials
- Learn how to create a business service using CAP for Java and deploy it to SAP BTP: Build a Business Application Using CAP for Java .
- Learn how to create a business service with CDS using Node.js and deploy it to SAP BTP: Create a Business Service with Node.js using Visual Studio Code .
- Find more tutorials using the SAP Cloud Application Programming Model (CAP) in the Tutorial Navigator .
## 4.1.3.3.5.5  Community, Blogs &amp; Q&amp;A
Learn more about CAP by visiting SAP Community.
- Find more samples, openSAP course material, podcasts, and other related resources in the SAP Cloud Application Programming Model community .
- Read the blogs including the original introduction by Daniel Hutzel and a great collection of starting points by DJ Adams.
- Ask questions related to CAP to get help from developers and other community members.
## 4.1.3.3.5.6  Troubleshooting
If you run into issues working with CAP samples or tutorials, please refer to the Troubleshooting guide. There you can find a collection of frequently asked questions and provided solutions.
Furthermore, you can get support as mentioned in section Resources .
## 4.1.3.4 Using Services in the Cloud Foundry Environment
Learn more about using services in the Cloud Foundry environment, how to create (user-provided) service instances and bind them to applications, and how to create service keys.
- About Services [page 253]
- Binding Service Instances to Applications [page 257]
- Creating Service Instances [page 254]
- Creating Service Keys [page 259]
- Creating User-Provided Service Instances [page 256]
- Deleting Service Instances [page 260]
- Updating Service Instances [page 262]
## SAP Service Manager
You can also access services for the Cloud Foundry environment through SAP Service Manager, the central registry for service brokers and platforms. It's tightly integrated with SAP BTP and allows you to consume services in connected runtime environments and to manage platforms, service brokers, service instances, and service bindings.
- For more information, see SAP Service Manager.
- To find out if SAP Service Manager is available in your desired region, search for it in the SAP Discovery Center - Service Catalog . In the Pricing tab, choose the globe icon to display a map of available regions for this service.
## 4.1.3.4.1 About Services
In the Cloud Foundry environment, you usually enable services by creating a service instance using either the SAP BTP cockpit or the Cloud Foundry command line interface (cf CLI), and binding that instance to your application.
In a PaaS environment, all external dependencies, such as databases, messaging systems, files systems, and so on, are services. In the Cloud Foundry environment, services are offered in a marketplace, from which users can create service instances on-demand. A service instances is a single instantiation of a service running on SAP BTP. Service instances are created using a specific service plan. A service plan is a configuration variant of a service. For example, a database may be configured with various "t-shirt sizes", each of which is a different service plan.
To integrate services with applications, the service credentials must be delivered to the application. To do so, you can bind service instances to your application to automatically deliver these credentials to your application. Or you can use service keys to generate credentials to communicate directly with a service instance. As shown in the figure below, you can deploy an application first and then bind it to a service instance:
<!-- image -->
Alternatively, you can also bind the service instance to your application as part of the application push via the application manifest. For more information, see https:/ /docs.cloudfoundry.org/devguide/deploy-apps/ manifest.html#services-block .
##  Note
Have in mind that you need to create a service instance first before you integrate it into your application manifest.
The Cloud Foundry environment also allows you to work with user-provided service instances. User-provided service instances enable developers to use services that are not available in the marketplace with their applications running in the Cloud Foundry environment. Once created, user-provided service instances behave in the same manner as service instances created through the marketplace. For more information, see Creating User-Provided Service Instances [page 256].
For more conceptual information about using services in the Cloud Foundry environment, see https:/ / docs.cloudfoundry.org/devguide/services/ .
## Related Information
Creating Service Instances [page 254]
Binding Service Instances to Applications [page 257]
Creating Service Keys [page 259]
Creating User-Provided Service Instances [page 256]
Solutions and Services [page 16]
## 4.1.3.4.2 Creating Service Instances
Use the SAP BTP cockpit or the Cloud Foundry Command Line Interface to create service instances:
- Create Service Instances Using the Cockpit [page 254]
- Create Service Instances Using the Cloud Foundry Command Line Interface [page 255]
You can also create service instances by declaring them as part of your multitarget application (MTA). To learn how to do that, have a look at the service creation parameters.
- Service Instance Parameters [page 677]
## 4.1.3.4.2.1  Create Service Instances Using the Cockpit
##  Note
The content of this page has moved to a new location.
To learn how to create service instances using the cockpit, see
Creating Service Instances.
## 4.1.3.4.2.2  Create Service Instances Using the Cloud Foundry Command Line Interface
You can use the Cloud Foundry Command Line Interface (cf CLI) to create service instances.
## Prerequisites
- Download and install the cf CLI and log on to Cloud Foundry. For more information, see Download and Install the Cloud Foundry Command Line Interface [page 2533] and Log On to the Cloud Foundry Environment Using the Cloud Foundry Command Line Interface [page 2534].
- If you are working in an enterprise account, you need to add quotas to the services you purchased in your subaccount before they appear in the service marketplace. Otherwise, only default free-of-charge services are listed. Quotas are automatically assigned to the resources available in trial accounts.
For more information, see Configure Entitlements and Quotas for Subaccounts [page 2269].
## Procedure
1. (Optional) Open a command line and enter the following string to list all services and service plans that are available in your org:
2. Run the following command to create a service instance:
```
cf marketplace
```
```
cf create-service SERVICE PLAN SERVICE_INSTANCE
```
Specify the following parameters:
- SERVICE : The name of the service you want to create an instance of.
- PLAN : The name of the service plan you want to use.
- SERVICE\_INSTANCE : The new name for your service instance. Use only alphanumeric characters, hyphens, and underscores.
## Related Information
Binding Service Instances to Applications [page 257]
Creating User-Provided Service Instances [page 256] About Services [page 253]
## 4.1.3.4.3 Creating User-Provided Service Instances
User-provided service instances enable you to use services that are not available in the marketplace with your applications running in the Cloud Foundry environment.
You can create user-provided service instances using the SAP BTP cockpit or the Cloud Foundry Command Line Interface:
- Create User-Provided Service Instances Using the Cockpit [page 256]
- Create User-Provided Service Instances Using the Cloud Foundry Command Line Interface [page 256]
Fore more information on user-provided service instances, see https:/ /docs.cloudfoundry.org/devguide/ services/user-provided.html .
## 4.1.3.4.3.1  Create User-Provided Service Instances Using the Cockpit
##  Note
The content of this page has moved to a new location.
To learn how to create user-provided service instances using the cockpit, see Creating User-Provided Service Instances in Cloud Foundry.