diff --git a/docs/abap-cloud-9aaaf65.md b/docs/abap-cloud-9aaaf65.md new file mode 100644 index 0000000..a836e3d --- /dev/null +++ b/docs/abap-cloud-9aaaf65.md @@ -0,0 +1,64 @@ + + +# ABAP Cloud + + + + + +## Overview + +The technological core of [ABAP Cloud](https://help.sap.com/docs/abap-cloud/abap-cloud/why-abap-cloud) defines the design-time and runtime architecture of all extensions, services, and applications. The main ABAP Cloud elements are: + +- ABAP Core Data Services \(CDS\) for the data model and for embedded analytics + +- The ABAP RESTful Application Programming Model \(RAP\) + +- The cloud-optimized ABAP language for the business logic + +- Mandatory public SAP APIs and extension points to allow automated cloud operations and lifecycle stable extensibility + +- ABAP Development Tools \(ADT\) for Eclipse as the ABAP-integrated development environment + + +Building on these key elements, you can use ABAP Cloud to cover the following scenarios: + +- **Transactional \(OLTP\)**: With ABAP Cloud you can build business objects and expose them as services, to consume them in UIs and integration scenarios. All standard behavior is supported \(create, read, update, delete\). + +- **Analytical \(OLAP\)**: ABAP Cloud is equally equipped for creating services and UIs for data analysis, and for drilling down in multiple dimensions, like integrating the data in SAP Analytics Cloud. + +- **Integration**: Both previous aspects are complemented by strong data and application integration to cater to today’s service-oriented environments. + + +The development model has two additional key differentiators: + +- The **reuse services and libraries** with core business services like number ranges, application jobs, an ABAP-integrated SAP Fiori launchpad, and UI repository to deploy SAPUI5 and SAP Fiori elements user interfaces. + +- The **built-in qualities** offering end-to-end extensibility in the programming model, major cloud qualities like scalability and upgrade stable APIs, and many more. + + + + + + +## Use Cases for Developing with ABAP Cloud + +With ABAP Cloud, you can cover a variety of use cases for different scenarios. The development path is structured according to the consumers: Either the consumer is a user or system, meaning either you want to create an app to manipulate or display data or you want to exchange data between systems with different protocols to create business processes with system-to-system communication. + +With ABAP Cloud, you can develop transactional and analytical apps. Transactional applications have transactional characteristics to create, update or delete data records whereas analytical applications only read and display data in charts or dashboards. + +All applications and services developed with ABAP Cloud are by default multitenant enabled. Partners can use the [SAP BTP, ABAP environment](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/abap-environment) Software-as-a-Service tooling to easily build, deploy, and operate Software-as-a-Service solutions on their own. + +Integration services enable system-to-system communication for different protocols. In ABAP Cloud, integration services can be used for process integration or data integration. With process integration, the communication is structured along a predefined business process like, for example, order-to-cash. In contrast, data integration focuses on transferring raw data without any relation to a business process. + +**Related Information** + + +[Design](design-314ae3e.md "") + +[Develop](develop-c8906e4.md "") + +[Deploy](deploy-d7aec3c.md "") + +[Operating with SAP Cloud ALM](operating-with-sap-cloud-alm-f7f2977.md "") + diff --git a/docs/deliver-3efbd5b.md b/docs/deliver-3efbd5b.md new file mode 100644 index 0000000..c89b0f5 --- /dev/null +++ b/docs/deliver-3efbd5b.md @@ -0,0 +1,23 @@ + + +# Deliver + +Now that you have completed your design for the required user experience of your application along with the appropriate application architecture, it’s time to deliver what you have designed. In other words, set up the development and test landscape, develop and test your application and finally release it to the productive environment. See: + +- You start by **setting up the landscape** in SAP BTP. See [Set Up](set-up-3b774f8.md). + +- Then, you continue with the development, choosing the **programming language, programming model, runtimes, tools** and others. Have in mind that depending on the programming model, there are some specifics. See + + - [Develop](develop-and-build/develop-7e30686.md) + + - [Programming Model Specifics](programming-model-specifics-cc37b7a.md) + + +- There are **sample applications** presented in tutorials and end-to-end scenarios, called missions: + + - [Tutorials for ABAP Cloud](tutorials-for-abap-cloud-fd87aaa.md) + + - [Tutorials for SAP Cloud Application Programming Model](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loioeb7420a2c752457687fb39ed01509ef5) + + + diff --git a/docs/deploy-45d5acf.md b/docs/deploy-45d5acf.md new file mode 100644 index 0000000..dc5258e --- /dev/null +++ b/docs/deploy-45d5acf.md @@ -0,0 +1,41 @@ + + +# Deploy + +SAP Cloud Application Programming Model \(CAP\) applications can be deployed in the SAP BTP, Cloud Foundry runtime or in the SAP BTP, Kyma runtime. Both runtimes can be used to host and run your custom code, while at the same time being connected to SAP BTP Multi-Cloud Services and your on-premise systems. Depending on your use case and the skill set of your developers, choose the runtime that fits your needs. See [Comparison: SAP BTP, Kyma Runtime and SAP BTP, Cloud Foundry Runtime](https://help.sap.com/docs/btp/comparison-kyma-runtime-and-cloud-foundry-runtime/runtime-comparison?version=Cloud). + + + + + +## Deploy in Cloud Foundry Runtime + +After completing the functional implementation of the CAP application by following the best practices, you can deploy your application in the cloud for productive usage. The essential steps are illustrated in the following graphic: + +![](images/Deploy_a_CAP_Application_in_Cloud_Foundry_Runtime_50243ce.png) + +With our recommended approach, the actual deployment in your SAP BTP, Cloud Foundry runtime is performed either by your [Continuous Integration and Delivery \(CI/CD\)](develop-and-build/continuous-integration-and-delivery-ci-cd-fe74df5.md) pipeline \(such as provided by SAP Continuous Integration and Delivery service\) or handled by transports \(via [SAP Cloud Transport Management](https://help.sap.com/docs/cloud-transport-management?version=Cloud), optionally orchestrated by SAP Cloud ALM\). + +If you want to perform a manual deployment in the SAP BTP, Cloud Foundry runtime, see [Deploy in Cloud Foundry](https://cap.cloud.sap/docs/guides/deployment/to-cf). + + + + + +## Deploy in Kyma Runtime + +Kyma is a Kubernetes-based platform to run containerized workloads. The service's files are provided as a container image, commonly referred to as a Docker image. In addition, the containers to be run on Kubernetes, their configuration and everything else that is needed to run them, are described in the Kubernetes resources. + +In consequence, two kinds of artifacts are needed to run applications on Kubernetes: + +- Container images + +- Kubernetes resources + + +The following diagram shows the steps to run on the SAP BTP, Kyma runtime: + +![](images/Deploy_a_CAP_Application_in_the_Kyma_Runtime_d3a3414.png) + +For detailed steps to deploying your application in the SAP BTP, Kyma runtime, see[Deploy in Kyma Runtime](https://cap.cloud.sap/docs/guides/deployment/deploy-to-kyma). + diff --git a/docs/deploy-d7aec3c.md b/docs/deploy-d7aec3c.md new file mode 100644 index 0000000..1aff011 --- /dev/null +++ b/docs/deploy-d7aec3c.md @@ -0,0 +1,62 @@ + + +# Deploy + + + + + +## Common Setup + +The deployment of developed ABAP Cloud objects and entire applications is supported by administration apps delivered with SAP BTP, ABAP environment. The respective ABAP systems run on Gardener or Kubernetes-based infrastructure, but such technical details are hidden for developers and administrators. The important part of the deployment strategy is the definition and setup of the respective System Landscape. A typical system landscape consists of three ABAP systems for development, test and productive use. See [System Landscape/Account Model](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/concepts#loio4ca756395fc24e56a42b77632a6bd862). + +The basic entity for the deployment are software components. Software components are maintained with the administrators app Manage Software Components. A hidden Git repo is automatically managed per software component based on gCTS for transport management. Software components can be imported into test and productive systems. This process can be automated via Piper pipelines including steps like automated test using ABAP Test Cockpit \(ATC\). You can also use SAP Cloud Transport Management to handle the propagation of your changes in SAP BTP, ABAP environment. + +The common setup is sufficient for customers to run their own applications. + +For more information, see: + +- [Software Components](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/software-components) + +- [Manage Software Components](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/manage-software-components) + +- [ABAP Environment Pipeline](https://www.project-piper.io/pipelines/abapEnvironment/introduction/) + + + + + + +## Additional Considerations for Partners + +There are two different models for offering and deploying your solution. + +1. As a multitenant SaaS solution: + + - You offer a cloud service + + - Your customers can subscribe to your service and get an own tenant in your central provider system + + - The application monitoring is in your responsibility and so is managing the infrastructure costs + + - Even for this scenario, Field Extensibility and Custom Logic is offered for key users on customer side \(tenant-aware\) + + +2. As an installable product: + + - You offer the product as an Add-on; the product can also be an SDK + + - Your customers need to have an own SAP BTP, ABAP environment instance + + - The installation of the product and patches is in the responsibility of your customers + + - The installation will be possible via Landscape Portal on customer side + + - The customer can extend your product via ADT. See the developer extensibility option in the [Development Use Cases](understanding-available-technology-c1f21a4.md#loio4efd0bc86ade42c28bf4c4c8dbc4451b) page. + + + +For both models, partners can build solutions based on software components with the help of the Landscape Portal to set up multitenant SaaS solutions or to offer installable products like SDKs for other customers and partners. + +The Landscape Portal is a collection of administrator apps and is part of the SAP BTP, ABAP environment. See [Landscape Portal](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/landscape-portal). + diff --git a/docs/design-314ae3e.md b/docs/design-314ae3e.md new file mode 100644 index 0000000..a149b7c --- /dev/null +++ b/docs/design-314ae3e.md @@ -0,0 +1,54 @@ + + +# Design + + + + + +## ABAP Cloud Design Principles + +ABAP Cloud is based on a model-driven architecture approach that focuses on improving development efficiency through standardization and formalization of the programming model and the tooling environment ensuring efficiency and scalability. Programming models generally define the design time software architecture with specific technologies, concepts, and development objects. It essentially defines a standard architecture for app and service development from the database to the business service exposure. + +ABAP Cloud builds on the strengths of powerful frameworks and a standardized architecture for different use cases, aiming at saving as much implementation time as possible while providing you with flexibility - you can model your business processes with apps and services based on your business requirements along predefined technical processes. As much as possible is handled by the frameworks to decrease the probability of consistency errors during runtime. This standardized and consistent architecture across all apps and services developed with ABAP Cloud has many advantages from development perspective: + +- Efficiency increase and scalability + + The developer efficiency is increased because standard architecture patterns are easily scalable. Once you are familiar with developing with the ABAP Cloud development model, the additional effort decreases with each developed service or application. + +- Adaptability and maintenance + + A standardized architecture fosters code quality and thus testability and code maintenance. ABAP Cloud comes with specific mock-frameworks for data models and events that support the code quality assurance and avoid regressions on all test levels. + +- High abstraction level + + The development model executes all low-level technical and infrastructure-related tasks. + + +The cloud-optimized ABAP languages like Data Definition Language or the Entity Manipulation Language match the data modeling requirements and are designed to support the modeling and ABAP-specific development process as closely as possible. + + + + + +## Benefits of the Model-Driven Approach + +A standardized architecture approach saves you time and scales easily with multiple apps or services. In case of ABAP Cloud, also ensures the separation of concerns between data model behavior, and service exposure ensuring interoperability between different use cases, so that you can reuse data models for different purposes like analytical reports and transactional apps at the same time. + + + + + +## Transactional Consistency Across Applications and Services + +Interoperability is guaranteed because all implementations adhere to the same technical rule set, and the framework determines the technical contracts and process flows. This enables you to design end-to-end processes without having to worry about how to implement an authorization or locking concept for only for one specific part of the process. Instead, you make process design decisions that incorporate the technological advantages of the different ABAP Cloud technologies, frameworks, and building blocks in each step of a process. For more details about transactional consistency, see Transactional Consistency. + +**Related Information** + + +[Design a Transactional Application](design-a-transactional-application-608432c.md "") + +[Design an Analytical Application](design-an-analytical-application-8819cb7.md "") + +[Design an Integration Service](design-an-integration-service-ec2ac31.md "") + diff --git a/docs/design-6bb7339.md b/docs/design-6bb7339.md new file mode 100644 index 0000000..3f86c0b --- /dev/null +++ b/docs/design-6bb7339.md @@ -0,0 +1,25 @@ + + +# Design + +Good user experience \(UX\) goes beyond aesthetics and can have substantial business benefits, both financially and in overall efficiency. A great UX can improve productivity, enhance data quality, reduce training costs, and decrease the number of change requests. + +A positive UX boosts user satisfaction, customer loyalty, and overall application adoption. Users are more likely to embrace an application that is intuitive and easy to use. + +However, achieving a good UX involves overcoming several common challenges. Users often struggle with finding information, dealing with scattered data, excessive clicks, poor data entry interfaces, and unhelpful error messages. Beyond design, bad performance and unhelpful data visualization can also frustrate users. + +The essential approach to designing a good application is design thinking, which emphasizes understanding users' needs through observation and feedback. Iteration is key: quickly sketch prototypes, gather user feedback, and refine your designs before moving to development. This ensures that the final product truly meets users' needs and optimizes resources effectively. + +For organizations working with multiple applications, consistency is crucial. Users expect uniform visual design and interactions, easy access and navigation between applications, and common functions readily available. To achieve this, a design system is necessary. It ensures consistent user experience across various channels such as desktop, mobile, and so on. + +In large-scale development, you also need robust frameworks, libraries, and user experience integration runtimes to manage hundreds of applications efficiently. Proper authorization tools are essential to control access for an extensive user base. + +The SAP Fiori design system along with its enabling UI tools and technologies gives you the above: a comprehensive design system for web and mobile, along with a suite of development tools and UI frameworks, enabling SAP to provide a consistent UX with good usability across all SAP products, and enabling you to do the same for your applications. Using SAP's design system enables you to bring together business value, modern technology and excellent UX, thus benefitting business and users alike. + +Find out more about user experience design and technology design in the next sections: + +- [User Experience Design](user-experience-design-323bd93.md) + +- [Technology Design](technology-design-a5b8129.md) + + diff --git a/docs/design-a-multitenant-application-1ac614d.md b/docs/design-a-multitenant-application-1ac614d.md new file mode 100644 index 0000000..1d4cfd7 --- /dev/null +++ b/docs/design-a-multitenant-application-1ac614d.md @@ -0,0 +1,50 @@ + + +# Design a Multitenant Application + +You can use the multiclient architecture of the ABAP system for multitenancy enablement and list the design principles to reach multitenancy. + +- Store tenant-related data in client-dependent tables of type A, C, or L. + +- Store system-related data in client-independent tables of type S. + +- Always add the selection of the client to ABAP database procedures \(AMDPs\). + + +Make sure consumers cannot modify the client parameter or any other part of the AMDP using the application or by tampering requests. + +- Don't generate development objects or other client-independent data system-locally in the provider system. + +- Don't evaluate the actual value of the 3-digit client field \(IF sy-mandt = ‘nnn’. ... ENDIF\). + + +You have to classify database tables according to their content. There are the two different types of content: + +- Tenant Content \(client-dependent\) + + - Tenant configuration data – tables with delivery class “C” + + - Tenant application data – tables with delivery class “A” + + - Tenant temporary data – tables with delivery class “L” + + + Database tables for tenant content must be client-dependent. This means that the first field of the table must be of datatype “CLNT”. We recommend using the inline declaration „abap.clnt“. + + Only the content of client-dependent “C” and “A” tables is considered during tenant copy and tenant move. Content of client-independent tables that are not delivered from the development system and “L” tables are lost during tenant lifecycle processes such as tenant move. + + During tenant deletion, the content of all client-dependent tables is removed. + + The delivery class must be “C”, “A”, or “L”. + + The delivery classes “E”, “G” and “W” are not supported in the ABAP environment at all. + +- System Content \(client-independent\): System configuration data – tables with delivery class “S” + + Store data that is defined by the service provider and not specific for any tenant in a client-independent “S” table. Define the content in the respective development system and export it as TABU entries via a development transport request. The content is considered as code and imported like other development artifacts into subsequent systems such as the provider system. + + Access to tables and all further ABAP Cloud Syntax is by default tenant aware. + + +See [Multitenancy Development Guideline](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/multitenancy-development-guideline). + diff --git a/docs/design-a-transactional-application-608432c.md b/docs/design-a-transactional-application-608432c.md new file mode 100644 index 0000000..0f7d58e --- /dev/null +++ b/docs/design-a-transactional-application-608432c.md @@ -0,0 +1,20 @@ + + +# Design a Transactional Application + +Transactional applications and services implement use cases where read, create, update, or delete operations on the data set are required. + +A transactional application consists of a client, the business service exposure that defines the service that is consumed by the client, domain-specific models and domain-specific logic that implements behavior. Data is either accessed from the SAP HANA database or with the service consumption model from remote services. + +The following graphic gives you an overview of the main parts of the transactional application’s architecture: + +![](images/Design_a_Transactional_Application_d715f00.png) + +The client is either an SAP Fiori elements or SAPUI5 application or any API consumer. + +In the business service exposure the kind of service that is exposed is defined. A UI service is an OData service specifically designed to cater to SAP Fiori elements consumers but is used for OData UI consumers in general. API services expose the underlying data- and behavior-models as APIs to unspecified clients either with the OData protocol or business events. It is possible to define both UI and API services at the same time. + +The ABAP RESTful Application Programming Model \(RAP\) is used to create UI and API services including the domain model and implementation. The center piece of RAP is the business object. RAP's business objects consist of the data model implemented with the core data services and the transactional behavior implemented with the Entity Manipulation Language \(EML\). + +The architectural separation of concerns between the domain-specific implementation and the business service exposure allows you to expose the same data model for analytical and transactional applications and services. + diff --git a/docs/design-an-analytical-application-8819cb7.md b/docs/design-an-analytical-application-8819cb7.md new file mode 100644 index 0000000..85dfed8 --- /dev/null +++ b/docs/design-an-analytical-application-8819cb7.md @@ -0,0 +1,14 @@ + + +# Design an Analytical Application + +Analytical Applications implement use cases where multi-dimensional data models are queried to analyze business data and derive business KPIs. The main focus is on creating data models to analyze business data in embedded or cross-system setups and to visualize the data in dashboards or as part of apps. + +The following graphic gives you an overview of the main parts of the analytical architecture: + +![](images/Design_an_Analytical_Application_80e21cc.png) + +Analytical data models are CDS-based. The analytical provider consists of a reusable star or snowflake schema \(based on cubes, dimensions, and hierarchies\) and scenario-specific analytical projections \(analytical queries\). + +ABAP Cloud enables you to develop Information Access \(InA\)-based services for multidimensional user apps. The InA services are either consumed in SAP Fiori UIs or by SAP Analytics Cloud. + diff --git a/docs/design-an-integration-service-ec2ac31.md b/docs/design-an-integration-service-ec2ac31.md new file mode 100644 index 0000000..b53ccee --- /dev/null +++ b/docs/design-an-integration-service-ec2ac31.md @@ -0,0 +1,12 @@ + + +# Design an Integration Service + +Integration Services implement system-to-system communication use cases to enable data or process integration between systems across a range of different protocols and frameworks. + +You can use data integration to exchange data between two or more parties without being part of specific and predefined business process, for example, for analytical use cases. + +Process integration requirements can span data exchange across system boundaries, like, for example, initiating follow-on actions with events when a value in an app is changed. + +![](images/Design_an_Integration_Service_c04a651.png) + diff --git a/docs/design-dcdc2d9.md b/docs/design-dcdc2d9.md new file mode 100644 index 0000000..30bd046 --- /dev/null +++ b/docs/design-dcdc2d9.md @@ -0,0 +1,69 @@ + + +# Design + + + + + +## CAP Design Principles + +SAP Cloud Application Programming Model \(CAP\) focuses on the domain of the application, by capturing domain knowledge and intent instead of imperative coding. This means: + +- Close collaboration of developers and domain experts in domain modeling. + +- Out-of-the-box implementations for best practices and recurring tasks. + +- Platform-agnostic approach to avoid lock-ins, hence protecting investments. + + + + + + +## Agnostic Design + +CAP avoids technology lock-ins through higher-level concepts and APIs, which abstract low-level platform features and protocols to a large extent. In particular, this applies to: + +- Platform-specific deployment approaches and techniques + +- Platform-specific identity providers and authentication strategies + +- Onboarding and offboarding of tenants in Software-as-a-Service \(SaaS\) solutions and tenant isolation + +- Synchronous protocols like REST, OData, or GraphQL + +- Asynchronous channels and brokers like SAP Event Mesh, Message Queue, or Kafka  + +- Different database technologies including SQL and NoSQL + + +These abstractions allow CAP to quickly adapt to new emerging technologies or platforms, without affecting the application code. + + + + + +## Open and Opinionated Design + +While CAP certainly gives opinionated guidance, it does this without sacrificing openness and flexibility. You as a developer stay in control of which tools or technologies to choose, or which architecture patterns to follow. + +- All abstractions follow a glass-box pattern that allows unrestricted access to lower-level things, if necessary. + +- Best Practices served out of the box with generic solutions for many recurring tasks. + +- Out-of-the-box support for SAP Fiori and SAP HANA. + +- Dedicated tools support provided in SAP Business Application Studio, and Visual Studio Code or Eclipse. + + + + + + +## Domain-Driven Design + +CAP uses Core Data Services as its ubiquitous modelling language, with Core Data Service Aspects separating core domain aspects from generic aspects. Core Data Service's human-readable nature fosters collaboration of developers and domain experts. + +As Core Data Service models are used to fuel generic providers — the database as well as application services — CAP ensures that the models are applied in the implementation. And as coding is minimized you can more easily refine and revise their models, without having to refactor large boilerplate code bases. + diff --git a/docs/develop-58df1d6.md b/docs/develop-58df1d6.md new file mode 100644 index 0000000..c71ec93 --- /dev/null +++ b/docs/develop-58df1d6.md @@ -0,0 +1,226 @@ + + +# Develop + +Learn more about developing applications using SAP Cloud Application Programming Model \(CAP\). + + + + + +## SAP Cloud Application Programming Model \(CAP\) + +SAP Cloud Application Programming Model \(CAP\) is a framework of languages, libraries, and tools for building enterprise-grade services and applications. It guides you along the best practices you can use to develop your applications on SAP BTP. + +Core Data and Services can be used as business level data definition source, and to generate the artifacts at the persistence layer, generate the application service layer and also be used to define visual aspects relating to the data, with those definitions \(annotations\) defining the UI layer. See [Core Data and Services \(CDS\) Language Reference Documentation](https://help.sap.com/docs/btp/sap-business-technology-platform/core-data-and-services-cds-language-reference-documentation?version=Cloud). + +CAP framework provides strong support for programming languages like Node.js and Java allowing you to build server-side logic, handle requests and responses. + +The following is the list of the most prominent tasks within scope of developing a full-stack application using CAP: + +- Domain modeling + + Most projects start with capturing the essential objects of their domain in a respective domain model. Find an introduction to the basics of domain modeling with Core Data and Services, complemented with recommended best practices. See [Domain Modeling](https://cap.cloud.sap/docs/guides/domain-modeling). + +- Providing services + + To learn how to define and implement services, leveraging generic implementations provided by the CAP runtimes, complemented by domain-specific custom logic, see [Providing Services](https://cap.cloud.sap/docs/guides/providing-services). + +- Development of user interface + + To learn how to create applications with rich user interfaces for modern web business applications, responsive across browsers and devices, based on HTML5, see [Developing Apps](https://sapui5.hana.ondemand.com/#/topic/23cfd955f58142389fa7c9097e11559c). + +- Consuming services + + To learn how to use uniform APIs to consume local or remote services, see [Consuming Services](https://cap.cloud.sap/docs/guides/using-services). + +- Databases + + To learn how to use databases with CAP applications, see [Using Databases](https://cap.cloud.sap/docs/guides/databases). + + Out of the box-support is provided for SAP HANA, SQLite, H2 \(Java only\), and PostgreSQL. + +- Messaging + + CAP provides intrinsic support for emitting and receiving events. This is complemented by the messaging services connecting to message brokers to exchange event messages across remote services. See [Events and Messaging](https://cap.cloud.sap/docs/guides/messaging/). + +- Authentication + + Authenticating users on incoming HTTP requests is achieved by authentication middleware which is then used in authorization enforcement decisions. See [Authentication](https://cap.cloud.sap/docs/node.js/authentication). + +- Authorization + + To restrict access to data by adding respective declarations to the models of the Core Data and Services, which are then enforced in service implementations, see [Authorization and Access Control](https://cap.cloud.sap/docs/guides/authorization). + +- Localization, and internationalization + + To internationalize your application to provide localized versions with respect to both Localized Models as well as Localized Data, see [Localization, i18n](https://cap.cloud.sap/docs/guides/i18n). + +- Localized data + + To localize and internationalize static content, such as labels or messages, and to serve localized versions of actual application data, see [Localized Data](https://cap.cloud.sap/docs/guides/localized-data). + +- Temporal data + + CAP provides out-of-the-box support for declaring and serving date-effective entities with application-controlled validity, in particular to serve as-of-now and time-travel queries. See [Temporal Data](https://cap.cloud.sap/docs/guides/temporal-data). + +- Media data + + CAP provides out-of-the-box support for serving media and other binary data. See [Serving Media Data](https://cap.cloud.sap/docs/guides/providing-services#serving-media-data). + +- Data privacy + + CAP helps application projects to comply with data privacy regulations using SAP BTP services. See [Managing Data Privacy](https://cap.cloud.sap/docs/guides/data-privacy/). + +- Security + + To develop, deploy and operate CAP applications in a secure way, see [CAP Security Guide](https://cap.cloud.sap/docs/guides/security/). + +- Multitenancy + + Get to know the fundamental concepts of multitenancy, underpinning SaaS solutions in CAP. To learn how to run and test applications in multitenancy mode with minimized setup and overhead, see [Multitenancy](https://cap.cloud.sap/docs/guides/multitenancy/). + +- Extensibility + + To learn about the intrinsic capabilities to extend your applications in verticalization and customization scenarios, see [Extensibility](https://cap.cloud.sap/docs/guides/extensibility/). + +- Test + + To learn how to test a CAP application, see [Testing with cds.test](https://cap.cloud.sap/docs/node.js/cds-test). + + + + + + +## Runtimes + +**** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +Cloud Foundry + + + +Kyma + +
+ + + + + +SAP BTP, Cloud Foundry environment is an open Platform-as-a-Service \(PaaS\) targeted at microservice development and orchestration. + + + +SAP BTP, Kyma runtime is a fully managed Kubernetes-based runtime that enables the development and operation of cloud-native, enterprise-garde applications that can seamlessly consume Multi-Cloud Foundation Services. + +
+ +Develop polyglot applications + + + +Build on open standards with SAP Java, Node.js, and Python buildpacks or bring your own language with community buildpacks for PHP, Ruby, Go. + + + +With Kyma, you can choose any preferred language or application that can be containerized. The available Kyma modules reduce the development effort and the application time to market. + +
+ +Manage the lifecycle of applications + + + +Start, stop, scale, and configure distributed cloud applications using standard Cloud Foundry tools, our web-based administration user interface for SAP BTP, and dev-ops capabilities. + + + +Deploy and upgrade applications and take advantage of the native autoscaling functionality of Kubernetes that manages the scaling for you. Get familiar with our user interface, Kyma dashboard, or automate with standard CI/CD tools most of which support Kubernetes. + +
+ +Optimize development and operations + + + +Use the rich set of SAP BTP services including messaging, persistence, and many other capabilities. + + + +As Kyma is fully managed, upgrades for your Kubernetes cluster and base images are handled for you to save you time. + +
+ +Use the application programming model + + + +Use programming languages, libraries, and APIs tailored for full-stack application development. + +
+ + + +
+ +## Development Options Overview + +The following graphic is designed to help you find the information you need for your programming purposes. The bottom row represents the tools, frameworks, services, and deployment options recommended by SAP. If you want full flexibility you can also bring your own development tools and languages, as shown in the top row. + +![](images/Image_Map_Development_Options_Overview_d716bab.png) + + + + + +## The Recommended Path + +This development approach offers guidance for important development decisions and features proven best practices recommended by SAP. You can follow a model path for application and service development that is based on the Cloud Application Programming Model \(CAP\). When working with CAP, we recommend using Java and Node.js because they receive the highest level of tool support and are well suited for most use cases. This path provides you with a list of key aspects to consider, but the order shown in these steps isn't mandatory. You can adapt the steps as you wish to better fit your use case. + + + + + +## Tutorials and End-to-End Scenarios + +There are tutorials and end-to-end scenarios developed to show you how to apply the recommended path for the Cloud Application Programming Model \(CAP\). All these tutorials and scenarios are based on the Incident Management sample application. For a full list of the tutorials and their use cases, see [Tutorials for SAP Cloud Application Programming Model](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loioeb7420a2c752457687fb39ed01509ef5). + diff --git a/docs/develop-a-multitenant-application-3151e2a.md b/docs/develop-a-multitenant-application-3151e2a.md new file mode 100644 index 0000000..cf220ba --- /dev/null +++ b/docs/develop-a-multitenant-application-3151e2a.md @@ -0,0 +1,18 @@ + + +# Develop a Multitenant Application + +Multitenancy in the SAP BTP, ABAP environment enables independent software vendors or partners, which are the application providers, to develop and operate ABAP solutions as software as a service \(SaaS\). It leverages the SAP BTP infrastructure while hosting several consumers on the same ABAP system. The resources on SAP BTP consumed by the solution are paid for by the application provider. + +Application consumers, which are the end customers of the provider, subscribe to a provider’s multitenant application and use it in a specific consumer subaccount, which is called a tenant. Consumers access the provider’s SaaS application via a consumer-specific URL. Consumers cannot see the data of other consumers and Identity and Access Management is kept isolated between different tenants. + +The multitenant application is deployed to the provider subaccount and serves as the entry point for the consumer-specific URLs so that requests are routed to the corresponding consumer tenant in the ABAP system. Only after the multitenant application has been deployed, the application will be available for subscription to consumers. See [Developing Multitenant Applications in the ABAP Environment](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/developing-multitenant-applications-in-abap-environment). + +The ABAP system used to serve the application to the consumers is provisioned in the provider subaccount during the first subscription. See [Creating an ABAP System](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/creating-abap-system). + +Different tenants are created as separate clients in the system. Tenants in the ABAP system have different capabilities represented by the tenant business type and lifecycle status. The ABAP system contains by default a tenant used by the application provider \(client 100\) for system-level operations like the import of software components to the system. For each subscription to the multitenant application, a tenant used by the consumer \(client \>= 200\) is created. If any consumer tenants still exist in the ABAP system, the system cannot be deleted. + +The Landscape Portal functions as a central plane for tenant management that allows providers to perform lifecycle management operations such as add-on updates, creating test tenants or support users, and more. For more information on how to access and use the Landscape Portal, see [Landscape Portal](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/landscape-portal). + +Multitenancy in the SAP BTP, ABAP environment is technically based on client-dependent database tables. Developers need to make sure to define their custom database tables with the CLIENT field and the respective delivery class. The ABAP SQL access takes the current CLIENT of the logged-on user automatically into consideration. See [Multitenancy Development Guideline](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/multitenancy-development-guideline). + diff --git a/docs/develop-a-transactional-application-373046e.md b/docs/develop-a-transactional-application-373046e.md new file mode 100644 index 0000000..c141fa3 --- /dev/null +++ b/docs/develop-a-transactional-application-373046e.md @@ -0,0 +1,300 @@ + + +# Develop a Transactional Application + +Transactional applications in ABAP Cloud provide a robust and scalable solution for managing business processes and data. The ABAP RESTful Application Programming Model \(RAP\) defines how transactional applications are built. The following graphic shows the big picture: + +![](images/ABAP_Cloud_-_the_Big_Picture_5d4a7c9.png) + +To build a transactional application, you define data models and implement business logic using a declarative approach. The data models as well as the behavior definition make up the ABAP RESTful Application Programming Model business object \(RAP BO\). The data model implemented with ABAP Core Data Services defines the structure of the data. The behavior definition is implemented with ABAP and the Entity Manipulation Language. + + + + + +## Develop Behavior + +With RAP, the standard create, update, and delete operations must only be specified in the behavior definition to obtain a ready-to-run business object. In addition, the provisioning and handling of the transactional buffer is automatically done for you. The technical implementation aspects are taken over by the managed RAP BO provider. The interaction phase and the save sequence are implemented generically. For more information, see [Business Object Implementation Types](https://help.sap.com/docs/abap-cloud/abap-rap/business-object-implementation-types?version=abap_cross_product). + +The application developer can then focus on business logic that is implemented using actions, validations, determinations, and user interaction. To define which consumers are allowed to read or change data of a business object, RAP offers an authorization concept to restrict access to the business object. + +- Actions + + You can use actions to develop custom modify operations to set a specific field value, for examples. See [Operations](https://help.sap.com/docs/abap-cloud/abap-rap/operations?version=abap_cross_product). + +- Validations + + To define which consumers are allowed to read or change data of a business object. To check your data for consistency and against certain conditions based on business or process requirements, you can implement validations. A validation is implicitly invoked by the business object’s framework if a trigger condition of the validation is fulfilled. See [Validations](https://help.sap.com/docs/abap-cloud/abap-rap/validations?version=abap_cross_product). + +- Determinations + + To trigger modify operations based on trigger conditions, for example when another field is changed, you can implement determinations. A determination is implicitly invoked by the business object’s framework if the trigger condition of the determination is fulfilled. See [Determinations](https://help.sap.com/docs/abap-cloud/abap-rap/determinations?version=abap_cross_product). + + + + + + +## Develop Authorization Control + +You can define authorization checks for update operations like creates or custom operations like actions for a business object on global and instance level. For more information, see [Authorization Control](https://help.sap.com/docs/abap-cloud/abap-rap/authorization-control?version=abap_cross_product). + +If your service is to be consumed by other applications, you can define a privileged mode to allow consumers to circumvent authorization checks. For this, the consumer must implement the respective checks in their authorization control implementation. For more information, see [RAP – with privileged mode](https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/index.htm?file=abenbdl_privileged_mode.htm). + + + + + +## Develop Concurrency Control + +Concurrency control prevents concurrent and interfering database access of different users. This ensures that data can only be changed if data consistency is assured. In RAP, you can either implement optimistic or pessimistic concurrency control: + +- Optimistic concurrency control relies on the concept that every change on a data set is logged by a specified ETag field. Most often, the ETag field contains a timestamp, a hash value, or any other versioning that precisely identifies the version of the data set. Optimistic concurrency control is only relevant when consuming business objects via OData. See[Optimistic Currency Control](https://help.sap.com/docs/abap-cloud/abap-rap/optimistic-concurrency-control?version=abap_cross_product). + +- Pessimistic concurrency control is done by exclusively locking data sets. The data set that is being modified by one user cannot be changed by another user at the same time. Technically, locking is ensured by using enqueue locks and global lock table entries. See [Pessimistic Concurrency Control \(Locking\)](https://help.sap.com/docs/abap-cloud/abap-rap/pessimistic-concurrency-control-locking?version=abap_cross_product). + + + + + + +## Develop User Interfaces + +UIs create an intuitive and user-friendly interface for users to interact with the business processes. In ABAP Cloud, SAP Fiori ensures a consistent user experience when developing UIs. SAP Fiori applications can be developed for OData services that are exposed as UI services. SAP Fiori applications, following the SAP Fiori design principles, can be built using a combination of SAPUI5 and SAP Fiori elements. For more information on SAP Fiori elements and SAPUI5, see [Developing Apps with SAP Fiori Elements](https://sapui5.hana.ondemand.com/#/topic/03265b0408e2432c9571d6b3feb6b1fd) and [SAPUI5](https://help.sap.com/docs/SAPUI5?version=External). + +While SAPUI5 is a development framework that allows you to build freestyle front-end applications, SAP Fiori elements is a framework that includes commonly used floor plan templates. + +SAP Fiori elements applications are generated based on domain-specific annotations that define the layout, data binding, and behavior of a UI. You can define the overall layout for standard floor plans, define labels, implement value helps or define navigation on the UI to just name a few examples. The rendering of the UI is then handled by SAP Fiori elements, which interprets the annotations to create the final user interface. + +Back-end features that are closely related to the UI like draft, feature control, and side effects: + +- Draft + + Applications with draft capabilities let users save their changes in the system and resume their work later, even on a different device, or after an unplanned shutdown. We recommend that you use a draft for your UI use cases to improve the user experience. RAP business objects need to be draft-enabled. See [Draft](https://help.sap.com/docs/abap-cloud/abap-rap/draft?version=abap_cross_product). + +- Feature Control + + You can provide information on how data should be displayed for consumption in an SAP Fiori UI, for example, if fields are mandatory or read-only. See [Feature Control](https://help.sap.com/docs/abap-cloud/abap-rap/feature-control?version=abap_cross_product). + +- Side Effects + + You can make a SAP Fiori elements UI aware that data changes of defined fields require the recalculation of other data values, permissions, or messages on the UI in case of UI scenarios based on draft-enabled RAP business objects. See [Side Effects](https://help.sap.com/docs/abap-cloud/abap-rap/side-effects?version=abap_cross_product). + + +For more information about UI development, see: + +- [SAP BTP, ABAP Environment UI Development](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/ui-development-overview) + +- [SAP Fiori Element Feature Showcase Application for the ABAP RESTful Application Programming Model](https://github.com/SAP-samples/abap-platform-fiori-feature-showcase) + + + + + + +## Develop Events or Include Reuse Services + +With RAP, you can implement asynchronous process integration using remote or local events. Events allow you to implement a publisher – subscriber pattern with different consumers. Reuse services offer general capabilities that are required by multiple services, applications, and business areas. You can choose from a variety of reuse services that are ready-to-run, ranging from applications jobs over logging, forms, and emails up to change documents or the workflow. + +For more information, see [Business Events for Process Integration](https://help.sap.com/docs/btp/sap-abap-restful-application-programming-model/creating-rap-business-events?version=Cloud). + + + + + +## Define or Develop Extensions for a RAP Business Object + +RAP offers the possibility to develop semantically rich, upgrade-safe, and lifecycle-stable extensions for business objects. An original business object developed by an extensibility-enabler is extended with additional functionality to extend the functional scope of the original RAP business object. Using well-defined extension points enabled in the original business object, an extension provider can then extend the original data model and behavior in accordance with the business requirements or create their own business service based on an RAP business object interface. + +**** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +Extensibility Use Case + + + +Extensibility Persona + + + +More Information + +
+ +Data Model Extension + +Build full-stack data model extensions by adding new fields and associations including corresponding behavior characteristics and authorization control. + + + +Extensibility-Enabler + +Adds annotations and extension include structures to the original RAP business object to enable data model extensions. + + + +- For more information about enabling full-stack data extensibility, see [Extensibility-Enablement for CDS Data Model Extensions](https://help.sap.com/docs/abap-cloud/abap-rap/extensibility-enablement-for-cds-data-model-extensions?version=abap_cross_product). + +- For an implementation example, see [Enabling Data Model Extensions](https://help.sap.com/docs/abap-cloud/abap-rap/enabling-data-model-extensions?version=abap_cross_product). + + + + +
+ +Extension Provider + +Extends the original RAP business object with new fields or associations including field characteristics depending on the options defined by the extensibility-enabler. + + + +- For more information about how to develop data model extensions, see [CDS Data Model Extensions](https://help.sap.com/docs/abap-cloud/abap-rap/cds-data-model-extensions?version=abap_cross_product). + +- For an implementation example, see [Develop Data Model Extensions](https://help.sap.com/docs/abap-cloud/abap-rap/develop-data-model-extensions?state=DRAFT&version=abap_cross_product). + + + + +
+ +Behavior and Field-Related Behavior Extensions + +Build additional behavior like new validations, determinations, or actions including dynamic feature control and other field-related behavior. + + + +Extensibility-Enabler + +Enables data model extensibility and behavior extensibility on the original RAP business object. + + + +- For more information about enabling your business object for behavior extensions, see [Extensibility-Enablement for Behavior Extensions](https://help.sap.com/docs/abap-cloud/abap-rap/extensibility-enablement-for-behavior-extensions?version=abap_cross_product). + +- For an implementation example, see: + + - [Enabling Non-Standard Behavior and Field-Related Behavior](https://help.sap.com/docs/abap-cloud/abap-rap/enabling-non-standard-behavior-and-field-related-behavior?version=abap_cross_product) + + - [Enabling Standard Behavior Extensions](https://help.sap.com/docs/abap-cloud/abap-rap/enabling-standard-behavior-extensions?version=abap_cross_product) + + + + + +
+ +Extension Provider + +Extends the original RAP business object with new validations, determinations, or actions depending on the options defined by the extensibility-enabler. + + + +- For more information about how to develop different behavior extensions, see [Behavior Extensions](https://help.sap.com/docs/abap-cloud/abap-rap/behavior-extensions?version=abap_cross_product). + +- For an implementation example, see [Develop Behavior Extensions](https://help.sap.com/docs/abap-cloud/abap-rap/develop-behavior-extensions?version=abap_cross_product). + + + + +
+ +Node Extensibility + +Build additional business object nodes with own behavior and data model with node extensibility. + + + +Extensibility-Enabler + +Enables node extensibility on the original RAP business object. + + + +- For more information about node extensibility enabling, see [Extensibility-Enablement for Node Extensibility](https://help.sap.com/docs/abap-cloud/abap-rap/extensibility-enablement-for-node-extensibility?version=abap_cross_product). + +- For an implementation example, see [Enabling Node Extensions](https://help.sap.com/docs/abap-cloud/abap-rap/enabling-node-extensions?version=abap_cross_product). + + + + +
+ +Extension Provider + +Extend the original business object with new nodes that have their own data model and behavior. + + + +For more information about how to develop node extension, see [Node Extensions](https://help.sap.com/docs/abap-cloud/abap-rap/node-extensions?version=abap_cross_product). + +
+ + + +
+ +## Develop Tests + + + +### Develop Unit Test for the Transactional Services + +You can use the CDS test double framework to implement unit tests for the data model of transactional Services. With the RAP business object test double framework, you can manage the dependencies in the RAP business object behavior implementation and develop unit tests for RAP business object behavior like actions or determinations. + +For an example, see: + +- [Developing Unit Tests for a CDS View](https://help.sap.com/docs/abap-cloud/abap-rap/developing-unit-tests-for-cds-view?version=abap_cross_product) + +- [Developing Unit Tests for a Behavior Implementation](https://help.sap.com/docs/abap-cloud/abap-rap/developing-unit-tests-for-behavior-implementation?version=abap_cross_product) + + + + +### Develop Integration Tests for Transactional Services + +With the OData Client Proxy and the RAP business object TDF, you can implement integration tests to test use cases via EML and OData, where multiple functional units are involved. Reading or creating instances from outside, for example, makes use of the whole RAP application and involves dependent operations, such as determinations and validations. The Integration tests validate whether the interaction between the involved functional units works as expected. + +For an example, see: + +- [EML Integration Tests](https://help.sap.com/docs/abap-cloud/abap-rap/eml-integration-tests?version=abap_cross_product) + +- [OData Integration Tests](https://help.sap.com/docs/abap-cloud/abap-rap/odata-integration-tests?version=abap_cross_product) + + +For more information about the OData Client Proxy, see [OData Client Proxy-Consumption Types](https://help.sap.com/docs/btp/sap-business-technology-platform/client-proxy-instance-types?version=Cloud#consumption-types). + diff --git a/docs/develop-an-analytical-application-b845c85.md b/docs/develop-an-analytical-application-b845c85.md new file mode 100644 index 0000000..357488a --- /dev/null +++ b/docs/develop-an-analytical-application-b845c85.md @@ -0,0 +1,209 @@ + + +# Develop an Analytical Application + +Embedded analytics allows you to build complex analytical data models to evaluate and analyze business data in your ABAP system. In embedded analytics, the ABAP analytical engine is part of the software stack and operates on the same data persistence as the transactional applications. The analytical queries operate directly on the business data without data replication to an external data warehouse system. Instead, the real-time business data is queried to always evaluate the most recent changes and trends in your business data. + +Analytical applications require a multidimensional data model that focuses on a minimal join depth and a semantically rich data model that is easy to understand. You can build multidimensional data models with: + +- **Dimensions** with master-data like information to provide the context for an analytical report. A typical example for a dimension is time or location information. + +- **Hierarchies** that allow you to navigate different data granularity levels in the different dimensions. An example for navigation a time dimensions would be a drill-down from year – to quarter – to month or vice versa. + +- **Cubes** that represent the multidimensional data model, consisting of different dimensions and measures. + +- **Analytical queries** that define the initial report layout that is displayed, select the initial data, and can calculate measures that weren’t included in the underlying cube. + + +![](images/Develop_an_Analytical_Application_a994982.png) + + + + + +## Calculate Measures and KPIs + +Calculating KPIs for forecasts or decision-making is an integral task for analytical reports. To calculate numeric fields like measures or KPIs you can aggregate data based on different rule sets, like, for example, sum or average. In ABAP Cloud, the standard aggregation behavior is summation \(SUM\), minimum \(MIN\), and maximum \(MAX\). + +These standard aggregations can be further refined on query level with calculated measures. To define additional calculations and queries for additional KPIs. With restricted measures, you can exclude certain values from the aggregation. This enables you to filter the measure result set based on conditions of your choice. + +For more information, see: + +- [Standard Aggregations](https://help.sap.com/docs/abap-cloud/abap-analytics/standard-aggregations?version=abap_cross_product) + +- [Calculated Measures](https://help.sap.com/docs/abap-cloud/abap-analytics/calculated-measures?version=abap_cross_product) + +- [Restricted Measures](https://help.sap.com/docs/abap-cloud/abap-analytics/restricted-measures?version=abap_cross_product) + + + + + + +## Define or Develop Extensions for Analytical Applications + +In an analytical data model, each part of the data model can be extended individually using predefined extension points in the original analytical data model. As extensibility-enabler, you can make your own analytical data models extensible. All parts of the analytical provider can be extended. You can, for example, add new dimensions to a cube to enhance the reporting depth or you can add additional hierarchies to enable additional navigation throughout the data set. The following graphics show you where analytical data models can be enabled for extensibility. + +**** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +Extensibility Use Case + + + +Extensibility Tasks + +
+ +Dimension Extension + +Add new hierarchies to a dimension or add new fields or associations to the dimension to diversify the data model. + + + +Extensibility-Enabler + +Add annotations and extension include structures to the original dimension to enable data model extensions like fields or associations. + +
+ +Extension Provider + +- Add new hierarchy + + To extend a dimension with a new hierarchy, create a new hierarchy and add it as an association to the corresponding dimension. + +- Add new field extension + + Extend the original dimension with additional fields. + + + + +
+ +Cube Extension + +Add new dimensions to a cube to extend the scope of the data analysis or add new measures to the cube to calculate additional values. + + + +Extensibility-Enabler + +Add annotations and extension include structures to the original data model to enable data model extensions, like fields or additional dimensions. + +
+ +Extension Provider + +- Add new dimension + + To extend a cube with a new extension, create a new dimension, or use a predelivered SAP dimension and add it as an association to the corresponding dimension. + +- Add new field \(measure\) + + Extend the original cube with additional measures for new calculations. + + + + +
+ +Analytical Query Extensions + +Add new numeric fields to the query to extend the scope of the data analysis. + + + +Extensibility-Enabler + +Add annotations and extension include structures to the original data model to enable data model extensions, like additional numeric fields for calculations in queries. + +
+ +Extension Provider + +Add new fields to extend the scope of the data analysis. + +
+ +Service Definition Extension + +Create a new UI based on a released query or extend the service definition to add new queries to a service definition. + + + +Extensibility-Enabler + +Enable the service definition for extensibility to add additional queries to a service. + +
+ +Extension Provider + +- Create a custom UI based on a released UI to adapt the UI to your business requirements. + +- Add a new query to a service definition to extend the original service definition with additional queries. + + + + +
+ + + +
+ +## Develop Unit Test for the Analytical Applications + +You can use the CDS test double framework to implement unit tests for the multidimensional data model and the standard aggregations. For the analytical query, manual tests ensure that all additional calculations and measures work as expected. + +For an example, see [Developing Unit Tests for a CDS View](https://help.sap.com/docs/abap-cloud/abap-rap/developing-unit-tests-for-cds-view?version=abap_cross_product). + + + + + +## Develop UIs for Analytical Applications + +Analytical services use the Analytics Details annotations to specify the analytical query layout and to specific aggregation and planning behavior of the data. + +With the annotation `@AnalyticsDetails.query.axis:'’`, you can position the elements of a query on the different axis to define the basic layout for the report. + +For more information, see [AnalyticsDetails Annotations](https://help.sap.com/docs/abap-cloud/abap-rap/analyticsdetails-annotation?version=abap_cross_product). + diff --git a/docs/develop-an-integration-service-c079f33.md b/docs/develop-an-integration-service-c079f33.md new file mode 100644 index 0000000..20fb27c --- /dev/null +++ b/docs/develop-an-integration-service-c079f33.md @@ -0,0 +1,278 @@ + + +# Develop an Integration Service + +Integration services allow you to create connections to other systems using different protocols. This enables seamless communication and data exchange between services and applications, as well as the ability to build end-to-end business processes across system boundaries. ABAP Cloud supports integration with various integration partners such as SAP cloud products, SAP BTP services, customer extensions, and external services. + +There are SAP-managed integration scenarios for out-of-the-box integration, for example, to integrate the SAP BTP, ABAP environment with other SAP products like SAP S/4HANA Cloud, public edition. In addition, you can expose and consume custom integration services to implement your own integration use cases. For an overview of SAP-managed integration scenarios, see [Overview of Communication Scenarios Managed by SAP](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/overview-of-communication-scenarios-managed-by-sap). + +The following sections focus on exposing and consuming custom integration services and event-based integration for process and data integration. + + + + + +## Process and Data Integration + +ABAP Cloud offers various possibilities to integrate with other systems using the OData, SOAP, HTTP, RFC, and SQL protocols. In addition, you can use the SAP Event Mesh to expose and consume business events: + +- Integration Services Exposure: The development model for exposing integration services depends on the respective protocol. OData, SQL, and business events interfaces can be created using the RAP programming model. The domain-specific logic of SOAP, HTTP, and RFC services is implemented with ABAP. + +- Integration Service Consumption: The consumption of services and events from other systems is simplified by using metadata to generate an Event Consumption Model or a Service Consumption Model. Service Consumption Models are available for OData, SOAP, RFC, and business events. For HTTP and RFC, you can define the consumption requests directly in ABAP. + + +![](images/Develop_an_Integration_Service_f020fb8.png) + +ABAP Cloud supports two main integration use cases: + +- Data Integration + + Addresses the data exchange between two or more communication partners without a relation to a business process. One of the main use cases for data integration is cross-system analytics. In data integration scenarios, the raw data is exchanged without leveraging the domain-specific logic. + +- Process Integration + + Structures the communication on app or service level along a predefined business process, for example, order-to-cash. For process integration, the implemented domain-specific logic for a service is considered. The communication between the communication partners for point-to-point integration is bidirectional, meaning that information is exchanged in both directions. There are both synchronous and asynchronous process integration patterns, for example, event-based integration follows an asynchronous approach. + + +ABAP Cloud offers several different protocols for integrations such as OData, SOAP, Remote Function Calls \(RFCs\), HTTP, SQL, and business events for asynchronous integration. This ensures compatibility between SAP products or third-party services which usually expose a functionality only via a dedicated protocol. The different protocols have different advantages depending on your use case. For example, business events for asynchronous communication require a dedicated integration pattern. + +For more information, see: + +- Develop Integration Services + +- Decide on Integration Use Case: a use case overview + +- Choose and Integration Protocol and Communication Pattern: a protocol and communication pattern overview + + + + + + +## Expose Integration Services + +ABAP Cloud enables the exposure of business services to other systems via inbound communication. To make an integration service externally available, you must: + +- Develop an integration service for process or data integration + + Create an integration service to process the incoming request and to create the response for the communication partner. + +- Set up communication management + + Prepare administrative setup for the administrator by creating, for example, a communication scenario. + + + + + + +## Develop Integration Services for Process Integration + +ABAP Cloud supports various protocols like HTTP, remote function calls or services published via service bindings, such as OData for process integration. + + + + + +## Develop OData Web APIs + +An OData API is an OData service whose metadata doesn't entail any UI-specific annotations that are defined for the data model. An OData API facilitates the exchange of business information between an application and any client. OData APIs are defined with the ABAP RESTful Application Programming Model. + +For more information, see [Develop Web APIs](https://help.sap.com/docs/abap-cloud/abap-rap/develop-web-apis?version=abap_cross_product). + + + + + +## Develop HTTP Services + +You can develop an HTTP service by creating an HTTP service object. The required handler class to handle the HTTP request is automatically created with the HTTP service object. The interface IF\_HTTP\_SERVICE\_EXTENSION with HTTP request/response parameters, enables you to build an HTTP service with full flexibility. + +For more information, see: + +- [HTTP Service Development](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/http-service-development) + +- [Working with the HTTP Service Editor \(ABAP Development Tools: User Guide\)](https://help.sap.com/docs/btp/sap-abap-development-user-guide/working-with-http-service-editor?version=Cloud) + + + + + + +## Develop RFC Services + +You can create an RFC service based on a remote-enabled functions module. You've full flexibility regarding the implementation details. + +For more information, see [RFC - Inbound Communication](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/inbound-communication-rfc). + + + + + +## Develop SQL Services for Data Integration + +You can access CDS view entities in an ABAP system using SQL and the open database connectivity \(ODBC\), a standard API for accessing databases. As a result, you can use SQL statements in external analytical tools to access data in database tables that reside in an ABAP system. + +For an example, see: + +- [Developing and Exposing an SQL Service in the ABAP System](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/developing-and-exposing-sql-service-in-abap-system) + +- [Exposing the SQL Service for Privileged Access](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/exposing-sql-service-for-privileged-access) + +- [Exposing the SQL Service for Business User Access](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/exposing-sql-service-for-business-user-access) + + + + + + +## Setting up the Communication Management for Inbound Communication + +You have to create a communication scenario with inbound services for the exposed endpoints of the communication partner. This enables the administrator of the system to set up the integration, for example, by creating credentials for the authentication of the communication partner and assigning corresponding authorizations to the communication user in the Communication Management applications. + +For more information, see [Consuming Services in the Context of API with Communication Users \(Inbound\)](https://help.sap.com/docs/btp/sap-abap-development-user-guide/consuming-services-in-ui?version=Cloud). + + + + + +## Consume Integration Services + +Not all data that is consumed in ABAP Cloud is read from the SAP HANA database. Instead, data can be consumed using outbound communication via many protocols from remote integration partners, both from cloud services and from the on-premise landscape. For outbound communication, you must: + +- Implement the business service consumption + + Create a proxy class to create the request and process the response by the communication partner. + +- Set up the communication management + + Prepare integration setup for the administrator by creating, for example, a communication scenario. + + + + + + +## Consume Services for Process Integration + +To simplify the implementation of a remote call, you can create a service consumption model for the external service. The service consumption model creates proxies for the remote service. That way, you can access the service in a strictly typed manner without the need to compile requests and parse responses. + + + + + +## Consume OData Services + +The OData client proxy is the interface between the client \(consumer of a service\) and the service implementation \(data provisioning\) in the OData service consumption in ABAP. The OData client proxy enables you to create an OData-typed proxy to run OData requests in your ABAP implementation. + +For more information, see [OData Services](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/odata-services). + + + + + +## Consume HTTP Services + +You can implement free-style integrations without generated proxies via the HTTP client library. + +For more information, see [Enable HTTP Communication in Your ABAP Code](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/enable-http-communication-in-your-abap-code). + + + + + +## Consume Remote Function Call Services + +You can generate a typed-proxy for calling one or more remote-enabled function modules \(RFMs\) using a service consumption model or directly use the `CALL FUNCTION...DESTINATION` statement. + +For more information, see: + +- [RFC](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/rfc) + +- [Generating Proxies for Remote Function Call \(RFC\)](https://help.sap.com/docs/btp/sap-abap-development-user-guide/generating-proxies-for-remote-function-call-rfc?version=Cloud) + + + + + + +## Consume SOAP Services + +You can generate a service consumption model that is based on a Web service description language \(WSDL\) file describing your service. + +For more information, see [SOAP](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/soap). + + + + + +## Consume SQL Services for Data Integration + +After installing the ODBC driver for ABAP, the SQL service and the ODBC driver can be used to provide data access from external ODBC-based clients. + +For more information, see [Consumption of the SQL Service and the ODBC Driver for ABAP](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/consumption-of-sql-service-and-odbc-driver-for-abap). + + + + + +## Set Up Communication Management for Outbound Services + +You've to create a communication scenario with outbound services for the endpoints of the communication partner. This enables the administrator of the system to set up the integration by maintaining the credentials for authentication at the communication partner in the Communication Management apps, see [Consuming Services in the Context of API with Communication Users \(Outbound\)](https://help.sap.com/docs/btp/sap-abap-development-user-guide/consuming-services-in-context-of-api-with-communication-users-outbound?version=Cloud). + +ABAP Cloud supports complex scenarios, where the relevant integration partner is determined at runtime \(receiver determination\). In these cases, the communication scenario can be set up multiple times in each tenant by the administrator. + + + + + +## Develop Event-Based Integration + +Event-driven architecture enables asynchronous communication between an event provider and an event consumer in use cases where no direct response from the event consumer is required. Events represent a significant change of state that is relevant for follow-up processes, for example, if a new travel is created and you want to enable consuming applications to trigger additional workflows. + +This chapter focuses on remote business events. Local business events are based on the same design time but are consumed using an event handler class that is set up as a class pool, similar to a behavior pool. For more information about consuming local events, see [Local Consumption](https://help.sap.com/docs/abap-cloud/abap-rap/business-event-consumption?version=abap_cross_product). + + + + + +## Expose Business Events + +The development of business events is natively integrated with the ABAP RESTful Application Programming Model. An event, that is defined in an RAP behavior definition, can be exposed to remote consumers by assigning an event binding. The event binding defines the topic of the event. + +The administrator can connect the system to an SAP Event Mesh instance and expose this event topic in the Maintain Event Channel Binding application. Potential integration partners can then consume this event topic from the Event Mesh. + +For more information, see: + +- [Business Events](https://help.sap.com/docs/abap-cloud/abap-rap/business-events?version=abap_cross_product) + +- [Develop Business Events](https://help.sap.com/docs/abap-cloud/abap-rap/develop-business-events?version=abap_cross_product) + +- [Checking Channel Binding](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/checking-channel-binding) + + + + + + +## Extend Business Events + +You can customize the payload of an event with derived events. A derived event is defined with reference to an already implemented event and allows the definition of a payload that deviates from one of the referenced business events. When the referenced event is raised, the derived event is raised as well, and the custom payload is applied. For more information, see [Derived Business Events](https://help.sap.com/docs/abap-cloud/abap-rap/derived-business-events). + + + + + +## Consume Business Events + +To consume events from other systems remotely, you can generate an Event Consumption Model based on the AsyncAPI metadata of the event. The Event Consumption Model generates a typed handler class to process the event. + +To simplify the tasks of the administrator, multiple Event Consumption Models can be bundled into a communication scenario. The administrator can then create a communication arrangement to link a channel to an SAP Event Mesh with a communication scenario so that the list of event types is processed by a communication user. + +For more information, see: + +- [Business Event Consumption](https://help.sap.com/docs/abap-cloud/abap-rap/business-event-consumption?version=abap_cross_product) + +- [Generating an Event Consumption Model](https://help.sap.com/docs/btp/sap-abap-development-user-guide/generating-event-consumption-model?version=Cloud) + + diff --git a/docs/develop-and-build/adding-authentication-and-authorization-6612008.md b/docs/develop-and-build/adding-authentication-and-authorization-6612008.md new file mode 100644 index 0000000..df50350 --- /dev/null +++ b/docs/develop-and-build/adding-authentication-and-authorization-6612008.md @@ -0,0 +1,8 @@ + + +# Adding Authentication and Authorization + +As part of application development, developers create a role template during design time, which consists of scopes and attributes. Once the application is deployed, an administrator can create a role from this role template, which can then be assigned to a role collection. + +For more information about the relevant security aspects and how to set those up, see [Adding Authentication and Authorization](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/419ae2ef1ddd49dca9eb65af2d67c6ec.html "Developers create authorization information for business users in their environment and deploy this information in an application. They make this available to administrators, who complete the authorization setup and assign the authorizations to business users.") :arrow_upper_right:. + diff --git a/docs/develop-and-build/apis-d1d1107.md b/docs/develop-and-build/apis-d1d1107.md new file mode 100644 index 0000000..7eeb55b --- /dev/null +++ b/docs/develop-and-build/apis-d1d1107.md @@ -0,0 +1,79 @@ + + +# APIs + +Discover and consume APIs to manage, build, and extend the core capabilities of SAP BTP. + + + +An Application Programming Interface or API is an **interface provided by an application for interacting with other applications**. APIs specify how software programs are able to exchange information with each other, even if designed and run by different organizations. They facilitate interaction by selectively exposing certain functionality, allowing different apps, websites, and devices to communicate effectively with each other. More importantly, APIs enable businesses to reach beyond regular business channels and share data, content, and services directly to both B2B \(business to business\) and B2C \(business to consumer\) clients, making UI development easy. + + + + + +## API Offerings on SAP BTP + +SAP BTP enables you to consume APIs and publish your own ones through the following offerings: + + + + + + + + + + + + + + + + + + + +
+ +Offering + + + +Description + +
+ +[SAP BTP on SAP Business Accelerator Hub](https://api.sap.com/products/SAPCloudPlatform/overview) + + + +The SAP Business Accelerator Hub provides you with one central repository for browsing and accessing APIs from SAP and selected partners. Test APIs and try out mock data in your systems. + +It is also the official place where REST and OData REST API references are published. + +
+ +[API Management Capability within SAP Integration Suite](https://help.sap.com/viewer/p/SAP_CLOUD_PLATFORM_API_MANAGEMENT) + + + +With the API Management capability, you can build, manage, publish, and monetize your own APIs within one secure and scalable environment. + +
+ +**Software Development Kits \(SDKs\)** + +For an overview of the available SDKs, see [Tools](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/abcae5b568c94e5391a74d15f5db9213.html "SAP BTP includes many tools to help you develop and manage applications, and connect them to your on-premise systems.") :arrow_upper_right:. + + + +The SDKs available for SAP BTP offer APIs to, for example, accelerate enterprise app development. + +
+ +**Related Information** + + +[SAP API Style Guide](https://help.sap.com/viewer/product/SNG_4_APIDOC/PUBLIC/en-US) + diff --git a/docs/develop-and-build/continuous-integration-and-delivery-ci-cd-fe74df5.md b/docs/develop-and-build/continuous-integration-and-delivery-ci-cd-fe74df5.md new file mode 100644 index 0000000..0f839f4 --- /dev/null +++ b/docs/develop-and-build/continuous-integration-and-delivery-ci-cd-fe74df5.md @@ -0,0 +1,105 @@ + + +# Continuous Integration and Delivery \(CI/CD\) + +Configure and run predefined continuous integration and delivery \(CI/CD\) pipelines that automatically build, test, and deploy your code changes to speed up your development and delivery cycles. + +> ### Note: +> For links to all SAP solutions for CI/CD, blog posts, presentations, and tutorials, have a look at our [Continuous Integration and Delivery by SAP](https://help.sap.com/viewer/product/CICD_OVERVIEW/Cloud/en-US?task=discover_task) overview. + +**Continuous integration \(CI\)** describes a software development process, in which various team members integrate their contributions frequently into a single main line. Before each integration, the changes are verified through builds and automated testing. Thereby, you can detect errors as quickly as possible and prevent integration problems before completing the development. + +The **continuous delivery \(CD\)** concept expands on the one of continuous integration. It adds the aspect that any change that has successfully passed the tests is immediately ready to be deployed to production, both from a technical and a qualitative point of view. + +The following graphic shows the basic flow for continuous integration and delivery: + + + +**Continuous Integration Basic Flow** + +![](images/ci-basic-flow-copy_b835ff9.png "Continuous Integration Basic Flow") + +For more information about the continuous integration and continuous delivery concepts, see [What Are Continuous Integration and Continuous Delivery?](https://help.sap.com/viewer/8cacec64ed854b2a88e9a0973e0f97a2/Cloud/en-US/5ba483a2c97b4ad5ab0148f4a6c5a9ee.html). + + + +
+ +## Use + +Depending on your use case, you can choose between different CI/CD pipelines to help you implement continuous integration and delivery in your software development. + +SAP Continuous Integration and Delivery lets you configure and run predefined pipelines for the development of the following applications: + +- [SAP Cloud Application Programming Model](https://help.sap.com/docs/btp/sap-business-technology-platform/cloud-application-programming-model?locale=en-US&version=Cloud) + + Configure a CI/CD pipeline for the development of applications that follow the SAP Cloud Application Programming Model in the Cloud Foundry runtime. + +- [Configure an SAP Fiori in the Cloud Foundry Environment](https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/configure-sap-fiori-in-cloud-foundry-environment-job-in-job-editor?version=Cloud&language=en-US&q=SAP%20Fiori%20in%20the%20Cloud%20Foundry%20Environment) + + Configure a CI/CD pipeline for the development of SAPUI5/SAP Fiori applications in the Cloud Foundry runtime. + +- [Configure an SAP Fiori in the Neo Environment](https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/configure-sap-fiori-in-neo-environment-job-in-job-editor?version=Cloud&language=en-US&q=SAP%20Fiori%20in%20the%20Cloud%20Foundry%20Environment) + + Configure a CI/CD pipeline for the development of SAPUI5/SAP Fiori applications in the Neo environment. + +- [Configure an SAP Fiori for the ABAP Platform](https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/configure-sap-fiori-for-abap-platform-job-in-job-editor?version=Cloud&language=en-US&q=SAP%20Fiori%20in%20the%20Cloud%20Foundry%20Environment) + + Configure a CI/CD pipeline for the development of SAPUI5/SAP Fiori applications for the ABAP platform. + +- [Configure an SAP Integration Suite Artifacts](https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/configure-sap-integration-suite-artifacts-job-in-job-editor?version=Cloud&language=en-US&q=SAP%20Fiori%20in%20the%20Cloud%20Foundry%20Environment)SAP Integration Suite Artifacts + + Configure a CI/CD pipeline for the development of SAP Cloud Integration artifacts in the Cloud Foundry runtime. + +- [Configure a Container-Based Applications](https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/configure-container-based-applications-job-in-job-editor?version=Cloud&language=en-US&q=SAP%20Fiori%20in%20the%20Cloud%20Foundry%20Environment) + + Configure a CI/CD pipeline for the development of container-based applications. + + +To learn more about the CI/CD pipelines supported by SAP Continuous Integration and Delivery and the stages each pipeline can comprise, see [Supported Pipelines](https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/supported-pipelines?version=Cloud). + + + + + +## Get Started with CI/CD + +SAP Continuous Integration and Delivery provides an easy, UI-guided way to set up the service and configure and run your pipelines, without hosting your own Jenkins instance. + +To set up SAP Continuous Integration and Delivery: + +1. Enable the service in the SAP BTP cockpit. +2. Assign either the *Administrator* or *Developer* role to your user. +3. Enable the API usage to connect SAP Continuous Integration and Delivery to other services, if necessary. + +To configure SAP Continuous Integration and Delivery: + +> ### Note: +> Only administrators of SAP Continuous Integration and Delivery can configure the service. + +1. Configure credentials for connecting SAP Continuous Integration and Delivery to other services \(for example, GitHub, GitLab, Bitbucket Server, or Azure Repos to clone your sources, and SAP BTP to deploy your built application\). + +2. Add your repository. + + +Now you can create and modify your CI/CD jobs and monitor their outcome. If you want to automate your builds, you can configure a webhook between your repository and the service. You can create and modify timed triggers for your jobs, if necessary. + +For more information, see [Initial Setup](https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/initial-setup?version=Cloud) and [Configuration](https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/configuration?version=Cloud), or follow the tutorial [Configure and Run a Predefined SAP Continuous Integration and Delivery \(CI/CD\) Pipeline](https://developers.sap.com/tutorials/btp-app-ci-cd-btp.html). + + + + + +## Learn and Get Certified + +Depending on your learning goals and level of expertise, you can choose from the following offerings: + +- **[Efficient DevOps with SAP](https://open.sap.com/courses/devops1)** + + This openSAP course introduces general DevOps approaches and key principles. Learn about the basic CI/CD principles \(week 1\) and how to deliver cloud applications using CI/CD \(week 3\). + +- **[Continuous Integration and Delivery Introduction Guide](https://help.sap.com/viewer/ee5a61247061455ab232c19179fe4c3b/Cloud/en-US)** + + The CI/CD Introduction Guide provides you with basic knowledge for setting up and implementing continuous integration and delivery processes. It gives an overview of the concepts and principles of CI/CD, explains both procedures and their relation, and helps you plan your own CI/CD process. + + diff --git a/docs/develop-and-build/develop-7e30686.md b/docs/develop-and-build/develop-7e30686.md new file mode 100644 index 0000000..b5cc50e --- /dev/null +++ b/docs/develop-and-build/develop-7e30686.md @@ -0,0 +1,249 @@ + + +# Develop + +SAP BTP offers various tools and programming languages for application development. You might also want to consider to integrate your application with other solutions. + +Depending on your use case and the skill set of your developers, you can choose the runtime of your choice: + +**Environment options** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +  + + + +Cloud Foundry + + + +Kyma + + + +ABAP + +
+ +**Benefits** + + + +- Simplified developer experience for business application development +- Large choice of programming languages +- Intuitive “code-to-container” packaging and deployment, managed by the platform +- Platform-managed application security patching and updates +- Automatic application routing, load balancing, health checks, and multilevel self-healing +- Support for CAP – an opinionated business app development framework + + + + + +- Take full advantage of the advanced features and rich ecosystem of Kubernetes +- Free choice of programming languages and models \(containerized deployments\) +- Combines microservices and serverless functions +- Built-in, managed service mesh based on Istio, and other cloud-native open-source modules to reduce the development effort +- Built-in, managed event mesh +- Managed infrastructure: day-2 operations, security patches, and updates +- Full administrator access +- Refined horizontal and vertical automatic scalability +- Dedicated application runtime +- Zero downtime infrastructure setup by default +- Support for CAP – an opinionated business app development framework +- Support for on-premise connectivity + + + + + +- ABAP programming language +- Fast prototyping with ABAP RESTful Programming Model \(RAP\) +- Integrated development lifecycle +- Reuse existing on-prem ABAP assets + + + +
+ +**Additional Information** + + + +[Comparison: SAP BTP, Kyma Runtime and SAP BTP, Cloud Foundry Runtime](https://help.sap.com/docs/btp/comparison-btp-runtimes/runtime-comparison?version=Cloud) + + + +[Comparison: SAP BTP, Kyma Runtime and SAP BTP, Cloud Foundry Runtime](https://help.sap.com/docs/btp/comparison-btp-runtimes/runtime-comparison?version=Cloud) + + + +[Development in the ABAP Environment](https://help.sap.com/docs/btp/sap-business-technology-platform/development-in-abap-environment?version=Cloud) + +
+ +**Shared Benefits** + + + +- No infrastructure vendor lock-in + +- Build scalable multitenancy business applications \(SaaS\) + +- Out-of-the-box consumption of SAP and hyperscaler services + +- Built on industry standards and open technology + + + + +
+ +**Good For** + + + +- Managed build-on approach +- Enterprise-grade business applications and services +- Cloud-native web applications and services +- Scalable, microservice-based applications +- Small to medium extensions built with CAP/low-code tooling + + + + + +- Open build-on approach +- Enterprise-grade applications +- Cloud-native development of apps and services +- Low latency infra-services communication +- Reduced infrastructure management effort +- Highly scalable, microservice-based applications +- Applications built with CAP + + + + + +- User-centric process extensions +- Robust, transactional cloud applications +- Migrating and adapting add-ons to the cloud +- Reusing existing on-premise ABAP code +- Enabling ABAP developers to go to the cloud + + + +
+ +**Skills** + + + +- Any major programming languages +- SAP Fiori/UI5 and SAP HANA + + + + + +- Kubernetes knowledge +- Docker +- NodeJS or Python for serverless functions +- Any major programming language +- SAP Fiori/UI5 and SAP HANA + + + + + +- Ability to write modern ABAP code +- Core data services +- SAP Fiori/UI5 and SAP HANA + + + +
+ + + +Metering: + +- Cloud Foundry runtime: Metering starts when you start using the runtime memory, for example, when you deploy an application. + + If your global account uses the consumption-based commercial model and you want to understand how the consumption of SAP BTP, Cloud Foundry runtime is calculated, see[Consumption Monitoring](https://help.sap.com/docs/cf-runtime/cloud-foundry-runtime/monitoring-and-troubleshooting?version=Cloud) in the SAP BTP, Cloud Foundry runtime documentation. + +- Kyma runtime: Metering starts when you enable the Kyma runtime. This triggers the creation of a dedicated Kubernetes cluster, and the cluster is metered from the start, before you have deployed any applications. + + + + +For Cloud Foundry , we recommend that you create multitarget applications for managing dependencies more easily. For more information, see [Using Multitarget Applications to Manage Dependencies](using-multitarget-applications-to-manage-dependencies-41184aa.md). + +For best practices, guidelines and step-by-step instructions, see [Development](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/c2fec62b49fa43b8bd945c85ecc2e5bd.html "Develop and run business applications on SAP Business Technology Platform (SAP BTP) using our cloud application programming model, APIs, services, tools, and capabilities.") :arrow_upper_right:. + + + +
+ +## Defining Development Guidelines + +To ensure consistency and foster collaboration between developers, we recommend that you define guidelines that include standards for programming principles, code styles, and naming conventions. + +SAP provides the following official guidelines: + +- [SAPUI5 Guidelines](https://sapui5.netweaver.ondemand.com/sdk/#/topic) + +- [SAP Fiori Design Guidelines](https://experience.sap.com/fiori-design/) + + + + + + +## SAP BTP and Third-Party Cookies + +The deprecation of third-party cookies by browser manufacturers might impact applications running on SAP BTP. For example, logon scenarios in your application might fail due to session management and authentication issues. + +Third-party cookies are set by domains other than the one a user is directly visiting. They are commonly used for online advertising and tracking user behavior across multiple websites. In SAP BTP, SAP uses third-party cookies for service management and single sign-on. + +Prepare your applications for the third-party cookie deprecation and test them. See [Preparing and Testing Your Solution for Third-Party Cookie Deprecation](https://help.sap.com/docs/BTP/65de2977205c403bbc107264b8eccf4b/70d545de1931484c9efbc2cda6519fa7.html). + +All the available solutions are listed in the SAP Note [3409306 - Removal of Third-Party Cookies in Google Chrome and Microsoft Edge Browser](https://me.sap.com/notes/3409306). + diff --git a/docs/develop-and-build/developing-resilient-applications-b1b929a.md b/docs/develop-and-build/developing-resilient-applications-b1b929a.md new file mode 100644 index 0000000..712ad59 --- /dev/null +++ b/docs/develop-and-build/developing-resilient-applications-b1b929a.md @@ -0,0 +1,45 @@ + + +# Developing Resilient Applications + +Our best practices about resilient application design help you to make your applications running on SAP BTP stable and highly available. + + + +There are many different principles and patterns you can use to make your software resilient. However, it isn't always easy to find the combination that best fits your applications. For an overview of the various options you have when developing applications and detailed information about the individual patterns you can use, as well as examples for applied resilience principles and how to develop your own resilient apps on SAP BTP, read [Developing Resilient Apps on SAP BTP](https://help.sap.com/viewer/eadaa45871804b4a974be865f627e791/Cloud/en-US/d1fe5fd8ecfb46c193221ebb991af3d7.html). + +For examples on how to use selected SAP BTP services in a multi-region setup, see [Route Multi-Region Traffic to SAP BTP Services Intelligently](https://github.com/SAP-samples/btp-services-intelligent-routing). + +You can also use the [Architecting Multi-Region Resiliency for SAP BTP Use Cases](https://discovery-center.cloud.sap/refArchDetail/ref-arch-multi-region-ha) reference architecture in the SAP Discovery Center. It shows the multi-region high availability architecture for SAP BTP services and the applications built on SAP BTP. + + + + + +## Developing Resilient Applications in Cloud Foundry + +In SAP BTP, Cloud Foundry environment, you can use the availability zones \(AZ\): Benefit from the high availability mechanisms in Cloud Foundry by setting up your applications with multiple instances. You do not have to do anything explicitly to distribute the instances across the different AZs - this is handled by the platform. For more information, see [Availability Zones in the Cloud Foundry Environment](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/9c7092c7b7ae4d49bc8ae35fdd0e0b18.html#loiob6a7e11c3a58416a9ab1175bba17193a "The Cloud Foundry environment follows the recommendations of our partner IaaS providers by leveraging the availability zones (AZ) concept.") :arrow_upper_right:. + +Setting up your application with multiple instances might have an impact on your applications' capability for handling requests: In case of an AZ failure in a 3-AZ-deployment, at least one third of the application instances are affected and unavailable until Cloud Foundry can reschedule these instances on a healthy virtual machine. + +During that period, the remaining instances in the healthy AZs have to carry the request load. + + + +**Distribution During an Availability Zone Failure** + +![](images/AZ_failure_3e96947.png "Distribution During an Availability Zone Failure") + + + + + +## Developing Resilient Applications in Kyma + +Learn how to develop stable Kubernetes and microservice-based applications, as well as Istio-related resiliency tips with [Deploy Resilient Applications in the Kyma Runtime](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/7c9496c88a294b7f9ccc69a7e0998817.html "Kyma runtime is the SAP cloud-native Kubernetes application runtime, managed service. All SAP BTP, Kyma runtime production plans ensure high availability. To benefit from the high-availability setup, make sure the architecture and deployment of your application comply with resiliency best practices. Use the following guidelines for Kubernetes and microservice-based applications to develop a stable application. Read further to find some Istio-related resiliency tips.") :arrow_upper_right:. + +**Related Information** + + +[Resilience, High Availability, and Disaster Recovery \(Cloud Foundry, ABAP and Kyma Environments\)](https://help.sap.com/docs/btp/sap-business-technology-platform/resilience-high-availability-and-disaster-recovery?locale=en-US&version=Cloud#loioe3ac4f7c25a3442ca585950095eec599) + diff --git a/docs/develop-and-build/establishing-a-provider-subscriber-scenario-using-multitenancy-617af9b.md b/docs/develop-and-build/establishing-a-provider-subscriber-scenario-using-multitenancy-617af9b.md new file mode 100644 index 0000000..aecbc33 --- /dev/null +++ b/docs/develop-and-build/establishing-a-provider-subscriber-scenario-using-multitenancy-617af9b.md @@ -0,0 +1,21 @@ + + +# Establishing a Provider/Subscriber Scenario Using Multitenancy + +The provider/subscriber approach is one of the important scenarios that are supported with multitarget application. + +With SAP BTP, you can develop and run multitenant \(tenant-aware\) applications. These applications, which must apply the multitarget application approach, run on a shared compute unit that can be used by multiple consumers \(tenants\). Each consumer accesses the application through a dedicated URL. + +For example, SAP partners or central IT organizations can build and run multitenant apps in their provider accounts, deploy them using the multitarget application concept as providers, then deliver them as services to their customers or line of business subsidiaries in corresponding subscriber accounts via subscriptions. + +One of the advantages of this approach is that the application lifecycle and resource management is centrally managed. A single deployment can serve several subscribing subaccounts, which eases onboarding of new customers and decreases the number of code versions to manage. This also eases the consumption, because the actual customers of the applications don't have to deploy solutions and manage corresponding resources. + +See: + +- [Multitenancy Roles](https://help.sap.com/viewer/ea72206b834e4ace9cd834feed6c0e09/Cloud/en-US/48b552fa449945b9afc7885e1919ce2b.html "") :arrow_upper_right: + +- [Developing Multitenant Applications in the Cloud Foundry Environment](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/5e8a2b74e4f2442b8257c850ed912f48.html "In the Cloud Foundry environment, you can develop and run multitenant applications, and share them with multiple consumers simultaneously on SAP BTP.") :arrow_upper_right: + +- [Develop a Multitenant Extension Application in SAP BTP, Kyma Runtime](https://discovery-center.cloud.sap/missiondetail/3683/3726/) + + diff --git a/docs/develop-and-build/extending-existing-sap-solutions-using-sap-btp-40aa232.md b/docs/develop-and-build/extending-existing-sap-solutions-using-sap-btp-40aa232.md new file mode 100644 index 0000000..7e8e01c --- /dev/null +++ b/docs/develop-and-build/extending-existing-sap-solutions-using-sap-btp-40aa232.md @@ -0,0 +1,176 @@ + + +# Extending Existing SAP Solutions Using SAP BTP + +SAP BTP offers services, tools, and capabilities to develop, extend, or integrate business applications in the cloud. You can implement additional workflows or modules on top of existing solutions, which lets you benefit from out-of-the-box security, inherited data access governance, user interface embedding, and so on. + + + + + +## Overview + +All standard SAP solutions are offered with customizing capabilities. Additionally, customers often have their own requirements for innovative or industry-specific extensions and the extension capability of SAP BTP can help them build, deploy, and operate their new functionalities easily and securely. + +You can use SAP BTP to extend standard SAP solutions without disrupting their performance and core processes. When building extension applications, you can also benefit from the automation of the integration between SAP BTP and the extended SAP solutions. + +There are three main extension types you can use to extend your SAP solution: + +- In-app extensions: allows you to extend the back end and the UI directly in your SAP solution. You can use in-app extensions only if the SAP solutions that you want to extend provide such a possibility. For example, you can use in-app extensions for extending SAP SuccessFactors, and SAP S/4HANA Cloud. See: + + - [SAP S/4HANA Cloud In-App Extensibility](https://help.sap.com/docs/SAP_S4HANA_CLOUD/0f69f8fb28ac4bf48d2b57b9637e81fa/3ccb50e724b045508fea8b2cf1774b2b.html) + + - [SAP SuccessFactors Extension Center: In-App Extensions](https://help.sap.com/viewer/d4a86924740742048029a71b1d674130/2011/en-US) + + +- Side-by-side extensions: allows you to integrate with your SAP solution additional business functionality deployed in SAP BTP. + + The advantages of the side-by-side extensions can be grouped in these categories: + + - Business: you can include the access of new user groups, you can extend the scope with custom solutions, you can complement data and business services from different back ends. + + - Technology: more developers are enabled, your digital core remains focused, you can add innovative solutions by leveraging new technology services in the cloud. + + - Operations: you can share the extensions + + + +When planning your extension, consider these recommendations: + +- Always start simple to check the result quickly. Later on, you can grow the complexity of your extension slowly. + +- Keep your digital core focused and bring to SAP BTP only the data that makes sense. + +- Define what you want to achieve in the beginning and look for the easiest way to do that. For example, if you want to add a field in SAP S/4HANA, it's better to create an in-app extension, than to implement an extension application on SAP BTP. + +- Ensure the availability of suitable APIs and events, because you will need them when developing and extension application on SAP BTP. + + +In SAP BTP, you have these options to extend your SAP solution: + +- Extensions with automated configurations in the Cloud Foundry and Kyma environments: applicable for SAP S/4HANA Cloud, and SAP SuccessFactors. + +- Extensions with automated configurations in the Kyma environment: applicable for SAP S/4HANA Cloud, SAP SuccessFactors, SAP Cloud for Customer, SAP Commerce Cloud, and SAP Field Service Management. + + + + +### Extensions with Automated Configurations + +SAP BTP provides a standard way for extending SAP solutions and developing event-driven extensions and applications. This framework includes: + +- Simplified, standardized and unified extensibility and configuration for the SAP solutions. + +- Central catalog per customer for all connected SAP systems where data such as APIs, events, credentials and other is stored. You can benefit from business services and actionable events across end-to-end business processes. + + +If you have to group the systems of different SAP solutions in the same business case, you can set up the connectivity between all these systems and SAP BTP in a single formation. + +The following SAP solutions currently support the automated configurations: + +- SAP S/4HANA Cloud + +- SAP SuccessFactors + +- SAP Cloud for Customer + +- SAP Commerce Cloud + +- SAP Field Service Management + + + + + + +## Use Cases + +The extension use cases include but are not limited to: + +- Extending the user interface of your SAP cloud solution. + + You can complement an existing SAP solution with a new or improved SAP Fiori user interface without adding any major logic or data. + + You can also provide necessary information and tools on mobile devices. + + For example: + + - Building completely new user interfaces that can be seamlessly integrated in the SAP SuccessFactors Employee Central home page. + + - Adding new functionality to SAP SuccessFactors by connecting it to other SAP solutions, such as SAP Commerce Cloud, SAP Cloud for Customer, SAP Field Service Management, SAP S/4HANA Cloud. + + - Building completely new SAP Fiori-based user interfaces that can be seamlessly integrated in the SAP Fiori launchpad. + + +- Enhancing the functionality of your SAP cloud solution by connecting it with other SAP solutions. + + For example: + + - Connecting SAP S/4HANA Cloud with other SAP solutions, such as SAP Commerce Cloud, SAP Cloud for Customer, SAP Field Service Management, SAP SuccessFactors. + + - Connecting SAP SuccessFactors by connecting it to other SAP solutions, such as SAP Commerce Cloud, SAP Cloud for Customer, SAP Field Service Management, SAP S/4HANA Cloud. + + +- Enhancing core business processes with analytics and machine learning capabilities. + +- Extend data insights by consolidating and combining data in one central place. + +- Building an extensions ecosystem, by creating and operating SaaS applications and selling them to multiple customers. + + For example, as an SAP Partner, you can build a multi-tenant SaaS extension application and provide it to your customers via: + + - SAP App Center + + - SAP BTP cockpit + + + + + + + +## Resources + +The following resources are available for your extension scenarios. The links to various documents guide you through the configuration tasks that you need to perform to enable the SAP BTP for developing extension applications for your existing SAP solutions, and the learning journeys are collections of links to additional resources. + +- SAP S/4HANA Cloud + + - [Extending SAP S/4HANA Cloud in the Cloud Foundry and Kyma Environment](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/40b9e6c3cc43498b92472da13e88c7bf.html) \(SAP Help Portal\) + + - [Extend SAP S/4HANA Cloud on SAP Business Technology Platform](https://discovery-center.cloud.sap/missiondetail/3277/3331) \(Mission in Discovery Center\) + + - [SAP Extensibility Explorer for SAP S/4HANA Cloud](https://extensibilityexplorer.cfapps.eu10.hana.ondemand.com/ExtensibilityExplorer/) + + - [Tutorials about the integration of SAP BTP ABAP Environment with SAP S/4HANA Cloud](https://blogs.sap.com/2021/05/12/integrating-the-abap-environment-with-sap-s-4hana-cloud-hands-on-video-tutorials/) + + - [SAP S/4HANA Cloud Extensions on SAP BTP](https://help.sap.com/doc/221f8f84afef43d29ad37ef2af0c4adf/HP_2.0/en-US/bd051afa72a745d49ce91344ad8f2628.html?collapse=) \(Learning Journey on SAP Help Portal\) + + +- SAP Customer Experience \(CX\) products + + - [Extending SAP Customer Experience Products in the Kyma Environment](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/83df31ad3b634c0783ced522107d2e73.html) \(SAP Help Portal\) + + - [Create Extensions in the Kyma Environment Using Functions](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/fe4ba5b46f794037a4aee13df9df2d3c.html) \(SAP Help Portal\) + + +- SAP SuccessFactors + + - [Extending SAP SuccessFactors in the Cloud Foundry and Kyma Environment](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/9e33934540c44681817567d6072effb2.html) \(SAP Help Portal\) + + - [Extend SAP SuccessFactors on SAP BTP ](https://discovery-center.cloud.sap/missiondetail/3264/3309) \(Mission in Discovery Center\) + + - [Build Resilient Cloud Native Applications](https://discovery-center.cloud.sap/missiondetail/3197/3228) \(Mission in Discovery Center\) + + - [SAP SuccessFactors Extensions on SAP BTP](https://help.sap.com/doc/221f8f84afef43d29ad37ef2af0c4adf/HP_2.0/en-US/ba16ffc927ce4c26ad21b6c2b91fe38d.html) \(Learning Journey on SAP Help Portal\) + + + +**Related Information** + + +[Extensions](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/08b1effc53634890a525f945017e2edc.html "The extension capabilities of SAP Business Technology Platform (SAP BTP) enables developers to implement loosely coupled extension applications securely, thus implementing additional workflows or modules on top of the existing SAP cloud solution they already have.") :arrow_upper_right: + +[Extension Architecture Guide](https://help.sap.com/docs/sap-btp-guidance-framework/extension-architecture-guide/what-is-extension-architecture-guide) + +[SAP Application Extension Methodology Overview](https://help.sap.com/docs/sap-btp-guidance-framework/sap-application-extension-methodology/sap-application-extension-methodology-overview) + diff --git a/docs/develop-and-build/images/AZ_failure_3e96947.png b/docs/develop-and-build/images/AZ_failure_3e96947.png new file mode 100644 index 0000000..7b6c2b5 Binary files /dev/null and b/docs/develop-and-build/images/AZ_failure_3e96947.png differ diff --git a/docs/develop-and-build/images/ci-basic-flow-copy_b835ff9.png b/docs/develop-and-build/images/ci-basic-flow-copy_b835ff9.png new file mode 100644 index 0000000..177a7ca Binary files /dev/null and b/docs/develop-and-build/images/ci-basic-flow-copy_b835ff9.png differ diff --git a/docs/develop-and-build/images/sap_cp_lm_mta_926ef9d.png b/docs/develop-and-build/images/sap_cp_lm_mta_926ef9d.png new file mode 100644 index 0000000..b2d0bdb Binary files /dev/null and b/docs/develop-and-build/images/sap_cp_lm_mta_926ef9d.png differ diff --git a/docs/develop-and-build/performing-ui-usability-and-unit-tests-50a7c7d.md b/docs/develop-and-build/performing-ui-usability-and-unit-tests-50a7c7d.md new file mode 100644 index 0000000..a891682 --- /dev/null +++ b/docs/develop-and-build/performing-ui-usability-and-unit-tests-50a7c7d.md @@ -0,0 +1,37 @@ + + +# Performing UI, Usability, and Unit Tests + +You should always conduct careful testing to ensure that your application is of high quality. Create a release candidate to propagate throughout your landscape. + +For example, consider testing the user interface, usability, and performance, as well as running general unit tests. Developers should use unit tests to ensure that software modules behave as expected. Unit tests are the smallest tests, and they detect issues fast. Taking good care of unit tests usually leads to better maintainable and understandable code. If you use the Continuous Integration process, you should consider automated tests as part of the pipeline. + + + + + +## SAPUI5 + +SAPUI5 supports QUnit testing. We recommend that you write unit tests as small as possible, ensuring that you only test one single thing at a time. This will not only make debugging easier, but also maintaining the tests in the long run. + +For an overview of available testing options for SAPUI5 developments, see [Testing and Performance Measurement](https://sapui5.hana.ondemand.com/#/topic/291c9121e6044ab381e0b51716f97f52). + +For SAPUI5 and SAP Fiori testing, please see the demokit for SAP UI5: [https://sapui5.hana.ondemand.com/\#/topic](https://sapui5.hana.ondemand.com/#/topic). + + + + + +## Testing in SAP Web IDE + +SAP Web IDE empowers developers to test and evaluate the functionality and performance of their apps: + +- Use the application preview to test functionality, design and performance before deploying it. There are different configuration options available, such as SAP UI5 runtime version, URL parameters. See [Running Applications in Development Mode](https://help.sap.com/viewer/825270ffffe74d9f988a0f0066ad59f0/CF/en-US/fcc3b671ca084c8ab5e009bd4de19048.html). + +- Run your application using a client mock server. See [Run Applications with Mock Data](https://help.sap.com/viewer/825270ffffe74d9f988a0f0066ad59f0/CF/en-US/e7d047a743b74b83875c3ede20783f24.html). + +- Execute unit tests for SAPUI5 \(Qunit\) and Java \(JUnit\). See [Developing Application Tests](https://help.sap.com/viewer/825270ffffe74d9f988a0f0066ad59f0/CF/en-US/3655fba62f884e84a774c6030eeeab49.html) and [Test a Java Module](https://help.sap.com/viewer/825270ffffe74d9f988a0f0066ad59f0/CF/en-US/25cd7ef4cb8b4e03aaa60ab197cf51b1.html). + +- Execute SAPUI5 integration tests based on OPA5. See [Performing Integration Tests](https://help.sap.com/viewer/df50977d8bfa4c9a8a063ddb37113c43/Cloud/en-US/84ddc25bf6024506b9c56fbbe4438169.html#loio998fbbb1a53c4fbb888e9b14892b3c0c "") :arrow_upper_right:. + + diff --git a/docs/develop-and-build/programming-languages-c13bab7.md b/docs/develop-and-build/programming-languages-c13bab7.md new file mode 100644 index 0000000..3e01598 --- /dev/null +++ b/docs/develop-and-build/programming-languages-c13bab7.md @@ -0,0 +1,63 @@ + + +# Programming Languages + +SAP BTP supports many different programming languages; the availability of each depends on the development runtime you're using. + + + + + + + + + + + + + + + + + + + +
+ +Environment + + + +More Information + +
+ +Cloud Foundry runtime + + + +See [Development in the Cloud Foundry Environment](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/40a8f8f6f1724e0ca0fd2a8777f45504.html "Learn more about developing applications on the SAP BTP, Cloud Foundry environment.") :arrow_upper_right: + +
+ +ABAP environment + + + +See [Development in the ABAP Environment](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/31367ef6c3e947059e0d7c1cbfcaae93.html "Learn more about developing applications in the ABAP environment.") :arrow_upper_right: + +
+ +Kyma runtime + + + +See [Development in the Kyma Environment](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/606ec610ee4746c09d5d2bef5a85a124.html "Learn more about developing applications in SAP BTP, Kyma runtime.") :arrow_upper_right: + +
+ +**Related Information** + + +[SAP BTP, Serverless Runtime - Development](https://help.sap.com/viewer/bf7b2ff68518427c85b30ac3184ad215/Cloud/en-US/e1934bfce7614872b682cae207444ef1.html) + diff --git a/docs/develop-and-build/programming-models-042061d.md b/docs/develop-and-build/programming-models-042061d.md new file mode 100644 index 0000000..534306d --- /dev/null +++ b/docs/develop-and-build/programming-models-042061d.md @@ -0,0 +1,43 @@ + + +# Programming Models + + + + + +
+ +## ABAP Cloud + +ABAP Cloud reflects the modern way to develop ABAP. It allows you to build lifecycle-stable and cloud-ready business applications, services, and extensions. + +ABAP Cloud provides tools and techniques that ensure cloud qualities, promotes new technologies, contains a cloud-optimized subset of the ABAP language, and makes upgrade cycles easier by a clear separation between custom code and SAP code by only using released APIs and objects. See [ABAP Cloud](../abap-cloud-9aaaf65.md). + + + + + +## SAP Cloud Application Programming Model \(CAP\) + +The SAP Cloud Application Programming Model \(CAP\) is a framework of languages, libraries, and tools for building enterprise-grade services and applications. It supports Java \(with Spring Boot\), JavaScript, and TypeScript \(with Node.js\), which are some of the most widely adopted languages. CAP guides developers along a path of proven best practices and a great wealth of out-of-the-box solutions to recurring tasks. + +CAP-based projects benefit from a primary focus on the domain. Instead of delving into overly technical disciplines, CAP focuses on accelerated development and safeguarding investments in a world of rapidly changing cloud technologies. + +Here are some of the benefits that come with the SAP Cloud Application Programming Model \(CAP\): + +- Built-in best practices + +- Support for Visual Studio Code and SAP Business Application Studio tools + +- Safeguarded application development investments + +- No runtimes lock-in + +- Reuse and integration of SAP BTP application services + +- Latest UX and themes + + +See [SAP Cloud Application Programming Model \(CAP\)](../sap-cloud-application-programming-model-cap-696ec23.md). + diff --git a/docs/develop-and-build/programming-models-programming-languages-tools-and-apis-70bbcb4.md b/docs/develop-and-build/programming-models-programming-languages-tools-and-apis-70bbcb4.md new file mode 100644 index 0000000..5d6d252 --- /dev/null +++ b/docs/develop-and-build/programming-models-programming-languages-tools-and-apis-70bbcb4.md @@ -0,0 +1,21 @@ + + +# Programming Models, Programming Languages, Tools, and APIs + +SAP BTP provides two programming models, ABAP Cloud and SAP Cloud Application Programming Model \(CAP\). ABAP Cloud uses the ABAP programming language, while CAP supports various programming languages. + +SAP BTP provides numerous tools for your development project, no matter which programming model and programming language you have chosen. + +The following subsections give you more information about: + +- [Programming Models](programming-models-042061d.md) + +- [Programming Languages](programming-languages-c13bab7.md) + +- [Continuous Integration and Delivery \(CI/CD\)](continuous-integration-and-delivery-ci-cd-fe74df5.md) + +- [Tools](tools-7f95cfa.md) + +- [APIs](apis-d1d1107.md) + + diff --git a/docs/develop-and-build/security-considerations-for-applications-a73f6ff.md b/docs/develop-and-build/security-considerations-for-applications-a73f6ff.md new file mode 100644 index 0000000..f31ea5e --- /dev/null +++ b/docs/develop-and-build/security-considerations-for-applications-a73f6ff.md @@ -0,0 +1,17 @@ + + +# Security Considerations for Applications + +When building applications, use the security features of SAP BTP, such as protection from web attacks. We recommend that your developers configure and deploy application-based security artifacts containing authorizations, and administrators assign these authorizations using the cockpit. SAP BTP offers platform roles that help you ensure a segregation of duties, such as between app development and administration. + +It's likely that data protection and privacy influence your architecture and the functions of your application. Consider any implications as early as possible in your development process. Security monitoring is done with audit logging. SAP BTP writes logs for security-relevant events and the written log files are digitally signed to ensure their integrity. + +See the following for more information about security best practices: + +- [CAP Security Guide](https://cap.cloud.sap/docs/guides/security/) + +- [Giving Access Rights to Platform Users](https://help.sap.com/viewer/df50977d8bfa4c9a8a063ddb37113c43/Cloud/en-US/a03d08e4038b46d480c410395593bbd2.html "If you've set up a staged development environment using different subaccounts or spaces, such as for development, testing, and production, grant the Cloud Development Team access to development subaccounts and environments. Only grant the Platform Engineering Team access to the testing and production subaccounts or environments.") :arrow_upper_right: + +- [SAP BTP Security Recommendations](https://help.sap.com/docs/btp/sap-btp-security-recommendations-c8a9bb59fe624f0981efa0eff2497d7d/sap-btp-security-recommendations?version=Cloud) + + diff --git a/docs/develop-and-build/tools-7f95cfa.md b/docs/develop-and-build/tools-7f95cfa.md new file mode 100644 index 0000000..964527a --- /dev/null +++ b/docs/develop-and-build/tools-7f95cfa.md @@ -0,0 +1,184 @@ + + +# Tools + +SAP BTP includes many tools to help you develop and manage applications, and connect them to your on-premise systems. The availability of tools can depend on the environment that you are running on. + + + + + +## Tools Available for SAP BTP Multi-Cloud Foundation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +Tool + + + +Description + +
+ +[Account Administration in the Cockpit](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/8061ecc529d74465b2b9566a634943ec.html "Learn about frequent administrative tasks you can perform using the SAP BTP cockpit, such as managing global accounts, directories, subaccounts, entitlements, and members.") :arrow_upper_right: + + + +The SAP BTP cockpit is the web-based administration interface of SAP BTP and provides access to a number of functions for configuring and managing applications, services, and subaccounts. Use the cockpit to manage resources, services, security, monitor application metrics, and perform actions on cloud applications. + +
+ +[Cloud Connector](https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/e6c7616abb5710148cfcf3e75d96d596.html "Learn more about the Cloud Connector: features, scenarios and setup.") :arrow_upper_right: + + + +The Cloud Connector serves as the link between on-demand applications in SAP BTP. This is the browser-based and existing on-premise systems. You can control the resources available for the cloud applications in those systems. + +
+ +[Command Line Interface for Cloud Foundry](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/2f1d4abd0f9f4760a301f43513d2efa6.html "Find out how to get and use the Cloud Foundry command line interface.") :arrow_upper_right: + + + +The Cloud Foundry command line interface enables you to work with the Cloud Foundry environment to deploy and manage your applications. + +
+ +[kubectl](https://kubernetes.io/docs/reference/kubectl/) + + + +The Kubernetes command line tool to communicate with a Kubernetes cluster's control plane, using the Kubernetes API. + +
+ +[kubelogin](https://github.com/int128/kubelogin) + + + +A `kubectl` plugin for Kubernetes OpenID Connect \(OIDC\) authentication. + +
+ +[Helm](https://helm.sh/) + + + +The package manager for Kubernetes, used for installing and managing Kubernetes applications in form of Helm charts. + +
+ +[ABAP RESTful Application Programming Model](https://help.sap.com/viewer/923180ddb98240829d935862025004d6/Cloud/en-US/289477a81eec4d4e84c0302fb6835035.html) + + + +The programming model that defines the architecture for efficient end-to-end development of intrinsically SAP HANA-optimized OData services \(such as SAP Fiori apps\) in the ABAP environment. + +
+ +[SAP BTP SDK for iOS](https://help.sap.com/viewer/product/SAP_CLOUD_PLATFORM_SDK_FOR_IOS/Latest/en-US) + + + +The SAP BTP SDK for iOS is based on the Apple Swift programming language for developing apps in the Xcode IDE and includes well-defined layers \(SDK frameworks, components, and platform services\) that simplify development of enterprise-ready mobile native iOS apps. The SDK is tightly integrated with SAP Mobile Services for Development and Operations. + +
+ +[SAP BTP SDK for Android](https://help.sap.com/viewer/product/SAP_CLOUD_PLATFORM_SDK_FOR_ANDROID/Latest/en-US) + + + +The SAP BTP SDK for Android provides development tools for creating native Android mobile applications that use SAP Mobile Services. The SDK is based on the Java programming language and is built on top of Google's Android SDK. + +
+ +[SAP Cloud SDK](https://help.sap.com/viewer/p/SAP_CLOUD_SDK) + + + +SAP Cloud SDK provides a layer of abstractions for features of SAP BTP such as logging, multitenancy, and connectivity. It also includes project templates for different execution environments and implementations. + +
+ +[SAP Business Application Studio](https://help.sap.com/viewer/product/SAP%20Business%20Application%20Studio/Cloud/en-US) + + + +SAP Business Application Studio is the next generation of SAP Web IDE - Develop, debug, test, and deploy SAP business applications. + +
+ +[SAP Build](https://help.sap.com/docs/SAP_BUILD) + + + +SAP Build enables everyone, no matter the skill level, to create and augment enterprise applications, process automations, and business sites with drag-and-drop simplicity. + +
+ +Service-Specific Tools + + + +The services that run on SAP BTP can come with service-specific tools. For an overview of the services and their tools, see the [SAP Discovery Center](https://www.discovery-center.cloud.sap/protected/index.html#/serviceCatalog). + +
+ diff --git a/docs/develop-and-build/using-multitarget-applications-to-manage-dependencies-41184aa.md b/docs/develop-and-build/using-multitarget-applications-to-manage-dependencies-41184aa.md new file mode 100644 index 0000000..ba64e69 --- /dev/null +++ b/docs/develop-and-build/using-multitarget-applications-to-manage-dependencies-41184aa.md @@ -0,0 +1,49 @@ + + +# Using Multitarget Applications to Manage Dependencies + +One challenge of moving into the cloud is deploying applications that consist of multiple interconnected components. + +In Cloud Foundry, we recommend that you develop multitarget applications that let you package those components into one bundle, and deploy and manage them all at once. Cloud applications often come with a lot of heterogeneity, which is one of the key strengths of cloud development, allowing for agility, resilience, and the rapid development of new features. However, it also increases the complexity of cloud applications, which: + +- Usually consist of multiple interdependent software modules +- Are written in different programming languages using multiple development tools +- Might involve different products +- May be deployed to multiple target runtimes + +A combined lifecycle lets you deploy all parts together, automatically, and in the right order, and manage the configuration of the complete solution. You can achieve such a combined lifecycle by developing multitarget applications. Each multitarget application has the following characteristics: + +- One archive file that includes all modules and a description of the dependencies +- Can be delivered, transported, linked to SAP software components, and deployed +- The process can be automated in a continuous integration pipeline + +The multitarget application archive contains all required application types and configurations, as well as a deployment descriptor file. It is intended to be used as a generic artifact that can be deployed and managed on several SAP BTP subaccounts. For example, you can use one multitarget application archive in your development subaccount and reuse it in your production subaccounts. + +As all interdependencies are part of the archive file, it's easy to pass multitarget applications from development to operations. All required information for deployment is provided during the development process. Due to the benefits provided by applying the multitarget application approach, it is also part of the SAP Cloud Application Programming Model. + +![](images/sap_cp_lm_mta_926ef9d.png) + +> ### Recommendation: +> The approach isn't mandatory for applications that are running on SAP BTP – you can also develop without applying it. Without the multitarget application approach, you'll need to manually deploy your application artifacts, for example by triggering the deployment from SAP Business Application Studio or manually uploading artifacts via SAP BTP cockpit. +> +> We recommend that you use multitarget applications in the following cases: +> +> - You're developing a business application composed of several different parts – apps, services, content, and others – that you want to manage as a single unit. +> +> - Your business application has dependencies to external resources, such as backing services \(database, messaging, and so on\), APIs, and configurations from other applications. +> +> - Your business application has a certain default configuration, for example memory, disk, number of individual app instances, environment variables, service plans, and others. + +For more conceptual information about multitarget applications and detailed step-by-step instructions, see [Multitarget Applications in the Cloud Foundry Environment](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/d04fc0e2ad894545aebfd7126384307c.html "A Multitarget application (MTA) is essentially a single application that consists of multiple parts. These parts are created using various technologies and share the same lifecycle.") :arrow_upper_right:. + +There are several options to create multitarget application archives: + +- If you use SAP Business Application Studio, see [MTA Development](https://help.sap.com/docs/bas/sap-business-application-studio/mta-development). + +- If you use SAP Web IDE Full-Stack, you can use multitarget application templates for Cloud Foundry applications, where the descriptor file is maintained automatically, for example, whenever you add a new module in the SAP Web IDE. + +- If you have development modules from other sources, you can use the multitarget application archive builder, a Java-based command-line tool that builds modules and packages them into a deployable multitarget application archive, together with a deployment descriptor. It is available for download from SAP Development Tools \(see [https://tools.hana.ondemand.com/\#cloud](https://tools.hana.ondemand.com/#cloud)\). + +- If you use Continuous Integration and Delivery \(CI/CD\), you can let the pipeline perform an automated build of your changes pushed to your central source code repository. The outcome can also be an MTA archive. For more information, see [Delivering Applications](https://help.sap.com/viewer/df50977d8bfa4c9a8a063ddb37113c43/Cloud/en-US/b39bae31d35d4d039431973116363d57.html#loiob39bae31d35d4d039431973116363d57 "In enterprise environments, use a managed and automated delivery approach – because it is less error-prone and creates repeatable outcomes. Furthermore, you can apply governance and central control of the propagation of your changes towards your production environment.") :arrow_upper_right:. + + diff --git a/docs/develop-c8906e4.md b/docs/develop-c8906e4.md new file mode 100644 index 0000000..8a54cb1 --- /dev/null +++ b/docs/develop-c8906e4.md @@ -0,0 +1,23 @@ + + +# Develop + + + +
+ +## Develop Applications, Extensions and Services with ABAP Cloud + +You can develop new apps and services from scratch or extend existing SAP or custom services in an upgrade-safe way. To create a new app and services, you implement the domain-specific implementation including the respective data model and business logic according to the selected use case. All domain-specific data models based on [RAP architecture](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/development-business-configuration) blueprint bring extensibility as a built-in quality. Generally, extensibility is based on an opt-in approach, meaning that the original data model or service must be enabled for the different [extensibility use cases](https://help.sap.com/docs/abap-cloud/abap-rap/extend?version=sap_btp). + +See: + +- [Develop a Transactional Application](develop-a-transactional-application-373046e.md) + +- [Develop an Analytical Application](develop-an-analytical-application-b845c85.md) + +- [Develop an Integration Service](develop-an-integration-service-c079f33.md) + +- [Develop a Multitenant Application](develop-a-multitenant-application-3151e2a.md) + + diff --git a/docs/develop-the-user-interface-9f1d42e.md b/docs/develop-the-user-interface-9f1d42e.md new file mode 100644 index 0000000..e62be2e --- /dev/null +++ b/docs/develop-the-user-interface-9f1d42e.md @@ -0,0 +1,66 @@ + + +# Develop the User Interface + +There are three approaches to develop the UI using SAP Fiori: + +- Freestyle SAPUI5 + +- SAPUI5 with SAP Fiori elements + +- Freestyle SAPUI5 with flexible programming model + + + + + + +## Freestyle SAPUI5 + +This is the standard, pure SAPUI5 framework that you can use to freely develop your application user interface as you wish. If your development team has experienced web developers and would want to implement a custom UI layout for your application, using SAPUI5 freestyle you have complete flexibility about how the application can look and perform. You can also specify the layout, flow, menu structure, interaction patterns, and so on. To develop SAPUI5 applications freestyle, you can start with the [Basic template](https://help.sap.com/docs/SAP_FIORI_tools/17d50220bcd848aa854c9c182d65b699/14fdcc0a9d834090a07435cfef962b01.html) in SAP Business Application Studio. + +See [Developing Apps](https://ui5.sap.com/#/topic/23cfd955f58142389fa7c9097e11559c). + + + + + +## SAPUI5 with SAP Fiori Elements + +SAP Fiori elements is a UI library that uses SAPUI5 as its foundation. Its purpose is to scale application development and maintenance by providing substantial standard functionality out of the box, for example, editing business objects. It also relieves you from some tasks in the area of non-functional requirements such as accessibility, performance optimization etc. SAP Fiori elements provides [several standard templates](https://ui5.sap.com//#/topic/797c3239b2a9491fa137e4998fd76aa7) that determine the overall layout and behavior of an SAP Fiori application. SAP Fiori elements relies on OData metadata annotations to define what information is displayed within the floorplan of the application that is generated. The templates allow you to create SAP Fiori applications that follow the SAP Fiori design standards. While SAP Fiori elements supports both OData Version 4 and OData Version 2, we recommend that you use SAP Fiori elements floorplans for OData V4. It comes with an ISO certification and provides innovations like the [flexible programming model](https://ui5.sap.com/test-resources/sap/fe/core/fpmExplorer/index.html#/overview/introduction) which makes it easier to create or [extend](https://ui5.sap.com/test-resources/sap/fe/core/fpmExplorer/index.html#/customElements/customElementsOverview) applications based on SAP Fiori elements for OData V4. + +See [Developing Apps with SAP Fiori Elements](https://ui5.sap.com/#/topic/03265b0408e2432c9571d6b3feb6b1fd). + + + + + +## Freestyle SAPUI5 with Flexible Programming Model + +This approach is a hybrid in-between pure SAPUI5 and SAP Fiori elements. You can start with the Custom Page template in SAP Business Application Studio. The Custom Page template allows you to combine freestyle SAPUI5 code with [building blocks](https://ui5.sap.com/test-resources/sap/fe/core/fpmExplorer/index.html#/buildingBlocks/buildingBlockOverview). For example, if you want a table that works with OData V4 annotations and automatically behaves like the ones in SAP Fiori elements floorplans, you can use the corresponding building block. The building blocks are provided by the flexible programming model to meet specific application requirements without needing any code to configure what they display. + + + + + +## When to Use What + +To make the right decision out of these three options, it's important for you as an application developer to understand their features and limitations. The overall recommendation would be to use as much SAP Fiori elements as possible, as much SAPUI5 freestyle as needed. + +![](images/User_Interface_116cf74.png) + + + +### When UI Design Requirements Match SAP Fiori Elements Floorplans + +If the current and foreseeable application UI design requirements comply with SAP Fiori elements patterns, then use the available standard SAP Fiori elements floorplans. The flexible programming model provides more options to use SAP Fiori elements by allowing to add custom artifacts to the application via extension points. + + + +### When UI Design Requirements Don't Match Any SAP Fiori Elements Floorplans + +- You can flexibly implement a custom layout and content by combining SAPUI5 with building blocks from the flexible programming model. + +- If there's a benefit from using building blocks in a freestyle SAPUI5 application, there's an easy path to integrate the flexible programming model when needed by following the [three-step approach](https://ui5.sap.com/test-resources/sap/fe/core/fpmExplorer/index.html#/buildingBlocks/guidance/guidanceCustomApps). If OData V4 is used and relevant annotations are being maintained in the back end, then such a benefit probably exists: + + diff --git a/docs/discover-7eae382.md b/docs/discover-7eae382.md new file mode 100644 index 0000000..6d2ecb7 --- /dev/null +++ b/docs/discover-7eae382.md @@ -0,0 +1,44 @@ + + +# Discover + +Now that the business opportunity has been identified by the Explore phase, you can start to discover the concrete needs of your users as well as getting an understanding of the available technology for your landscape. + + + + + +## Identifying Required Use Cases + +Understand in detail what your end user’s tasks and challenges are. Get a holistic view of the business roles of your application’s users, their jobs to be done, the information they need to get them done, along with their needs and wishes. + +[Identifying Required Use Cases](identifying-required-use-cases-98e01cf.md) + + + + + +## Understanding Available Technology + +Familiarize yourself with the various use case patterns available to you, automating processes, building web or mobile apps on existing services, or building full-stack applications, and discover the comprehensive set of tools and services provided by SAP BTP to make your life easier as a developer. + + + +### Development Use Cases + +Go through the different use cases and choose the one that best suits your business needs. + +See [Development Use Cases](understanding-available-technology-c1f21a4.md#loio4efd0bc86ade42c28bf4c4c8dbc4451b). + + + +### Business Application Services + +SAP BTP supports Cloud Foundry, Kyma, and ABAP runtimes. It features a number of tools and programming languages that increase your flexibility and freedom when developing applications. You can choose the runtime that best suits your use cases and skill set and get to work. You also have the possibility to integrate applications you’ve built with other solutions by SAP. + +As business applications have common characteristics, you can benefit from an open architecture with as few as possible, but well documented, technology choices. + +The architecture blueprint outlines ABAP Cloud and SAP Cloud Application Programming Model \(CAP\) as the best architecture styles to implement business applications. Both programming models integrate with SAP BTP services. + +See [Business Application Services](understanding-available-technology-c1f21a4.md#loiof3641a5635504edab2c6bb84fa86a42a). + diff --git a/docs/explore-03139be.md b/docs/explore-03139be.md new file mode 100644 index 0000000..864426a --- /dev/null +++ b/docs/explore-03139be.md @@ -0,0 +1,43 @@ + + +# Explore + +Developing a new application should always serve the purpose of your business, for example making a process more efficient and hence saving costs, making users more effective so they get better results, or supporting a business innovation which gives you a competitive advantage and allows you to make more money. + +The Explore phase is where the business opportunity is identified at a fairly high level. Typically key stakeholders are interviewed, or use case exploration workshops are conducted. The methods used differ, depending on whether you are looking to optimize existing processes or whether you are looking to innovate your business. + +If you are looking to optimize existing processes, then you need to identify the business problem. + + + + + +## Identify the Business Problem + +A business problem represents a gap between the desired and actual outcome of a task. It can be any hurdle, situation, or variation that prevents a business from achieving its objectives. A business problem may not have an immediately obvious resolution, and may be masked or hidden by perception and assumption. To define a true problem, you need to remove the factors that obscure the real reason behind the problem. + +To solve a problem for an internal or an external customer when using a product, you need to ask questions that can help you understand the customer’s needs, expectations, pain points, and feedback. Some examples of such questions are: + +- What are the tasks that customers are trying to achieve with a product? + +- How do the customers use the product in their daily workflow? + +- What are the main challenges or frustrations that the customers face when using the product? + +- How can you improve the product to better serve the customers' needs? + +- How satisfied are the customers with the product and the customer service? + +- What are the benefits or value that the customers get from the product? + +- How do the customers measure the success or impact of the product on their goals? + + + + + + +## Create a Governance Model + +One of the first and most important steps of your journey to the cloud is to establish an appropriate organizational setup and corresponding governance model. A clear and well-thought-out organizational setup makes it easier for your employees to adopt agile processes. See [Creating a Governance Model](https://help.sap.com/docs/btp/best-practices/creating-governance-model?version=Cloud) in the SAP BTP Administrator's Guide. + diff --git a/docs/identifying-required-use-cases-98e01cf.md b/docs/identifying-required-use-cases-98e01cf.md new file mode 100644 index 0000000..e76c7ae --- /dev/null +++ b/docs/identifying-required-use-cases-98e01cf.md @@ -0,0 +1,14 @@ + + +# Identifying Required Use Cases + +Once you have an understanding of the business opportunity you want to address, you next will need to understand in detail what your end user’s tasks and challenges are. You need a holistic view of the business roles of your application’s users, their jobs to be done, the information they need to get them done, along with their needs and wishes. + +To get the relevant insights, you will need to visit your customers onsite or remotely, speak to everyone involved, and if onsite, observe users doing their daily work. You should gain a clear understanding of all the business roles involved, their typical tasks and pain points, and the sequence of activities. + +The goal of the Discover phase is to gain a thorough understanding of the user’s needs, independent of any existing application or technology. In other words, which information do they need? When do they need it? What business outcomes do they need to achieve? + +By the end of the Discover phase, you should know what needs to be achieved – without knowing how you want to achieve it, that is addressed in the Design phase. + +For more information about user research during the Discover phase, have a look at the [User Research Method Cards](https://experience.sap.com/fiori-design-web/user-research-method-cards/#top). The methods outlined there contain the most commonly practiced user research methods at SAP. + diff --git a/docs/images/ABAP_Cloud_-_the_Big_Picture_5d4a7c9.png b/docs/images/ABAP_Cloud_-_the_Big_Picture_5d4a7c9.png new file mode 100644 index 0000000..25a0bad Binary files /dev/null and b/docs/images/ABAP_Cloud_-_the_Big_Picture_5d4a7c9.png differ diff --git a/docs/images/CAP_Overview_7e017ac.png b/docs/images/CAP_Overview_7e017ac.png new file mode 100644 index 0000000..5f5c0a5 Binary files /dev/null and b/docs/images/CAP_Overview_7e017ac.png differ diff --git a/docs/images/Connect_to_a_Remote_Service_Based_on_the_Starter_Mission_82400ab.png b/docs/images/Connect_to_a_Remote_Service_Based_on_the_Starter_Mission_82400ab.png new file mode 100644 index 0000000..503cbc7 Binary files /dev/null and b/docs/images/Connect_to_a_Remote_Service_Based_on_the_Starter_Mission_82400ab.png differ diff --git a/docs/images/Deploy_a_CAP_Application_in_Cloud_Foundry_Runtime_50243ce.png b/docs/images/Deploy_a_CAP_Application_in_Cloud_Foundry_Runtime_50243ce.png new file mode 100644 index 0000000..1c52006 Binary files /dev/null and b/docs/images/Deploy_a_CAP_Application_in_Cloud_Foundry_Runtime_50243ce.png differ diff --git a/docs/images/Deploy_a_CAP_Application_in_the_Kyma_Runtime_d3a3414.png b/docs/images/Deploy_a_CAP_Application_in_the_Kyma_Runtime_d3a3414.png new file mode 100644 index 0000000..146dd3e Binary files /dev/null and b/docs/images/Deploy_a_CAP_Application_in_the_Kyma_Runtime_d3a3414.png differ diff --git a/docs/images/Design_a_Transactional_Application_d715f00.png b/docs/images/Design_a_Transactional_Application_d715f00.png new file mode 100644 index 0000000..94a53a5 Binary files /dev/null and b/docs/images/Design_a_Transactional_Application_d715f00.png differ diff --git a/docs/images/Design_an_Analytical_Application_80e21cc.png b/docs/images/Design_an_Analytical_Application_80e21cc.png new file mode 100644 index 0000000..16c9706 Binary files /dev/null and b/docs/images/Design_an_Analytical_Application_80e21cc.png differ diff --git a/docs/images/Design_an_Integration_Service_c04a651.png b/docs/images/Design_an_Integration_Service_c04a651.png new file mode 100644 index 0000000..903c792 Binary files /dev/null and b/docs/images/Design_an_Integration_Service_c04a651.png differ diff --git a/docs/images/Develop_an_Analytical_Application_a994982.png b/docs/images/Develop_an_Analytical_Application_a994982.png new file mode 100644 index 0000000..938a6e0 Binary files /dev/null and b/docs/images/Develop_an_Analytical_Application_a994982.png differ diff --git a/docs/images/Develop_an_Integration_Service_f020fb8.png b/docs/images/Develop_an_Integration_Service_f020fb8.png new file mode 100644 index 0000000..442052e Binary files /dev/null and b/docs/images/Develop_an_Integration_Service_f020fb8.png differ diff --git a/docs/images/Development_Process_in_the_SAP_BTP_Developer_s_Guide_f52c607.png b/docs/images/Development_Process_in_the_SAP_BTP_Developer_s_Guide_f52c607.png new file mode 100644 index 0000000..753e9aa Binary files /dev/null and b/docs/images/Development_Process_in_the_SAP_BTP_Developer_s_Guide_f52c607.png differ diff --git a/docs/images/Image_Map_Development_Options_Overview_d716bab.png b/docs/images/Image_Map_Development_Options_Overview_d716bab.png new file mode 100644 index 0000000..aa59d02 Binary files /dev/null and b/docs/images/Image_Map_Development_Options_Overview_d716bab.png differ diff --git a/docs/images/Implement_Observability_Based_on_the_Starter_Mission_ecb3950.png b/docs/images/Implement_Observability_Based_on_the_Starter_Mission_ecb3950.png new file mode 100644 index 0000000..bcaa074 Binary files /dev/null and b/docs/images/Implement_Observability_Based_on_the_Starter_Mission_ecb3950.png differ diff --git a/docs/images/Mission_Develop_a_Multitenant_CAP_Application_1f4feba.png b/docs/images/Mission_Develop_a_Multitenant_CAP_Application_1f4feba.png new file mode 100644 index 0000000..b9a5101 Binary files /dev/null and b/docs/images/Mission_Develop_a_Multitenant_CAP_Application_1f4feba.png differ diff --git a/docs/images/Mission_Develop_an_Enterprise-Grade_CAP_Application_Following_the_SAP_BTP_Developer_s_Guide_43b74ca.png b/docs/images/Mission_Develop_an_Enterprise-Grade_CAP_Application_Following_the_SAP_BTP_Developer_s_Guide_43b74ca.png new file mode 100644 index 0000000..fd89017 Binary files /dev/null and b/docs/images/Mission_Develop_an_Enterprise-Grade_CAP_Application_Following_the_SAP_BTP_Developer_s_Guide_43b74ca.png differ diff --git a/docs/images/SAPCloudALM_operations_d378eed.png b/docs/images/SAPCloudALM_operations_d378eed.png new file mode 100644 index 0000000..87b505a Binary files /dev/null and b/docs/images/SAPCloudALM_operations_d378eed.png differ diff --git a/docs/images/Technical_Architecture_251a03a.png b/docs/images/Technical_Architecture_251a03a.png new file mode 100644 index 0000000..0406823 Binary files /dev/null and b/docs/images/Technical_Architecture_251a03a.png differ diff --git a/docs/images/Tutorials_Flow_Develop_a_Full-Stack_CAP_Application_68e34cd.png b/docs/images/Tutorials_Flow_Develop_a_Full-Stack_CAP_Application_68e34cd.png new file mode 100644 index 0000000..93e9c7d Binary files /dev/null and b/docs/images/Tutorials_Flow_Develop_a_Full-Stack_CAP_Application_68e34cd.png differ diff --git a/docs/images/User_Interface_116cf74.png b/docs/images/User_Interface_116cf74.png new file mode 100644 index 0000000..fa7ae25 Binary files /dev/null and b/docs/images/User_Interface_116cf74.png differ diff --git a/docs/images/Well-Modularized_Architecture_53b6d43.png b/docs/images/Well-Modularized_Architecture_53b6d43.png new file mode 100644 index 0000000..3b31360 Binary files /dev/null and b/docs/images/Well-Modularized_Architecture_53b6d43.png differ diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..d7ba53c --- /dev/null +++ b/docs/index.md @@ -0,0 +1,58 @@ +# SAP BTP Developer's Guide + +- [SAP BTP Developer’s Guide](sap-btp-developer-s-guide-ba26ec4.md) +- [What's New for SAP BTP Developer's Guide](what-s-new-for-sap-btp-developer-s-guide-7cf7a39.md) +- [Explore](explore-03139be.md) +- [Discover](discover-7eae382.md) + - [Identifying Required Use Cases](identifying-required-use-cases-98e01cf.md) + - [Understanding Available Technology](understanding-available-technology-c1f21a4.md#loioc1f21a47f38b467997436c13fe773513) + - [Development Use Cases](understanding-available-technology-c1f21a4.md#loio4efd0bc86ade42c28bf4c4c8dbc4451b) + - [Business Application Services](understanding-available-technology-c1f21a4.md#loiof3641a5635504edab2c6bb84fa86a42a) +- [Design](design-6bb7339.md) + - [User Experience Design](user-experience-design-323bd93.md) + - [Technology Design](technology-design-a5b8129.md) +- [Deliver](deliver-3efbd5b.md) + - [Set Up](set-up-3b774f8.md) + - [Develop](develop-and-build/develop-7e30686.md) + - [Programming Models, Programming Languages, Tools, and APIs](develop-and-build/programming-models-programming-languages-tools-and-apis-70bbcb4.md) + - [Programming Models](develop-and-build/programming-models-042061d.md) + - [Programming Languages](develop-and-build/programming-languages-c13bab7.md) + - [Continuous Integration and Delivery \(CI/CD\)](develop-and-build/continuous-integration-and-delivery-ci-cd-fe74df5.md) + - [Tools](develop-and-build/tools-7f95cfa.md) + - [APIs](develop-and-build/apis-d1d1107.md) + - [Using Multitarget Applications to Manage Dependencies](develop-and-build/using-multitarget-applications-to-manage-dependencies-41184aa.md) + - [Establishing a Provider/Subscriber Scenario Using Multitenancy](develop-and-build/establishing-a-provider-subscriber-scenario-using-multitenancy-617af9b.md) + - [Adding Authentication and Authorization](develop-and-build/adding-authentication-and-authorization-6612008.md) + - [Security Considerations for Applications](develop-and-build/security-considerations-for-applications-a73f6ff.md) + - [Developing Resilient Applications](develop-and-build/developing-resilient-applications-b1b929a.md) + - [Extending Existing SAP Solutions Using SAP BTP](develop-and-build/extending-existing-sap-solutions-using-sap-btp-40aa232.md) + - [Performing UI, Usability, and Unit Tests](develop-and-build/performing-ui-usability-and-unit-tests-50a7c7d.md) +- [Run and Scale](run-and-scale-fcb51b5.md) + - [Operating with SAP Cloud ALM](operating-with-sap-cloud-alm-f7f2977.md) +- [Programming Model Specifics](programming-model-specifics-cc37b7a.md) + - [ABAP Cloud](abap-cloud-9aaaf65.md) + - [Tutorials for ABAP Cloud](tutorials-for-abap-cloud-fd87aaa.md) + - [Design](design-314ae3e.md) + - [Design a Transactional Application](design-a-transactional-application-608432c.md) + - [Design an Analytical Application](design-an-analytical-application-8819cb7.md) + - [Design an Integration Service](design-an-integration-service-ec2ac31.md) + - [Design a Multitenant Application](design-a-multitenant-application-1ac614d.md) + - [Develop](develop-c8906e4.md) + - [Develop a Transactional Application](develop-a-transactional-application-373046e.md) + - [Develop an Analytical Application](develop-an-analytical-application-b845c85.md) + - [Develop an Integration Service](develop-an-integration-service-c079f33.md) + - [Develop a Multitenant Application](develop-a-multitenant-application-3151e2a.md) + - [Deploy](deploy-d7aec3c.md) + - [SAP Cloud Application Programming Model \(CAP\)](sap-cloud-application-programming-model-cap-696ec23.md) + - [Tutorials for SAP Cloud Application Programming Model](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loioeb7420a2c752457687fb39ed01509ef5) + - [Starter Mission: Develop a Full-Stack CAP Application](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loioebd19b54c28c4cdfa31ad056ad02aff4) + - [Mission: Develop a Side-by-Side CAP-Based Extension Application](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loio2289e25a0e494f03867c195454b6eaea) + - [Mission: Implement Observability in a Full-Stack CAP Application](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loioc5636db4e969490f8313474cb4cea775) + - [Mission: Develop an Enterprise-Grade CAP Application](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loiob5be78656d614f91bf436d6b93b593e4) + - [Mission: Develop a Multitenant CAP Application](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loio6d2cbe949ab84e13ba8999fe98c2f43e) + - [Design](design-dcdc2d9.md) + - [Develop](develop-58df1d6.md) + - [Develop the User Interface](develop-the-user-interface-9f1d42e.md) + - [Deploy](deploy-45d5acf.md) + - [Operate](operate-34065a4.md) + diff --git a/docs/operate-34065a4.md b/docs/operate-34065a4.md new file mode 100644 index 0000000..d942006 --- /dev/null +++ b/docs/operate-34065a4.md @@ -0,0 +1,34 @@ + + +# Operate + +When you want to have fully-detailed observability data of your application, you can use the SAP Cloud Logging service. + +SAP Cloud Logging enables you to analyze your SAP BTP workloads on SAP BTP, Cloud Foundry runtime and SAP BTP, Kyma runtime regarding functional and non-functional behavior. The ability to look into the details of logs, metrics, and traces can be used to better understand performance, errors, usage, and other characteristics. + +SAP Cloud Logging can be flexibly consumed, and costs are charged exactly along the actual usage. See [SAP Cloud Logging in the Service Catalog](https://discovery-center.cloud.sap/index.html#/serviceCatalog/cloud-logging) in SAP Discovery Center. + +Key capabilities of SAP Cloud Logging include: + +- Ingestion, storage, and analysis of application logs, metrics, and traces + +- Ingestion from SAP BTP, Cloud Foundry runtime and SAP BTP, Kyma runtime and across multiple applications via Open Telemetry or other protocols + +- Dashboards for interactive exploration, including tailored prebuilt content for SAP BTP, Cloud Foundry runtime and SAP BTP, Kyma runtime + +- Advanced analytics and data processing, such as alerting and anomaly detection + +- Configurable data retention management + +- Fine-grained access and content management + + +**Related Information** + + +[SAP Cloud Logging Product Page on SAP Help Portal](https://help.sap.com/docs/cloud-logging) + +[What Is SAP Cloud Logging?](https://help.sap.com/docs/cloud-logging/cloud-logging/what-is-sap-cloud-logging?version=Cloud) + +[Operating with SAP Cloud ALM](operating-with-sap-cloud-alm-f7f2977.md "") + diff --git a/docs/operating-with-sap-cloud-alm-f7f2977.md b/docs/operating-with-sap-cloud-alm-f7f2977.md new file mode 100644 index 0000000..91ffcc2 --- /dev/null +++ b/docs/operating-with-sap-cloud-alm-f7f2977.md @@ -0,0 +1,52 @@ + + +# Operating with SAP Cloud ALM + +SAP Cloud ALM, where ALM stands for application lifecycle management, is included in your SAP Cloud Service subscription containing Enterprise Support, cloud editions, in SAP Enterprise Support and in Product Support for Large Enterprises. + +SAP Cloud ALM helps you to implement and operate intelligent cloud and hybrid business solutions. You benefit from an out-of-the-box, native cloud solution running on SAP BTP, designed as the central entry point to manage your complete SAP landscape with content-driven guided implementation and highly automated operations. + +With the operations solutions in SAP Cloud ALM, you can handle both SAP BTP-based SaaS applications and your own applications. + +SAP Cloud ALM for operations provides a personalized and unified operations user experience. You can use purpose-driven different monitoring, analysis, and management use cases optimized for certain operations aspects. SAP Cloud ALM for operations empowers you to understand the health of your SAP business solutions and acts as collaboration platform between lines of business and IT. + +Under [Supported Solutions](https://help.sap.com/docs/cloud-alm/setup-administration/supported-solutions), you see which monitoring capabilities are available with SAP Cloud ALM. Under *SAP Solution*, filter for SAP BTP and check the supported services from the operations area. + +Benefit from the powerful *Intelligent Event Processing*, embedded analytics, and intelligence functionality with a large variety of inbound and outbound integration. *Synthetic User Monitoring* monitors the performance and availability of web applications from a client-side perspective based on Selenium-based scripts. *Business Service Management* consolidates all operational events at business service level and shows them in a well-arranged event calendar. + +Specifically for Java and Node.js custom-built applications in SAP BTP, Cloud Foundry runtime, there are the Data Collection Instrumentation Libraries based on Open Telemetry designed to enable the data collection infrastructure in SAP Cloud ALM. With these libraries, you can collect data for the following use cases: + +- *Real User Monitoring*: Leverage both front-end and back-end measurements on single request level. + +- *Health Monitoring*: Gain insights on application health based on technical metrics. + +- *Integration and Exception Monitoring*: Collect and react on exceptions raised by the application. + +- *Job and Automation Monitoring*: Monitor SAP Job Scheduling Service jobs. + + +SAP Cloud ALM is the central place to integrate and access the monitoring of your existing IT service management processes, such as ticketing systems. + +Inbound and outbound APIs enable you to integrate data from your own applications. For more information, see the [API Guide for SAP Cloud ALM](https://help.sap.com/docs/cloud-alm/apis/api-reference). + +![](images/SAPCloudALM_operations_d378eed.png) + + + + + +## More + +- [Implement SAP Cloud ALM](https://help.sap.com/docs/cloud-alm/setup-administration/provisioning) via SAP for Me + +- Application help for [SAP Cloud ALM for Operations](https://help.sap.com/docs/cloud-alm/applicationhelp/operations) + +- [SAP Cloud ALM for operations](https://support.sap.com/en/alm/sap-cloud-alm/operations.html) \(SAP Support Portal\) +- [Expert Portal for SAP Cloud ALM Operations](https://support.sap.com/en/alm/sap-cloud-alm/operations/expert-portal.html) \(SAP Support Portal\), with detailed configuration instructions + + +**Related Information** + + +[Operate](operate-34065a4.md "") + diff --git a/docs/programming-model-specifics-cc37b7a.md b/docs/programming-model-specifics-cc37b7a.md new file mode 100644 index 0000000..ae417d7 --- /dev/null +++ b/docs/programming-model-specifics-cc37b7a.md @@ -0,0 +1,13 @@ + + +# Programming Model Specifics + +Each programming model has certain aspects that are unique to it, such as the programming language but also other aspects related to the different run-times. In the following two sections, we provide concrete guidance for each of the two programming models: + +- [ABAP Cloud](abap-cloud-9aaaf65.md) + +- [SAP Cloud Application Programming Model \(CAP\)](sap-cloud-application-programming-model-cap-696ec23.md) + + +These sections also introduce you to a number of tutorials for each of the programming models, giving you step-by-step instructions on how to develop and deploy your applications. The tutorials include sample applications, which are designed to demonstrate the implementation of the recommendations in real-world business sceniarios. By studying these sample applications, you can see firsthand how the guidance can be applied and what the outcomes look like. They provide tangible examples that bridge theory and practice, making it easier for you to grasp and apply the concepts. This hands-on approach not only supplements your learning experience but also prepares you better for your own development projects. + diff --git a/docs/run-and-scale-fcb51b5.md b/docs/run-and-scale-fcb51b5.md new file mode 100644 index 0000000..ac6ed6d --- /dev/null +++ b/docs/run-and-scale-fcb51b5.md @@ -0,0 +1,13 @@ + + +# Run and Scale + +There are two things you have to take into account to ensure your application is working properly, and bringing value: + +- Get constant feedback from your users and optimize the application based on this feedback. + +- Monitor and operate the application using the services and capabilities SAP BTP offers. + + See [Operating with SAP Cloud ALM](operating-with-sap-cloud-alm-f7f2977.md). + + diff --git a/docs/sap-btp-developer-s-guide-ba26ec4.md b/docs/sap-btp-developer-s-guide-ba26ec4.md new file mode 100644 index 0000000..2f63429 --- /dev/null +++ b/docs/sap-btp-developer-s-guide-ba26ec4.md @@ -0,0 +1,162 @@ + + +# SAP BTP Developer’s Guide + +The SAP BTP Developer’s Guide is the starting point for developing a business application on SAP BTP. It contains recommendations and best practices that give you an overview of what you should consider when working on development projects on SAP BTP. It also contains links to step-by-step instructions when required. + + + + + +## Is This Guide for You? + +If you're an **architect or a development project lead**, this guide helps you plan the architecture of your application and the services on SAP BTP you can to use to achieve your goal. + +If you're a **developer**, this guide helps you define the correct methodologies and tools for your development project. + +If you're an **SAP partner**, this guide helps you to set up SAP BTP for developing and running production services for your customers. + +> ### Note: +> If you're an **administrator**, you have to set up the correct organizational structure to creating an account and security model. In this case, use the [SAP BTP Administrator's Guide](https://help.sap.com/docs/btp/best-practices/best-practices-for-sap-btp?version=Cloud). + +> ### Note: +> This guide is targeted at customers who want to run and use applications in a production environment. If you're an SAP BTP trial user, you might still find that some information in this guide is useful. Check out the following page for more details about trial accounts: [Trial Accounts and Free Tier](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/046f127f2a614438b616ccfc575fdb16.html "Explore the different options for trying out SAP BTP.") :arrow_upper_right:. Please note that the services available in the trial version differ from the ones in the enterprise version. + + + + + +## Prerequisites + +If you're new to SAP BTP, read: + +- [SAP Business Technology Platform?](https://www.sap.com/products/technology-platform/what-is-sap-business-technology-platform.html) + + SAP BTP is a cloud platform that brings together application development, automation, data management, analytics and planning, integration, and AI capabilities into one unified environment optimized for SAP applications. It offers: + + - An intuitive, modern development environment for both, professional IT and citizen and business developers, + + - Built-in data models, integrations, workflows, app templates, and AI business services + + - Self-service data discovery, modeling, planning, and analytics for business users in a governed environment + + +- [SAP BTP Guidance Framework](https://help.sap.com/docs/sap-btp-guidance-framework/guidance-framework/what-is-sap-btp-guidance-framework) + + This is the central access point for architects, developers, and administrators to build and run enterprise-grade solutions on SAP BTP. It comprises decision guides, reference architectures, methodologies, recommendations, and DevOps principles. + +- [Basic Platform Concepts](https://help.sap.com/docs/btp/sap-business-technology-platform/btp-basic-platform-concepts?version=Cloud) + + Contains regions, runtimes, accounts, members, quotas, capabilities and links to in-depth explanations. + +- [Getting Started Checklist](https://help.sap.com/docs/BTP/df50977d8bfa4c9a8a063ddb37113c43/cbd76632d8aa4cb7bbf175d7607db463.html?locale=en-US&state=PRODUCTION&version=Cloud) + + Explains your responsibilities and SAP's responsibilities when it comes to application lifecycle management. + +- [SAP BTP Administrator's Guide](https://help.sap.com/docs/btp/best-practices/best-practices-for-sap-btp?version=Cloud) + + This guide helps you plan and set up your landscape and your lifecycle management for running applications on SAP Business Technology Platform \(SAP BTP\). It's part of the SAP BTP Guidance Framework and contains recommendations for planning development projects – from setting up the correct organizational structure to creating an account and security model, to operating applications. + +- [SAP Discovery Center](https://discovery-center.cloud.sap/index.html) + + Helps you turn your data into business value with SAP BTP. In the SAP Discovery Center you can find end-to-end scenarios, called missions, the Service Catalog of SAP BTP, and reference architectures. + + + + + + +## How to Use This Guide + +Use the SAP BTP Developer’s Guide to help you implement business applications on SAP BTP. This guide is part of the SAP BTP Guidance Framework and explains the building blocks for developing, delivering, and integrating business applications. + +Development projects for business applications have similar characteristics. Standardized development guidance is driving developer efficiency. + +Based on the experiences of successful business applications, this guide condenses best practices and technologies that can be safely recommended to you. These recommendations are structured following the design-led development phases: + +![](images/Development_Process_in_the_SAP_BTP_Developer_s_Guide_f52c607.png) + +- **[Explore](explore-03139be.md)** + + Identify the business opportunity and set up the roles and responsibilities in your team. + +- **[Discover](discover-7eae382.md)** + + - [Identifying Required Use Cases](identifying-required-use-cases-98e01cf.md) + + Understand your end users, their working methods, and their needs in more depth. + + - [Understanding Available Technology](understanding-available-technology-c1f21a4.md#loioc1f21a47f38b467997436c13fe773513) + + - [Development Use Cases](understanding-available-technology-c1f21a4.md#loio4efd0bc86ade42c28bf4c4c8dbc4451b) + + Get to know the use case patterns that can be implemented on SAP BTP. + + - [Business Application Services](understanding-available-technology-c1f21a4.md#loiof3641a5635504edab2c6bb84fa86a42a) + + Explore the comprehensive set of tools and services that allow you to keep the pace when developing your application and at the same time benefit from future innovations in SAP BTP. + + + +- **[Design](design-6bb7339.md)** + + - [User Experience Design](user-experience-design-323bd93.md) + + Design the user experience of your application to provide good usability. + + - [Technology Design](technology-design-a5b8129.md) + + Use domain-driven design to create an application that is modularized and has shorter innovation cycles and a clearer focus. + + +- **[Deliver](deliver-3efbd5b.md)** + + - [Set Up](set-up-3b774f8.md) + + Before you begin developing your applications, make sure your landscape setup is appropriate for managing their lifecycles. + + - [Develop](develop-and-build/develop-7e30686.md) + + Develop your application by following the recommendations outlined in this section about the two programming models, the numerous programming languages, the respective development tools and also about aspects such as multitenancy, security, extensibility and others. + + +- **[Run and Scale](run-and-scale-fcb51b5.md)** + + Get constant feedback from your users, optimize the application based on this feedback, and operate the application using the services and capabilities SAP BTP offers. + +- **[Programming Model Specifics](programming-model-specifics-cc37b7a.md)** + + - [ABAP Cloud](abap-cloud-9aaaf65.md) + + ABAP Cloud reflects the modern way to develop ABAP. It allows you to build lifecycle-stable and cloud-ready business applications, services, and extensions. + + - [SAP Cloud Application Programming Model \(CAP\)](sap-cloud-application-programming-model-cap-696ec23.md) + + The SAP Cloud Application Programming Model \(CAP\) is a framework of languages, libraries, and tools for building enterprise-grade services and applications. It supports Java \(with Spring Boot\), JavaScript, and TypeScript \(with Node.js\), which are some of the most widely adopted languages. CAP guides developers along a path of proven best practices and a great wealth of out-of-the-box solutions to recurring tasks. + + + + + + + +## Contribute to the SAP BTP Developer’s Guide + +> ### Tip: +> The English version of this guide is open for contributions and feedback using GitHub. This allows you to get in contact with responsible authors of SAP Help Portal pages and the development team to discuss documentation-related issues. To contribute to this guide, or to provide feedback, choose the corresponding option on SAP Help Portal: +> +> - *Feedback* \> *Create issue*: Provide feedback about a documentation page. This option opens an issue on GitHub. +> +> - *Feedback* \> *Edit page*: Contribute to a documentation page. This option opens a pull request on GitHub. +> +> +> You need a GitHub account to use these options. +> +> More information: +> +> - [Contribution Guidelines](https://help.sap.com/docs/open-documentation-initiative/contribution-guidelines/readme.html) +> +> - [Introduction Video](https://www.youtube.com/watch?v=WJ0oarMlVW4) +> +> - [Introduction Blog Post](https://blogs.sap.com/2021/11/29/sap-btp-documentation-goes-github-new-collaboration-process/) + diff --git a/docs/sap-cloud-application-programming-model-cap-696ec23.md b/docs/sap-cloud-application-programming-model-cap-696ec23.md new file mode 100644 index 0000000..17b0ac8 --- /dev/null +++ b/docs/sap-cloud-application-programming-model-cap-696ec23.md @@ -0,0 +1,44 @@ + + +# SAP Cloud Application Programming Model \(CAP\) + + + + + +## Overview + +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 path of proven best practices and a great wealth of out-of-the-box solutions to recurring tasks. + +CAP-based projects benefit from a primary focus on domain. Instead of delving into overly technical disciplines, CAP focuses on accelerated development and safeguarding investments in a world of rapidly changing cloud technologies. + +The following graphic shows that the CAP framework features a mix of proven and broadly adopted open-source and SAP technologies: + +![](images/CAP_Overview_7e017ac.png) + +On top of open-source technologies, CAP mainly adds: + +- Core Data Services \(CDS\) as its universal modeling language for both domain models and service definitions. + +- Service SDKs and runtimes for Node.js and Java, offering libraries to implement and consume services as well as generic provider implementations serving many requests automatically. + + +CAP also offers mocks for many platform features, which allow fast develop-test-run cycles with minimal development runtime complexity. CAP facilitates integration scenarios by importing an API from, for example SAP S/4HANA backend or from SAP Business Accelerator Hub and running mocks for this locally. + +Over time, you can add things gradually, only when they're needed. For example, you can move ahead to running your applications in close-to-productive setups for integration tests and delivery, without any change in models or code. + +See [Grow as You Go](https://cap.cloud.sap/docs/get-started/grow-as-you-go) in the CAP documentation. + +**Related Information** + + +[Design](design-dcdc2d9.md "") + +[Develop](develop-58df1d6.md "Learn more about developing applications using SAP Cloud Application Programming Model (CAP).") + +[Deploy](deploy-45d5acf.md "") + +[Operate](operate-34065a4.md "") + +[Operating with SAP Cloud ALM](operating-with-sap-cloud-alm-f7f2977.md "") + diff --git a/docs/set-up-3b774f8.md b/docs/set-up-3b774f8.md new file mode 100644 index 0000000..eea9833 --- /dev/null +++ b/docs/set-up-3b774f8.md @@ -0,0 +1,36 @@ + + +# Set Up + +Configuring the landscape setup in its essence is an administrative task described in detail in the [SAP BTP Administrator's Guide](https://help.sap.com/docs/btp/best-practices/best-practices-for-sap-btp?version=Cloud). + + + + + +## Set Up Your Account Model + +The hierarchical structure between global accounts, directories, and subaccounts lets you define an account model that accurately fits your business and development needs. See [Setting Up Your Account Model](https://help.sap.com/docs/btp/best-practices/setting-up-your-account-model?version=Cloud) in the SAP BTP Administrator's Guide. + + + + + +## Set Up the SAP BTP Infrastructure Automatically Using the Terraform Provider + +The Terraform provider for SAP BTP enables you to automate the provisioning, management, and configuration of resources on SAP BTP. By leveraging this provider, you can simplify and streamline the deployment and maintenance of SAP BTP services and applications. See [Automated SAP BTP Infrastructure Setup](https://help.sap.com/docs/BTP/df50977d8bfa4c9a8a063ddb37113c43/6bdb3a7170b84254bfaf0df52a112980.html?locale=en-US&state=PRODUCTION&version=Cloud#loio6dd97e11cae44afa809351e1222aafd8). + + + + + +## Manage Users and Members + +User accounts enable users to log on to SAP BTP and access subaccounts and use services according to the permissions given to them. In this context, it's important to understand the difference between the two types of users that we refer to: platform users and business users. + +Platform users are usually developers, administrators or operators who deploy, administer, and troubleshoot applications and services on SAP BTP. + +Business users use the applications that are deployed in SAP BTP. For example, the end users of SaaS applications or services. + +See [User and Member Management](https://help.sap.com/docs/btp/sap-business-technology-platform/user-and-member-management?version=Cloud) in the SAP Business Technology Platform documentation. + diff --git a/docs/technology-design-a5b8129.md b/docs/technology-design-a5b8129.md new file mode 100644 index 0000000..18e9c68 --- /dev/null +++ b/docs/technology-design-a5b8129.md @@ -0,0 +1,356 @@ + + +# Technology Design + +Before starting to implement an application on SAP BTP, it's better if you do some planning and research beforehand. See: + +- [Explore](explore-03139be.md) + +- [Discover](discover-7eae382.md) + + + + + + +## Deliver a Cloud Application from Concept to a Final Product + +The columns in the following graphic show for which use cases using a well-modularized architecture suits best, what is the motivation, the steps and the benefits. + +The image is interactive: you can click the column headings to take you to the relevant part of the relevant section below. + +![](images/Well-Modularized_Architecture_53b6d43.png) + + + +### Context + +Let's assume the following scenario: you and your team are tasked to deliver a multitenant application on SAP BTP or SAP S/4HANA Cloud Public Edition and you want to base the application either on SAP Cloud Application Programming Model \(CAP\) or on ABAP Cloud. + + + +### Trigger + +Use the following triggers as a motivation to engage in sophisticated design process: + +- Renovating, evolving or reimplementing an existing solution + + This involves transforming a legacy system into a modern, more efficient and scalable solution. Legacy systems often pose difficulties in terms of maintainability, integration with newer technologies, and can be a bottleneck for a business's growth. This transformation process could involve refactoring code, adopting new architecture patterns like microservices, or completely reimplementing the software with a new technology stack. + +- Designing a new Software-as-a-Service solution based on microservices + + Software-as-a-Service is a model where software is provided over the internet on a subscription basis. When designing a new Software-as-a-Service solution based on microservices, the system is decomposed into a collection of services that are independently deployable, scalable, and can be developed by different teams. Each microservice corresponds to a specific business capability and can be developed, deployed and scaled independently. This architectural style promotes flexibility and scalability, and it can speed up the development process by enabling parallel development across teams. It's important to design these services around the business capabilities. + +- Considering more asynchronous behavior and event-sourced applications + + Asynchronous behavior in an application refers to operations that can be executed independently and don't block the flow of the program. This makes the application more responsive and can improve system-wide performance. Event sourcing is an architectural pattern that stores changes to the application state as a sequence of events, rather than just storing the current state. This can provide a full audit trail, simplify debugging by allowing the state of an application at any point in time to be recreated, and can facilitate asynchronous, message-driven architectures. By integrating these into the system, it can enhance the system's scalability and reliability. + +- Designing a Software-as-a-Service application on SAP BTP + + When designing a Software-as-a-Service application on SAP BTP, the application is built to be delivered over the internet and leverages the services provided by SAP BTP. This can include data storage services, AI and machine learning capabilities, analytics and more. Using such a platform can speed up development time, as many of the underlying infrastructure considerations and services are taken care of by the platform. + + + + +### Steps + +Follow these steps to ensure smooth implementation of your application: + +1. Understand the business domain. + + Understanding the business domain is of the utmost importance. Hence, before starting your development, make sure that you understand the business opportunity outlined in the Explore phase, and that you have completed the Discover phase so that you have a thorough understanding of the user needs and required use cases. This will ensure that you create software that is useful, flexible, and capable of evolving alongside the business. + +2. Identify the required modules. + + Identifying the required modules means breaking down the overall system into smaller, manageable, and functionally cohesive units. Each module is designed to encapsulate a specific portion of the domain model and is typically aligned with a specific sub-domain or business capability. By identifying the modules, developers can ensure separation of concerns and make the system more maintainable. Each module should be able to operate independently, reducing dependencies and allowing for parallel development and easier testing. + +3. Define the communication between the modules. + + Once the modules are identified, the next step is to define how they will interact with each other. This involves establishing interfaces, contracts, or APIs for communication. This is often guided by the concept of context mapping, which helps to define the relationships and interactions between different related contexts. Communication between modules should be carefully managed to preserve the autonomy of the modules. The communication could be synchronous or asynchronous, and could be based on various patterns like request/response, events, or commands. + +4. Plan the implementation. + + After you have an understanding of the business domain, have identified the required modules, and defined how they will communicate, the next step is to plan the implementation. This is the moment where you decide which technologies, patterns, and practices to use to build each module. This can include selecting the programming languages, databases, message brokers, and other tools that will be used. It also involves choosing the architectural patterns \(like layered architecture, hexagonal architecture, or microservices\) and design patterns that will be applied. The implementation should be guided by the principles of the domain model, encapsulating the business logic in entities, value objects, aggregates, and domain events. Additionally, the implementation should consider non-functional requirements like scalability, performance, security, and maintainability. + + + + +### Value + +If you follow the steps mentioned in the previous section, you will achieve the following benefits: + +- Well-modularized architecture + + In the context of software development, a well-modularized architecture refers to the design of a system where the different functionalities and responsibilities are partitioned into distinct modules. Each module encapsulates a specific subset of the system's behavior and can be developed, tested, and maintained independently of the others. Modules are often designed to be loosely coupled, meaning that they interact with each other through well-defined interfaces, but their internals are hidden from each other. This encapsulation increases the maintainability of the system because changes inside one module don't impact the others. It also improves the scalability of the system, as individual modules can be scaled up or down based on their individual requirements. Finally, modularization can increase the speed of development because different teams can work on different modules at the same time without interfering with each other. + +- Higher likelihood to deliver value to your customers + + The focus is on understanding the business domain and creating a software model that reflects and serves that domain. By aligning the software closely with the business needs, there's a higher likelihood of delivering value to the customer. This comes from a deep understanding of the business, its rules, and its needs. This understanding guides the software development process, ensuring that the software solves the right problems and provides the features that the business actually needs. As a result, the software is more likely to be valuable to the end users, who are the ones interacting with the business domain on a daily basis. + +- Better decomposition that would lead to shorter innovation cycles and clearer focus + + Decomposition in software design is the process of breaking down a complex system into smaller, manageable parts or components. Better decomposition, often achieved through practices like domain-driven design and microservices architecture, allows for clearer focus on individual parts of the system and can lead to shorter innovation cycles. With a well-decomposed system, teams can focus on specific components or services, understand them thoroughly, and make improvements or innovations without having to understand the entire system. This can significantly shorten the time it takes to go from an idea to a working feature, because changes are localized to specific parts of the system and don't require broad, system-wide understanding or modifications. Moreover, better decomposition can lead to clearer focus because each component or service can be designed around a specific business capability or domain concept. This allows the team working on that component to focus on the specific business problems and user needs related to that capability or concept, rather than being distracted by other parts of the system. This kind of focus can lead to better solutions and more valuable software. + + + + + + +## Understand Modularization in General + +Modularization is a general programming concept where you separate program functions into independent pieces, called modules. These modules then act like building blocks, with each block containing all the necessary parts to execute a piece of the functionality. When the modules are put together, they make up the executable program. + +A modular code is: + +- **Easier to maintain** + + It's easier to read, understand, debug, and modify code that is modularized. It also reduces the risk of introducing errors or conflicts when changing or adding new features. A good modularization also enables reuse of existing modules across different products, which saves time and effort. + +- **Easier to test** + + Each module can be tested individually and independently from the rest of the system. This also facilitates automated testing and continuous integration, which improve the quality and reliability of the software product. + +- **Easier to scale** + + Each module can be deployed, updated, or replaced separately, without affecting the whole system. This also allows for parallel development and faster delivery of new features or bug fixes. A good modularization also supports distributed and cloud-based architectures, which enhance the performance and availability of the software product. + +- **More reliable** + + Each module has a clear and well-defined interface and responsibility. This also reduces the coupling and dependency between modules, which minimizes the impact of failures or errors in one module on the rest of the system. A good modularization also enables fault tolerance and recovery mechanisms, which improve the resilience and robustness of the software product. + +- **More adaptable** + + Each module can be easily modified or extended to meet changing requirements or customer needs. This also increases the flexibility and diversity of the software product, as different modules can be combined or configured in various ways. + +- **Easier to evolve** + + Each module can be evolved independently or collaboratively, without affecting the overall functionality. This also promotes innovation and creativity, as new modules can be created or reused to generate novel solutions or features. + + + + + + +## Understand Modularization in the Context of Microservice-Based Architecture + +The right modularization is very important in the context of microservices, because microservices are essentially a form of modular software development. Microservices aim to create small, focused, and independent services that communicate through well-defined interfaces and protocols. Each service is responsible for a specific functionality or domain, and can be developed, deployed, and scaled independently from other services. This way, microservices enable a high degree of modularity, flexibility, and agility in software development. + +However, not all modularizations are equally effective or beneficial for microservices. A poor modularization can lead to problems such as: + +- **High coupling and low cohesion** + + If the services are not well-defined and separated, they may depend on each other too much, or have too many responsibilities. This can result in tight coupling between services, which makes them hard to change, test, or reuse. It can also result in low cohesion within services, which makes them complex, inconsistent, or redundant. High coupling and low cohesion reduce the maintainability, testability, and reliability of microservices. + +- **Service sprawl and fragmentation** + + If the services are too fine-grained and numerous, they may become difficult to manage, monitor, and coordinate. This can result in service sprawl, which increases the operational complexity and overhead of microservices. It can also result in service fragmentation, which reduces the performance and availability of microservices. Service sprawl and fragmentation reduce the scalability and adaptability of microservices. + +- **Lack of alignment and consistency** + + If the services are not aligned with the business domain and goals, they may not deliver the expected value or quality, which reduces the relevance and effectiveness of microservices. It can also result in lack of consistency, which reduces the usability and interoperability of microservices. Lack of alignment and consistency reduce the evolution and innovation of microservices. + + +The right modularization is essential if you want to benefit from using microservices. For example: + +- **Maintain modules easily** + + The right modularization helps you create simple, consistent, and reusable services that are easy to read, understand, debug, and modify. It also enables the isolation and decoupling of services, which reduces the risk of errors or conflicts when changing or adding new features. + +- **Test each service individually and independently from the rest of the system** + + The right modularization enables you to use automated testing and continuous integration, which improve the quality and reliability of the software product. + +- **Deploy, update, or replace each service separately, without affecting the whole system** + + The right modularization supports distributed and cloud-based architectures, which enhance the performance and availability of the software product. + +- **Have clear and well-defined interface and responsibility of each service** + + The right modularization reduces the coupling and dependency between services, which minimize the impact of failures or errors in one service on the rest of the system. It also enables fault tolerance and recovery mechanisms, which improve the resilience and robustness of the software product. + +- **Modify or extend each service to meet changing requirements or customer needs** + + The right modularization increases the flexibility and diversity of the software product, as different services can be combined or configured in various ways. + +- **Evolve each service independently or collaboratively, without affecting the overall system functionality** + + The right modularization promotes innovation and creativity, as new services can be created or reused to generate novel solutions or features. + + + + + + +## Learn Why Domain-Driven Design Is an Adequate Approach + +Domain-driven design is a major software design approach, focusing on modeling software to match a domain according to input from that domain's experts. Under domain-driven design, the structure and language of software code \(class names, class methods, class variables\) should match the business domain. + +Domain-driven design helps achieving the traits of a good modularization by: + +- **Placing the project's primary focus on the core domain and domain logic** + + Domain-driven design emphasizes close collaboration between domain experts and developers to create software that accurately models the problem domain. By focusing on the domain's core concepts, relationships, and behavior, domain-driven design enables you to create more robust, flexible, and maintainable systems. + +- **Building complex designs on the model of the domain** + + Domain-driven design helps you to define the boundaries of each module by identifying the core concepts, aggregates, and their associated business logic. This enables teams to develop and maintain these modules independently, promoting scalability and modularization within the overall system. + +- **Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems** + + Domain-driven design fosters a common language shared by domain experts, users, and developers: the ubiquitous language. The ubiquitous language is used in the domain model and for describing system requirements. This enhances the communication and understanding among the stakeholders, and facilitates the adaptation and evolution of the software product. + + + + + + +## Learn About the Domain-Driven Design Starter Modeling Process + +The domain-driven design starter modeling process is a process for learning and applying domain-driven design in practice. It covers eight steps from aligning with the business model to coding the domain model. It is flexible and iterative, and suitable for beginners who want to master domain-driven design. See the [Domain-Driven Design Starter Modeling Process](https://github.com/ddd-crew/ddd-starter-modelling-process) GitHub repository that is part of the [Domain-Driven Design Crew](https://github.com/ddd-crew) GitHub organization. + + + + + +## Check How Complex Your Scenario Is + +Check which requirements your scenario has and sum up the points for the respective requirement. If your score is 7 or higher, you should evaluate how to leverage the concept and tools of the domain-driven design in your project. + +We also recommend that you follow the domain-driven design modeling process. + +See [Domain-Driven Design Starter Modeling Process](https://github.com/ddd-crew/ddd-starter-modelling-process). + +**** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +Scenario Requirements + + + +Points + + + +Comments + +
+ +For applications that work with the four functions: create, read, update, delete \(CRUD\), and only perform simple database queries, no special design is required. A simple database tool with a user interface suffices. + + + +0 + + + +A simple application does have the complexity to benefit elaborated design methods. + +
+ +You have a simple application if it has up to 30 use cases. You can build it with a CAP application that works with the four functions: create, read, update, delete \(CRUD\). + + + +1 + + + +Just for reference, this means your application does not have more than 30 functions. + +
+ +Your application has between 30 and 40 use cases. + + + +2 + + + +Make sure you don't underestimate any hidden complexities. + +However, having many methods or functions doesn't always mean high complexity. They might be simple and well-structured. It's when a class or module has many responsibilities, indicated by methods or functions that perform widely varying tasks, that complexity becomes a challenge. + +
+ +Your application may not be complex now, but it could grow later. + + + +3 + + + +Talk to domain experts to discuss the complexity of your application. The complexity increases with the number of features that the stakeholders need. + +
+ +Your application will change a lot over time, and you don’t know what kind of changes will happen. + + + +4 + + + +You require a sophisticated design method to manage the complexity of refactoring your model over time. + +
+ +You are building an application in a new and exciting domain that nobody has done before. This means it could be complex and challenging. + + + +5 + + + +You need to collaborate with domain experts and try different models to make your application work. + +
+ +**Related Information** + + +[Domain-Driven Design Crew GitHub Organization](https://github.com/ddd-crew) + +[Domain-Driven Design Community at SAP](https://github.com/SAP/curated-resources-for-domain-driven-design) + diff --git a/docs/tutorials-for-abap-cloud-fd87aaa.md b/docs/tutorials-for-abap-cloud-fd87aaa.md new file mode 100644 index 0000000..534d346 --- /dev/null +++ b/docs/tutorials-for-abap-cloud-fd87aaa.md @@ -0,0 +1,74 @@ + + +# Tutorials for ABAP Cloud + +The ABAP Cloud best practices are documented in the form of step-by-step tutorials for learning how to develop and deploy full-stack transactional and analytical applications using the ABAP RESTful Application Programming Model \(RAP\) and embedded analytics. + +The exercises are based on the Travel sample application of the [Flight Reference Scenario](https://github.com/SAP-samples/abap-platform-refscen-flight) that is the best practice example for developing, deploying, and operating a full-stack application using ABAP RESTful Application Programming Model \(RAP\) and SAP Fiori. + +You can also go through the [Develop a Full-Stack RAP Application Following the SAP BTP Developer’s Guide](https://discovery-center.cloud.sap/missiondetail/4380/4666/) that is based on the Travel sample application. This mission has three main parts. The first part contains the RAP100 basics, for building an SAP Fiori application with RAP. The second part is for creating, developing, and integrating an SAP Fiori application. The third part builds on top of RAP100 basics and contains the intermediate tutorials, with additions such as dynamic feature control and ABAP unit tests. + + + +
+ +## Analytical Scenario + +The analytical scenario shows the end-to-end development of an analytical application. It consists of a business service exposing an analytical query and a report built with SAP Analytics Cloud. The analytical report can be used to analyze complex situations and freely interact with large amounts of data in real time. + +The analytical scenario is provided in the form of tutorials with beginner and intermediate experience levels. + + + + + +## Transactional Scenario + +The transactional scenario shows the end-to-end development of a transactional SAP Fiori elements list report application. It consists of an OData-based business service built with RAP and an SAP Fiori elements-based UI. It also shows the deployment of the SAP Fiori application in the ABAP environment and its integration in the local SAP Fiori launchpad for SAP BTP, ABAP environment. + +You will develop a simple, transactional list report application, the Travel Processing application, that is used by a department responsible for processing worldwide travel for multiple agencies. + +The transactional scenario built with RAP is provided as a tutorial mission, which is divided into three tutorial groups with beginner and intermediate experience levels. + +The following beginner tutorial groups are available for the transactional scenario: + +- Build an SAP Fiori App Using the ABAP RESTful Application Programming Model \(RAP\) – Basics \[RAP100\] + + - [Get to Know the ABAP RESTful Application Programming Model](https://developers.sap.com/tutorials/abap-environment-restful-programming-model.html) + + - [Create Database Table and Generate UI Service](https://developers.sap.com/tutorials/abap-environment-rap100-generate-ui-service.html) + + - [Enhance the Business Object Data Model and Enable OData Streams](https://developers.sap.com/tutorials/abap-environment-rap100-enhance-data-model.html) + + - [Enhance the Business Object Behavior with Unmanaged Internal Numbering](https://developers.sap.com/tutorials/abap-environment-rap100-early-numbering.html) + + - [Enhance the Business Object Behavior with Determinations](https://developers.sap.com/tutorials/abap-environment-rap100-determination.html) + + - [Enhance the Business Object Behavior with Validations](https://developers.sap.com/tutorials/abap-environment-rap100-validation.html) + + +- Create, Deploy and Integrate an SAP Fiori elements App into SAP Fiori Launchpad for SAP BTP, ABAP Environment \[RAP100\] + + - [Create and Deploy an SAP Fiori Elements App to SAP BTP, ABAP Environment](https://developers.sap.com/tutorials/abap-environment-deploy-fiori-elements-ui.html) + + - [Integrate an SAP Fiori Elements App into the SAP Fiori Launchpad for SAP BTP, ABAP Environment](https://developers.sap.com/tutorials/abap-environment-integrate-app-into-flp.html) + + + +The advanced exercises of the transactional scenario are provided as a tutorial group. They are built on top of the exercises of the beginner tutorial groups. + +Build an SAP Fiori App Using the ABAP RESTful Application Programming Model \(RAP\) – Intermediate \[RAP100\]: + +- [Enhance the Business Object Behavior with Instance Actions](https://developers.sap.com/tutorials/abap-environment-rap100-instance-action.html) + +- [Enhance the Business Object Behavior with Factory Action](https://developers.sap.com/tutorials/abap-environment-rap100-factory-action.html) + +- [Enhance the Business Object Behavior with Dynamic Feature Control](https://developers.sap.com/tutorials/abap-environment-rap100-dynamic-feature-control.html) + +- [Write an ABAP Unit Test for the RAP Business Object](https://developers.sap.com/tutorials/abap-environment-rap100-unit-testing.html) + + +The [Develop and Consume Queries on SAP Analytics Cloud](https://developers.sap.com/tutorials/abap-environment-analytics.html) beginner tutorial is available for the analytical scenario. + +The [Develop Queries Based on Booking Supplement and Consume on SAP Analytics Cloud](https://developers.sap.com/tutorials/abap-environment-booking-supplements-analytics.html) tutorial covers the advanced exercises of the analytical scenario. + diff --git a/docs/tutorials-for-sap-cloud-application-programming-model-eb7420a.md b/docs/tutorials-for-sap-cloud-application-programming-model-eb7420a.md new file mode 100644 index 0000000..c6ed3d3 --- /dev/null +++ b/docs/tutorials-for-sap-cloud-application-programming-model-eb7420a.md @@ -0,0 +1,195 @@ + + +# Tutorials for SAP Cloud Application Programming Model + +The Incident Management sample application is a showcase of the SAP Cloud Application Programming Model \(CAP\) and adheres to the development recommendations set out in the SAP BTP Developer’s Guide. Best practices are documented in step-by-step tutorials based on the Incident Management application for learning how to develop, deploy, and operate a full-stack application using CAP and SAP Fiori. The tutorials also show how to use a set of important SAP BTP services in a CAP application. + +When going through the sample application, you can choose from two options to try its services and runtimes before you purchase them: + +- Free tier for SAP BTP is best for productive projects: + + - Access a productive account + + - Start with more than 30 free-tier services and upgrade from free to paid plans + + - Accelerate your ramp-up with boosters and missions that include step-by-step guidance + + + The free-tier offering is available in the following consumption-based commercial models: the **SAP BTPEA** \(SAP BTP Enterprise Agreement\), the **CPEA** \(Cloud Platform Enterprise Agreement\) and **Pay-As-You-Go for SAP BTP**. See [Using Free Service Plans](https://help.sap.com/docs/btp/sap-business-technology-platform/using-free-service-plans). + +- SAP BTP trial is best for learning purposes: + + - Gain instant and full access to a trial environment + + - Experiment with a diverse range of more than 30 trial services for free + + - Get started with a variety of learning materials, such as tutorials and missions + + + See [Start your free 90-days trial](https://www.sap.com/registration/trial.908cb719-0e03-421c-a091-daca045f0acc.html). + + +Before you start using the services or runtimes, you need to manage your entitlements and add quotas to your subaccounts. See [Entitlements and Quotas](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/00aa2c23479d42568b18882b1ca90d79.html "When you purchase an enterprise account, you’re entitled to use a specific set of resources, such as the amount of memory that can be allocated to your applications.") :arrow_upper_right:. + +Note that if you want to try out services for free, you need to select free tier service plans, if available. For a list of free services, check the Service Catalog at [SAP Discovery Center](https://discovery-center.cloud.sap/servicessearch/Free%20Tier/). + +> ### Note: +> There is also a free plan for the SAP BTP, Cloud Foundry runtime and SAP BTP, Kyma runtime. To use the free plans for these runtimes, you have to configure the entitlements in the SAP BTP cockpit. You have one free plan for each runtime per global account and you can assign it to one subaccount at a time. + +The tutorials are grouped in missions following a specific scenario. All the missions are based on the Incident Management sample application: + +- [Starter Mission: Develop a Full-Stack CAP Application](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loioebd19b54c28c4cdfa31ad056ad02aff4) + +- [Mission: Develop a Side-by-Side CAP-Based Extension Application](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loio2289e25a0e494f03867c195454b6eaea) + +- [Mission: Implement Observability in a Full-Stack CAP Application](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loioc5636db4e969490f8313474cb4cea775) + +- [Mission: Develop an Enterprise-Grade CAP Application](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loiob5be78656d614f91bf436d6b93b593e4) + +- [Mission: Develop a Multitenant CAP Application](tutorials-for-sap-cloud-application-programming-model-eb7420a.md#loio6d2cbe949ab84e13ba8999fe98c2f43e) + + + + + + +## Starter Mission: Develop a Full-Stack CAP Application + +The starter mission is called **Develop a Full-Stack CAP Application Following the SAP BTP Developer’s Guide** and contains tutorials grouped in the following way: + +- The [Develop a Full-Stack CAP Application](https://developers.sap.com/group.cap-application-full-stack.html) group of tutorials covers the following steps for developing the Incident Management sample application: + + - Setting up the development environment. + + - Building a CAP application with SAP Fiori elements user interface and a custom logic. + + - Adding local launchpad, authorization, tests for local development and preparing for production. + + +- The [Deploy a Full-Stack CAP Application in SAP BTP, Cloud Foundry Runtime](https://developers.sap.com/group.deploy-full-stack-cap-application.html) group of tutorials covers the following steps for deploying the Incident Management application in the SAP BTP, Cloud Foundry runtime: + + - Deploying the application in a productive account in SAP BTP, Cloud Foundry runtime. + + - Using SAP Build Work Zone, standard edition. + + - Setting up continuous integration and delivery pipeline in SAP BTP. + + +- The [Deploy a Full-Stack CAP Application in SAP BTP, Kyma Runtime](https://developers.sap.com/group.deploy-full-stack-cap-kyma-runtime.html) group of tutorials covers the following steps for deploying the Incident Management application in the SAP BTP, Kyma runtime: + + - Deploying the application in a productive account in SAP BTP, Kyma runtime. + + - Using SAP Build Work Zone, standard edition. + + - Setting up continuous integration and delivery pipeline in SAP BTP. + + + +See the [Develop a Full-Stack CAP Application Following the SAP BTP Developer’s Guide](https://discovery-center.cloud.sap/protected/index.html#/missiondetail/4327/4608) mission at SAP Discovery Center. + + + +This image is interactive. Click the highlighted areas so you open the respective tutorial or mission. + +![](images/Tutorials_Flow_Develop_a_Full-Stack_CAP_Application_68e34cd.png) + + + + + +## Mission: Develop a Side-by-Side CAP-Based Extension Application + +Using the SAP BTP Developer’s Guide you can implement side-by-side SAP Cloud Application Programming Model \(CAP\)-based extension applications and deploy them in SAP BTP. The **Develop a Side-by-Side CAP-Based Extension Application Following the SAP BTP Developer’s Guide** mission includes tracks for a remote service connectivity and eventing. In the scenario, an SAP S/4HANA Cloud system is used. If you don't have such a system and you still want to try out the mission, you can use a mock server instead. Depending on what you choose, there are 8 different options: + +- Connect to a remote service + + - Option 1a: SAP BTP, Cloud Foundry runtime and mock server + + - Option 2a: SAP BTP, Cloud Foundry runtime and SAP S/4HANA Cloud + + - Option 3a: SAP BTP, Kyma runtime and mock server + + - Option 4a: SAP BTP, Kyma runtime and SAP S/4HANA Cloud + + +- Implement eventing + + - Option 1b: SAP BTP, Cloud Foundry runtime and mock server + + - Option 2b: SAP BTP, Cloud Foundry runtime and SAP S/4HANA Cloud + + - Option 3b: SAP BTP, Kyma runtime and mock server + + - Option 4b: SAP BTP, Kyma runtime and SAP S/4HANA Cloud + + + +Out of these 8 options, you can choose one option for the remote service and the corresponding option for the eventing. If you are interested in the remote service connectivity, you don't have to finish the eventing option as well. However, if you are interested in the eventing part, you have to finish the respective remote service connectivity option. + +See [Develop a Side-by-Side CAP-Based Extension Application Following the SAP BTP Developer’s Guide](https://discovery-center.cloud.sap/protected/index.html#/missiondetail/4426/4712/). + + + +This image is interactive. Click the highlighted areas so you open the respective tutorial or mission. + +![](images/Connect_to_a_Remote_Service_Based_on_the_Starter_Mission_82400ab.png) + + + + + +## Mission: Implement Observability in a Full-Stack CAP Application + +You can add observability to the Incident Management application. Observability helps make informed decisions using real-time data like logs, metrics, traces, and events. It provides insights into SAP and customer systems to improve efficiency, scalability, resilience, and availability. + +For detailed observability data, use SAP Cloud Logging. SAP Cloud Logging allows you to analyze logs, metrics, and traces to understand the performance of your SAP BTP workload in the SAP BTP, Cloud Foundry, and SAP BTP, Kyma environments. + +See [Implement Observability in a Full-Stack CAP Application Following SAP BTP Developer’s Guide](https://discovery-center.cloud.sap/protected/index.html#/missiondetail/4432/4718/). + + + +This image is interactive. Click the highlighted areas so you open the respective tutorial or mission. + +![](images/Implement_Observability_Based_on_the_Starter_Mission_ecb3950.png) + + + + + +## Mission: Develop an Enterprise-Grade CAP Application + +You can develop enterprise-grade CAP applications and deploy them in SAP BTP. The **Develop an Enterprise-Grade CAP Application Following the SAP BTP Developer’s Guide** mission includes options for tracking changes, adding audit logs, and uploading attachments. + +See [Develop an Enterprise-Grade CAP Application Following the SAP BTP Developer’s Guide](https://discovery-center.cloud.sap/protected/index.html#/missiondetail/4431/4717/). + + + +This image is interactive. Click the highlighted areas so you open the respective tutorial or mission. + +![](images/Mission_Develop_an_Enterprise-Grade_CAP_Application_Following_the_SAP_BTP_Developer_s_Guide_43b74ca.png) + + + + + +## Mission: Develop a Multitenant CAP Application + +SAP BTP provides a multitenant functionality that allows application providers to own, deploy, and operate tenant-aware applications for multiple consumers, with reduced costs. For example, the application provider upgrades the application for all your consumers instead of performing each update individually, or share resources across multiple consumers. The application consumers launch the applications using consumer-specific URLs, and configure certain application features. + +With tenant-aware applications, you can: + +- Separate data securely for each tenant + +- Save resources by sharing them among tenants + +- Update applications efficiently, in a single step + + +To try out the multitenant functionality on the Incident Management sample application, see [Develop a Multitenant CAP Application Following the SAP BTP Developer's Guide](https://discovery-center.cloud.sap/protected/index.html#/missiondetail/4502/4789/). + + + +This image is interactive. Click the highlighted areas so you open the respective tutorial or mission. + +![](images/Mission_Develop_a_Multitenant_CAP_Application_1f4feba.png) + diff --git a/docs/understanding-available-technology-c1f21a4.md b/docs/understanding-available-technology-c1f21a4.md new file mode 100644 index 0000000..fcbe9e6 --- /dev/null +++ b/docs/understanding-available-technology-c1f21a4.md @@ -0,0 +1,992 @@ + + +# Understanding Available Technology + +To be able to build an application using what SAP BTP offers, you have to understand what are the recommended use case patterns and what services, tools, and integrations are available. + + + + + +## Development Use Cases + + + + + +## Typical Development Use Case Patterns + +The following use case patterns should always be implemented on the SAP BTP: + +- Automate processes across backend systems + + This pattern provides low code/no code capabilities to automate processes and is meant for business experts and developers. + +- Build web and mobile applications + + This pattern provides mobile-native and web development capabilities and is meant for business experts and developers. + +- Develop full-stack applications + + This pattern is meant for professional developers and has the following flavors: + + - Full-stack single-tenant applications + + This pattern is meant for customers and implementation partners enabling them to develop full-stack applications on SAP BTP. + + - Full-stack multitenant SaaS applications for partners that are independent software vendors + + This pattern is meant for SAP partners enabling them to develop full-stack SaaS applications on the SAP BTP and to distribute these applications to their customers. Partners can easily onboard multiple customers \(tenants\) onto a single application with strictly separated data. This approach dramatically reduces the total cost of ownership at cloud scale. + + - Hub scenario integrating with several ERP systems and/or cloud services + + This pattern provides a central hub on SAP BTP to collect and distribute data from various systems. + + + + + + + +## Extensibility Options + +Most development use cases address some sort of extension of SAP S/4HANA and SAP S/4HANA Cloud, public or private edition. Depending on the nature of the extension, different extensibility options are available. The extensibility options can be roughly divided into two categories: + +- On-stack extensibility + + A group of extensibility options that allows users to directly extend the software stack without any remote connection. The extensibility options are: + + - Key user extensibility + + - Developer extensibility + + - Classic extensibility: not recommended; it's available only in private cloud and on-premise setups. + + + For detailed explanation of the ABAP on-stack extensibility options, see [Extend SAP S/4HANA in the Cloud and On-Premise with ABAP-Based Extensions](https://www.sap.com/documents/2022/10/52e0cd9b-497e-0010-bca6-c68f7e60039b.html). + + In this document, you can also find decision tables when to use which extensibility option and how to combine these options in more complex scenarios. + +- Side-by-side extensibility + + An extensibility option that allows developers or key users to implement development projects, such as creating custom user interfaces or custom applications. The development projects are implemented on SAP BTP and integrated via released remote APIs. + + + + + + +## Building Transactional, Analytical Applications and Integration Scenarios with ABAP Cloud + +ABAP Cloud offers developers a programming model to design and implement transactional applications, analytical applications, and integration scenarios. Applications can be deployed as single tenant or multitenant SaaS applications. + +ABAP Cloud defines the technological core of the ABAP Cloud development model and consists of technologies such as ABAP, ABAP RESTful Application Programming Model \(RAP\) and Core Data Services, reuse services and libraries to implement the programming model aspects. Built-in qualities define the common quality characteristics that all ABAP Cloud implementations fulfil such as extensibility or identity and access management. + + + + + +## Business Application Services + +SAP BTP Developer’s Guide has a comprehensive set of tools and services at your disposal that allow you to keep the pace and at the same time benefit from future investments in SAP BTP. The following graphic includes both ABAP and non-ABAP runtimes and provides an overview of the architecture you can use when designing and building your applications. + +The overall suite of applications consists of multiple business modules that are either implemented for SAP Cloud Application Programming \(CAP\) or ABAP Cloud. Each business module consists of one or multiple self-contained services following a three-tier architecture with presentation, logic, and persistence layer. In both architecture styles, SAP Fiori and SAPUI5 is used to implement front end artifacts. These front end artifacts are consuming its data using OData for transactional and InA for analytical applications. + +The application logic for CAP-based applications is implemented in Node.js, Java and Typescript and is deployed in SAP BTP, Cloud Foundry runtime or SAP BTP, Kyma runtime. The application logic for ABAP Cloud is implemented in ABAP and deployed in the SAP BTP, ABAP environment. In both cases, SAP HANA Cloud is used to store relational business data. + +Additional enterprise qualities are reached by integrating the business modules with complementing SAP BTP application services such as SAP Build Work Zone as a central entry point, SAP Datasphere as a cross-application data warehouse or Identity Authentication for identity authentication among others. + + + +This image is interactive. Hover over the image and click the highlighted areas so you are placed in the respective cell in the table. + +![](images/Technical_Architecture_251a03a.png) + + + +**** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +Capability + + + +Cloud Application Programming + + + +ABAP Cloud + +
+ +Development Tools + + + +[SAP Business Application Studio](https://help.sap.com/docs/bas/sap-business-application-studio/what-is-sap-business-application-studio?version=Cloud) + +Designed and optimized for business application development in SAP ecosystems, SAP Business Application Studio enhances productivity by offering specialized tools for various scenarios, including SAP Fiori application development, SAP HANA native extensions, full-stack and mobile application development, and more. + +Central to the development environment is Code-OSS, the open-source foundation of Visual Studio Code, ensuring a familiar experience for developers when creating SAP-centric applications. SAP Business Application Studio streamlines the building, testing, and deployment of applications with integrated features for source control and testing. Furthermore, its Full-Stack Application Productivity Toolkit offers intuitive visual tools covering the entire development process, guaranteeing seamless integration with various SAP services and solutions. + + + +[ABAP Development Tools for Eclipse](https://tools.eu1.hana.ondemand.com/#abap) + +[SAP Business Application Studio](https://help.sap.com/docs/bas/sap-business-application-studio/what-is-sap-business-application-studio?version=Cloud) + +Use ABAP development tools for Eclipse to benefit from an efficient development environment for all ABAP-based development artifacts. Use the SAP Business Application Studio to develop the SAP Fiori parts of your ABAP-based applications. + +
+ +Software Delivery + + + +[SAP Continuous Integration and Delivery](https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/what-is-sap-continuous-integration-and-delivery?version=Cloud) + +Use SAP Continuous Integration and Delivery for non-ABAP applications with a full end-to-end support for SAP BTP cloud applications. + +SAP Continuous Integration and Delivery lets you configure and run predefined continuous integration and delivery \(CI/CD\) pipelines that automatically build, test, and deploy your code changes to speed up your development and delivery cycles. + +Use SAP CI for non-ABAP applications with a full end-to-end support for SAP BTP cloud applications. + +SAP CI guides along solid tests, zero-downtime deployment, consistency, release via feature activation, operation guidance. It supports full end-to-end support for BTP cloud applications. + +Consider the complete innovation lifecycle that includes \(beside others\) Design Thinking, Domain Driven Design, Feature \(Toggle\) Definition, local build, unit tests, integration tests, end-to-end tests, progressive deployment, feature activation, documentation, DevOps monitoring, usage tracking, metering, adoption measurement and closing the feedback loop. + + + +[ABAP Lifecycle Management](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/abap-lifecycle-management) + +- For customers: + + Develop applications as software components and deliver them via the Manage Software Components application. See [Software Components](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/software-components). + + A hidden Git repository is automatically managed per software component using gCTS for transport management. This process can be automated with CI/CD pipelines including steps like test automation using ABAP Test Cockpit. See [Automate the Software Lifecycle Management Process](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/automate-software-lifecycle-management-process). + + SAP Cloud Transport Management can be used to optionally integrate with higher level change management processes. See [How to Export Using SAP Cloud Transport Management](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/how-to-export-using-sap-cloud-transport-management?q=cloud%20transport%20management). + +- For partners: + + In addition to the customer scenario, products can be built based on software components with the help of the Landscape Portal to setup multitenant SaaS applications or to offer installable products like SDKs for other customers and partners. See [Landscape Portal](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/landscape-portal). + + + + +
+ +[SAP Cloud Transport Management](https://help.sap.com/docs/cloud-transport-management/sap-cloud-transport-management/what-is-sap-cloud-transport-management?version=Cloud) + +Optionally complement your pipeline with an automated handover of your qualified changes into a standardized, enterprise-ready change management process. For changes in SAP BTP, Cloud Foundry runtime, the pipeline provided by SAP Continuous Integration and Delivery service allows to trigger out-of-the-box a transport in SAP Cloud Transport Management service. + +With other CI/CD solutions, you can also trigger such a transport via project ‘Piper’. SAP Cloud Transport Management allows you to centrally define delivery landscapes and to then handle the transport of development and application-specific content between the subaccounts defined in this landscape. With this, you can add additional control for the propagation of your changes especially towards your production environments, such as by defining who is allowed to come up and handle changes in which environment. Also, you gain the option to apply existing or new change management processes, such as being offered by change and deployment management capabilities of SAP Cloud ALM – for example, to centrally synchronize the delivery of SAP BTP changes with changes from other environments, as part of hybrid applications. + +You can also use SAP Cloud Transport Management to transport your changes without pipeline. + +
+ +Persistence + + + +[SAP HANA Cloud](https://help.sap.com/docs/hana-cloud/sap-hana-cloud-overview-guide/sap-hana-cloud-overview-guide) + +Use SAP HANA Cloud service for a relational storage. + +Use HANA Data Lake Files as Object Storage. + +Consider compliance features like such as Audit Log, Cryptography or Customer Managed Keys that SAP HANA Cloud offers. + + + +[SAP HANA Cloud](https://help.sap.com/docs/hana-cloud/sap-hana-cloud-overview-guide/sap-hana-cloud-overview-guide) + +SAP BTP, ABAP environment comes with an own ABAP-managed SAP HANA Cloud instance. Static resizing of the SAP HANA Cloud instance is supported. ABAP dictionary tables can be tagged to make use of the SAP HANA Native Storage Extensions; also, database indexes \(like unique secondary indexes and fuzzy search indexes\) and Dynamic View Caches can be defined. Furthermore, simple Database Partitioning based on primary keys is possible. Access to the SAP HANA instance data is only supported via the ABAP layer, for example, by using ABAP SQL, natively via ABAP-managed database procedures, and the ABAP SQL Service for external clients. + +
+ +Programming Model + + + +[SAP Cloud Application Programming Model \(CAP\)](https://cap.cloud.sap/docs/) + +Use SAP Cloud Application Programming Model as programming model for non-ABAP applications. + +Go-to frameworks for business application development. It supports the most widely adopted languages, which are: Java \(with Spring Boot\), JavaScript and TypeScript \(with Node.js\). + +SAP Cloud Application Programming Model guarantees to run against specific versions of Node.js and Java. Remember to plan your application to run for at least 5 years if not more. + +We recommend that you choose SAP BTP services over homegrown services. + + + +[ABAP RESTful Application Programming Model \(RAP\)](https://help.sap.com/docs/btp/sap-abap-restful-application-programming-model/abap-restful-application-programming-model?version=Cloud) + +Use ABAP RESTful Application Programming Model as a programming model within ABAP Cloud. With ABAP RESTful Application Programming Model, you can develop services for all types of SAP Fiori applications as well as publishing Web APIs. + +
+ +Runtime + + + +[SAP BTP, Cloud Foundry Runtime](https://help.sap.com/docs/btp/sap-business-technology-platform/cloud-foundry-environment?version=Cloud) + +Use SAP BTP, Cloud Foundry runtime as a runtime for CAP-based applications. + + + +[SAP BTP, ABAP Environment](https://help.sap.com/docs/btp/sap-business-technology-platform/getting-started-with-customer-account-in-abap-environment?version=Cloud) + +Use SAP BTP, ABAP environment for ABAP-based applications. + +SAP BTP, ABAP environment delivers and enforces the ABAP Cloud development model and is based on Kubernetes. The abstraction of containers and clusters is managed by the SAP BTP, ABAP environment infrastructure. + +
+ +[SAP BTP, Kyma Runtime](https://help.sap.com/docs/btp/sap-business-technology-platform/kyma-environment?version=Cloud) + +Use SAP BTP, Kyma runtime as a runtime for CAP-based applications. + +
+ +Client Library + + + +[SAP Cloud SDK](https://help.sap.com/docs/SAP_CLOUD_SDK) + +CAP is using SAP Cloud SDK behind the scenes. + +SAP Cloud SDK provides client libraries for consuming OData/OpenAPI services, Destination service, and Connectivity service that extend SAP solutions and other OData/OpenAPI services on SAP Business Technology Platform. These clients allow you to concentrate on your unique business logic, simplifying development and ensuring seamless integration. + + + +[Service Consumption Model](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/service-consumption-model) + +Use the Service Consumption Model to generate local ABAP APIs to consume remote OData, SOAP and RFC services. + +
+ +Connectivity + + + +[SAP Connectivity Service](https://help.sap.com/docs/connectivity/sap-btp-connectivity-cf/connectivity?version=Cloud) + +Use Connectivity service to securely access on-premise systems which are exposed via Cloud Connector. Using Cloud Connector service channels, it is also possible to access cloud systems such as databases from on-premise networks. For Kubernetes-based workloads, you can utilize the Connectivity Proxy to ensure secure technical connectivity from the cloud to your on-premise systems. Within the Kyma runtime, the Connectivity Proxy comes as a managed offering. + + + +[SAP Connectivity Service](https://help.sap.com/docs/connectivity/sap-btp-connectivity-cf/connectivity?version=Cloud) + +The Connectivity service is automatically integrated with the BTP ABAP tenants to securely access on-premise systems which are exposed via Cloud Connector. + +
+ +[SAP Destination Service](https://help.sap.com/docs/connectivity/sap-btp-connectivity-cf/consuming-destination-service?version=Cloud) + +Use Destination service to store and retrieve technical connection properties to the target systems. It automates the process of retrieving OAuth access tokens to the configured target systems. In addition, the Destination service generates and is able to renew X.509 client certificates issued by the SAP Cloud PKI. + + + +[Communication Management](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/communication-management) + +SAP BTP, ABAP Environment provides a Communication Management to integrate the custom applications with other systems to enable data exchange. + +An event consumption and event provisioning is also natively supported and integrated into the ABAP RESTful Application Programming Model \(RAP\). + +In addition, the SAP Destination Service can also be used to re-use destinations for CAP applications. See [SAP Destination Service](https://help.sap.com/docs/connectivity/sap-btp-connectivity-cf/consuming-destination-service?version=Cloud). + +
+ +Application Programming Interface + + + +[SAP Business Accelerator Hub](https://api.sap.com/) + +Follow API guidelines and use the SAP Business Accelerator Hub. + +
+ +User Interface \(Web\) + + + +[SAP Fiori Elements](https://experience.sap.com/fiori-design-web/smart-templates/) + +[SAPUI5](https://sapui5.hana.ondemand.com/) + +Use SAP Fiori elements for OData V4 to benefit from a presentation of a common UI and UX. For more flexibility, use SAP Fiori element’s Flexible Programming Model with or without SAPUI5 Freestyle. Personalization and theming are automatically supported. + +SAP Fiori elements and SAPUI5 help you present one consistent solution experience to your customers, and you benefit from the upcoming designs and UX improvements automatically. + +Remember that even the simplest UI components or more complex ones like geographic maps have compliance requirements like accessibility and theming. + +
+ +User Interface \(Mobile\) + + + +[SAP Mobile Development Kit](https://community.sap.com/topics/mobile-technology/mobile-development-kit) + +[SAP BTP SDK for Android](https://help.sap.com/doc/f53c64b93e5140918d676b927a3cd65b/Cloud/en-US/docs-en/guides/getting-started/android/overview.html) + +[SAP BTP SDK for iOS](https://help.sap.com/doc/f53c64b93e5140918d676b927a3cd65b/Cloud/en-US/docs-en/guides/getting-started/ios/introduction.html) + +Use SAP MDK, BTP SDK for Android or BTP SDK for iOS for mobile applications. + +These SDKs help you present one consistent solution experience to your customers. + +Mobile application development is massively accelerated as SAP mobile services and its SDKs generate the complete synchronization and authentication layer. Additional supported features like logging, tracing, crash reporting bring extra value to you. + +After deployment the Mobile services give administrators all the necessary tools and services to operate a mobile solution. Features like push, offline, mobile specific security and more simplify the operation. + +
+ +Central Entry Point + + + +[SAP Build Work Zone, standard edition](https://help.sap.com/docs/build-work-zone-standard-edition/sap-build-work-zone-standard-edition/what-is-sap-build-work-zone-standard-edition) + +[SAP Build Work Zone, advanced edition](https://help.sap.com/docs/build-work-zone-advanced-edition/sap-build-work-zone-advanced-edition/what-is-sap-build-work-zone-advanced-edition) + +[SAP HTML5 Application Repository Service for SAP BTP](https://help.sap.com/docs/btp/sap-business-technology-platform/developing-html5-applications-in-cloud-foundry-environment) + +Enable the central launchpad to offer a unified end-user experience. + +Customers want to create a personalized view on the applications you produce. Make sure your application can be added to a central launchpad, regardless of where it runs. + + + +[SAP Fiori Launchpad for SAP BTP, ABAP Environment](https://help.sap.com/docs/btp/sap-fiori-launchpad-for-sap-btp-abap-environment/sap-fiori-launchpad-user-guide?version=Cloud) + +[SAP Work Zone, standard edition](https://help.sap.com/docs/build-work-zone-standard-edition/sap-build-work-zone-standard-edition/what-is-sap-build-work-zone-standard-edition) + +[SAP Build Work Zone, advanced edition](https://help.sap.com/docs/build-work-zone-advanced-edition/sap-build-work-zone-advanced-edition/what-is-sap-build-work-zone-advanced-edition) + +[SAP HTML5 Application Repository Service for SAP BTP](https://help.sap.com/docs/btp/sap-business-technology-platform/developing-html5-applications-in-cloud-foundry-environment) + +SAP BTP, ABAP Environment comes with a dedicated central entry point the SAP Fiori launchpad for SAP BTP, ABAP Environment. This central entry point offers a unified end-user experience for ABAP-based applications. It is also used as the entry point for all SAP Fiori applications to administer the ABAP system. + +SAP Build Work Zone, standard edition offers a unified end-user experience across several systems for federation scenarios. + +
+ +Integration + + + +[SAP Event Mesh](https://help.sap.com/docs/event-mesh/event-mesh/what-is-sap-event-mesh?version=Cloud) + +[SAP Cloud Application Event Hub](https://help.sap.com/docs/event-broker/event-broker-service-guide/what-is?locale=en-US%3Fversion%3DCloud&version=Cloud) + +[SAP Integration Suite, advanced event mesh](https://help.sap.com/docs/SAP_ADVANCED_EVENT_MESH/649cec0ae9ac49059564a1870fb8a1b7/0d4bcd5a2be744688039160b9bb289ae.html?version=Cloud) + +SAP Event Mesh can be used to distribute events between selected SAP cloud and on-premise applications and third-party applications. + +SAP Integration Suite, advanced event mesh is currently not supported by CAP and ABAP Cloud. + +SAP Cloud Application Event Hub allows CAP-based applications to consume business events from supported SAP cloud applications. Currently, SAP Cloud Application Event Hub is not supported by ABAP Cloud. + +
+ +[SAP Master Data Integration](https://help.sap.com/docs/SAP_MASTER_DATA_INTEGRATION/c7713d6177ad479d9ea00958db9f2f81/dab76d5506a44c8e85f314fc3be30e13.html?version=CLOUD) + +SAP Master Data Integration service acts as the central master data hub. It uses the integration models of SAP One Domain Model as the basis for master data replication. SAP will extend the support of SAP One Domain Model in all SAP cloud applications over time to integrate them. When out-of-the-box integration with SAP Master Data Integration is not available, SAP Integration Suite can be used to integrate with SAP ERP Central Component, SAP S/4HANA, and non-SAP applications. + +
+ +[SAP Integration Suite](https://help.sap.com/docs/integration-suite/sap-integration-suite/what-is-sap-integration-suite?version=CLOUD) + +Use the Cloud Integration capability of SAP Integration Suite for mediated data or process integration, especially if complex integration flows, transformations or dedicated protocols are required. Besides mediated application-to-application integration, Cloud Integration usage is recommended for business-to-business and business-to-governance processes. + +The API Management capability of SAP Integration Suite allows you to easily enable your developer community with governed, secure, and policy-compliant access to all your APIs, events, and integrations. + +Graph is a recent addition to the API Management capability of SAP Integration Suite. Graph is a powerful semantic API mediation, combining and exposing the data from diverse systems in a complex enterprise landscape as connected data graphs. The data graphs are accessed via a single, curated, and uniform data-as-a-service API and make API consumption much easier. + +
+ +[Cloud Integration Automation](https://help.sap.com/docs/cloud-integration-automation/user-guide/overview) + +Cloud Integration Automation service provides you a guided workflow to integrate SAP cloud solutions to on-premise and other SAP cloud solutions. The guided workflow contains instructions for manual and automated tasks to enable an easy and quick integration configuration setup. + +
+ +Observability + + + +[SAP Cloud ALM](https://help.sap.com/docs/link-disclaimer?site=https%3A%2F%2Fsupport.sap.com%2Fen%2Falm%2Fsap-cloud-alm.html) + +SAP Cloud ALM helps you to implement and operate intelligent cloud and hybrid business solutions. + +For your CAP-based applications on SAP BTP, SAP Cloud ALM provides a central, personalized and unified operations user experience. Specifically for Java and Node.js custom-built applications in SAP BTP, Cloud Foundry runtime, there are the Data Collection Instrumentation Libraries based on Open Telemetry designed to enable the data collection infrastructure in SAP Cloud ALM. With these libraries, you can collect data for many observability use cases, such as: + +- Real User Monitoring + +- Real User Monitoring + +- Health Monitoring + +- Integration and Exception Monitoring + + + + + + +[SAP Cloud ALM](https://help.sap.com/docs/link-disclaimer?site=https%3A%2F%2Fsupport.sap.com%2Fen%2Falm%2Fsap-cloud-alm.html) + +All ABAP cloud applications are supported by SAP Cloud ALM for central observability. SAP Cloud ALM provides the following use cases: + +- Real User Monitoring + +- Health Monitoring + +- Synthetic User Monitoring + +- Integration Monitoring + +- Job and Automation Monitoring + +- Data Forwarding to SAP Focused RUN + + +For Health Monitoring, you could extend the delivered content with your own custom metrics. + +SAP BTP, ABAP Environment strictly distinguishes between platform monitoring and application monitoring. The platform monitoring, like availability monitoring, is ensured by the service itself. + +For application monitoring, which is in your responsibility, respective tools are offered. Use the Technical Monitoring Cockpit to analyze and optimize the application on-stack: + +- System workload + +- Resource consumption and capacity + +- Detailed statistics captured for single requests + +- Outbound communication + +- SQL statements + + + + +
+ +[SAP Alert Notification service for SAP BTP](https://help.sap.com/docs/alert-notification/sap-alert-notification-for-sap-btp/what-is-sap-alert-notification-service-for-sap-btp?version=Cloud) + +Local expert tool that allows you to subscribe to events from the platform – such as from used services, from your custom-built apps, or from the infrastructure – and to consume them via your channel of choice \(such as by receiving notifications via email or in your preferred chat application\). Can be integrated into central alerting of SAP Cloud ALM. + +
+ +[SAP Cloud Logging](https://help.sap.com/docs/cloud-logging/cloud-logging/what-is-sap-cloud-logging?version=Cloud) + +SAP Cloud Logging allows you to analyze your SAP BTP workloads in great detail regarding performance, errors, usage, and other characteristics. + +It covers processing of logs, metrics, traces across SAP BTP, Cloud Foundry runtime and SAP BTP, Kyma runtime with flexible storage, alerting, and dashboarding. + +
+ +Customer Landscape Discovery + + + +[Unified Customer Landscape](https://help.sap.com/docs/btp/sap-business-technology-platform/maintaining-unified-customer-landscape?version=Cloud) + +Use Unified Customer Landscape service for customer landscape management. + +There are different ways to add systems to the *System Landscape* page in the SAP BTP cockpit: manually or automatically. If a system of your solution is associated with your global account or through a subscription in SAP BTP cockpit associated with a given subaccount, it will appear in the list automatically. Otherwise, you have to add your system manually. Systems are added to the list in one of the following ways: + +- Auto-Discovered + + An auto-discovered system is a system \(associated with the given global account\) that has been discovered and added automatically to the list based on information of the existing system landscape. Any SAP system of the supported system types that is associated with the same customer ID, with which your global account in SAP BTP is associated, will be added automatically in the system landscape list. + +- Subaccount/ + + Specifies that the system has been added through a subscription in SAP BTP cockpit associated with a given subaccount. The subscription has been discovered and added automatically through the subaccount. + +- Manually-Added + + Specifies that the system has been added to the list manually by the global account administrator, using the *Add System* button and completing the wizard. The system has been associated with the global account in SAP BTP. + + + + + + +[Landscape Portal](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/landscape-portal) + +Landscape Portal is offered to manage all the systems within your global account in SAP BTP. It shows the list of the ABAP systems, it enables the control of system hibernation to reduce costs and it offers features to control the system lifecycle, for example, to nominate systems for the pre-upgrade prior to the standard upgrade of a quarterly ABAP platform release. + +
+ +Extensibility and Integration + + + +Side-by-Side Extensibility with Unified Customer Landscape: + +- [Register Systems](https://help.sap.com/docs/btp/sap-business-technology-platform/registering-sap-system?version=Cloud) + +- [Create Formations](https://help.sap.com/docs/btp/sap-business-technology-platform/including-sap-systems-in-formation?version=Cloud) + +- [SAP SuccessFactors Extensibility Service](https://help.sap.com/docs/btp/sap-business-technology-platform/extending-sap-successfactors-in-cloud-foundry-and-kyma-environment?version=Cloud) + +- [SAP S/4HANA Cloud Extensibility Service](https://help.sap.com/docs/btp/sap-business-technology-platform/extending-sap-s-4hana-cloud-in-cloud-foundry-and-kyma-environment?version=Cloud) + + +Use Unified Customer Landscape service that offers customer landscape management capabilities for your SAP S/4HANA, SAP Ariba, SAP SuccessFactors, and other SAP and third-party systems in one single experience. + +In the SAP BTP cockpit, you get a comprehensive overview of all your systems associated with your customer ID. These systems can be registered or auto discovered. They are conveniently listed as a record in the *Systems* list in the *System Landscape* page in the SAP BTP cockpit. Moreover, Unified Customer Landscape lets you integrate one or more systems in a common business case by including these systems in a formation. + + + +[On-Stack Extensibility by Extending SaaS Applications](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/extending-saas-applications) + +In addition to the standard side-by-side approach for core applications such as SAP S/4HANA, SAP BTP, ABAP Environment also offers two extensibility options within the product itself: + +- With developer extensibility, you can extend partner solutions which are installed in your customer system, for example by adding custom fields, custom nodes and business logic. + +- With key user extensibility, you can extend a multitenancy SaaS application offered by a partner. The supported extensibility features to extend SaaS applications are UI adaptations, custom fields and custom logic \(implement Business Add-Ins\). + + +You can create business configuration objects. See [Business Configuration](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/development-business-configuration). + +You can create and set up integration scenarios by maintaining communication arrangements. + +
+ +Data Privacy + + + +[SAP Data Privacy Integration](https://help.sap.com/docs/data-privacy-integration/development/data-privacy-integration?version=Cloud) + +Use Data Privacy Integration service to make your SAP BTP application compliant with the corporate Data Privacy and Protection standards. Integrate with the Data Privacy Integration service to support cross consumable Data Privacy and Protection features for our customers and support cross Data Privacy and Protection compliance in end-to-end processes. + +
+ +Workflow + + + +[SAP Task Center](https://help.sap.com/docs/task-center/sap-task-center/what-is-sap-task-center?version=Cloud) + +SAP Task Center service enables integration with SAP applications to provide a single entry point for end users to access all their assigned tasks. The tasks can be accessed by end users through the SAP Task Center Web application.SAP Task Center helps you integrate tasks into a central solution. + +Use SAP Task Center as a unified inbox for tasks across multiple applications with integrated user experience. Tasks from multiple SAP solutions are gathered in one list and ready to be processed in just one click, shortening the completion time for business-critical tasks. For example, business users can process all their tasks from the connected systems, without the need to switch and log in separately into different inboxes. + +[SAP Build Process Automation](https://help.sap.com/docs/build-process-automation/sap-build-process-automation/what-is-sap-build-process-automation?version=Cloud) + +SAP Build Process Automation provides a simpler and faster way to adapt, improve, and innovate business processes with drag-and-drop simplicity. + +The solution combines workflow management, SAP Intelligent Robotic Process Automation \(SAP Intelligent RPA\) functionality, decision management, process visibility, and embedded AI capabilities into one intuitive low-code experience. + +You can jumpstart automation projects with hundreds of process content packages, SAP Intelligent RPA bots and connectors designed specifically to enhance the capabilities of the SAP solutions you are using. It provides a unified development experience for users of all skill levels enabling fusion teams of business experts and developers to work together and solve challenges faster. + +
+ +Job Scheduling + + + +[SAP Job Scheduling Service](https://help.sap.com/docs/job-scheduling/sap-job-scheduling-service/what-is-sap-job-scheduling-service?version=Cloud) + +SAP Job Scheduling service allows you to define and manage jobs that run once or on a recurring schedule. Use this runtime-agnostic service to schedule action endpoints in your application or long-running processes using Cloud Foundry tasks. Use REST APIs to schedule jobs, including long-running jobs asynchronously, and create multiple schedule formats for simple and complex recurring schedules. Manage jobs and tasks and manage schedules with a web-based user interface. + + + +[Application Jobs](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/application-jobs) + +Job scheduling is integrated into the product. Application Jobs can be defined, implemented and monitored. + +
+ +Application Logs + + + + + + + +[Application Logs](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/application-logs) + +SAP Task Center helps you integrate tasks into a central Application Logging is integrated into the product. Application Logs can be defined, implemented, and monitored. + +
+ +Analytics + + + +[SAP Analytics Cloud](https://help.sap.com/docs/SAP_ANALYTICS_CLOUD) + +Use embedded analytics scenarios in your application including dashboards, multi-dimensional reports and KPIs. + + + +[SAP Analytics Cloud](https://help.sap.com/docs/SAP_ANALYTICS_CLOUD) + +Use SAP Analytics Cloud on top of InA-enabled Core Data Service analytical models. Furthermore, Dragonfly-based multi-dimensional reporting can be used to integrate Embedded Analytics functionality in a component-based and SAP Fiori-native way. + +
+ +[SAP Datasphere](https://help.sap.com/docs/SAP_DATASPHERE) + +For analytics across applications use SAP Datasphere. + + + +[SAP Datasphere](https://help.sap.com/docs/SAP_DATASPHERE) + +Via the ABAP SQL Service it is possible to integrate with SAP Datasphere. Furthermore, the ABAP SQL Service in combination with ABAP ODBC Driver or the SAP HANA Cloud ABAP SDA Adapter allows data federation via external clients respectively via SAP HANA Cloud-based SAP BTP applications. + +
+ +Document Management + + + +[SAP Document Management Service](https://help.sap.com/docs/document-management-service/sap-document-management-service/what-is-document-management-service?version=Cloud) + +Document Management Service, Integration Option lets you build document management capabilities for your business applications using the integration component or the easy-to-use, reusable UI component. + +Document Management Service, Application Option is a standalone, ready-to-use web application that provides document management capabilities for your enterprise content. + +
+ +[Object Store on SAP BTP](https://help.sap.com/docs/object-store/object-store-service-on-sap-btp/what-is-object-store) + +Object Store service on SAP BTP lets you store and manage objects, which involves creation, upload, download, and deletion. This service is specific to the Infrastructure-as-a-Service layer such as Azure Blob Storage, Amazon Web Services, and Google Cloud Platform. + + + +  + +
+ +Low Code/No Code + + + +[SAP Build](https://help.sap.com/docs/SAP%20Build/9d385a1842594230993661ca78dce150/7e50fa5e724c49d1a4352848275fd3cc.html?version=Cloud) + +SAP Build is a low-code offering to accelerate development and automation. It enables you to create enterprise apps \(SAP Build Apps\), automate processes \(SAP Build Process Automation\), and design business sites \(SAP Build Work Zone\) without writing code. Accelerate development with prebuilt connectors and business content for SAP and third-party systems to integrate seamlessly. SAP Build fosters collaboration between business and development teams with built-in governance and lifecycle management. + +
+ +Service Management + + + +[SAP Service Manager](https://help.sap.com/docs/service-manager/sap-service-manager/sap-service-manager?version=Cloud) + +SAP Service Manager service allows you to consume platform services in any connected runtime environment, track the creation and management of service instances, and share services and service instances between different environments. + + + + + +
+ +Authentication + + + +[SAP Authentication and Trust Management Service](https://help.sap.com/docs/btp/sap-business-technology-platform/sap-authorization-and-trust-management-service-in-cloud-foundry-environment?version=Cloud) + +The SAP Authentication and Trust Management service lets you manage user authorizations and trust to identity providers. Identity providers are the user base for applications. + +We recommend that you use an Identity Authentication tenant, an SAP on-premise system, or a custom corporate identity provider. User authorizations are managed using technical roles at the application level, which can be aggregated into business-level role collections for large-scale cloud scenarios. + + + +[Access Management](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/access-management) + +User authorizations are managed and can be aggregated into business roles locally in SAP BTP, ABAP environment. + +
+ +[Identity Authentication](https://help.sap.com/docs/identity-authentication/identity-authentication/what-is-identity-authentication?version=Cloud) + +The Identity Authentication service provides you with controlled cloud-based access to business processes, applications, and data. It simplifies your user experience through authentication mechanisms, single sign-on, on-premise integration, and convenient self-service options. + + + +[Identity Authentication](https://help.sap.com/docs/identity-authentication/identity-authentication/what-is-identity-authentication?version=Cloud) + +The Identity Authentication service provides you with controlled cloud-based access to business processes, applications, and data. It simplifies your user experience through authentication mechanisms, single sign-on, on-premise integration, and convenient self-service options. + +Technical users for system-to-system communication are managed locally in the SAP BTP, ABAP environment. SAP BTP, ABAP environment supports mTLS and basic authentication as authentication options for technical users. + +
+ +Audit Logging + + + +[SAP Audit Log Service](https://help.sap.com/docs/btp/sap-business-technology-platform/audit-logging-in-cloud-foundry-environment?version=Cloud) + +SAP Audit Log is a core, security, and compliance-based SAP BTP service to provide means for audit purposes. The default and advanced capabilities of Audit Log Service are available for SAP BTP applications and services. + + + +[Manage Security Audit Log](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/manage-security-audit-log) + +Security audit logging is provided automatically by the SAP BTP, ABAP Environment. It can be configured by the Manage Security Audit Log administration application. + +
+ +[Read Access Logging](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/read-access-logging) + +Read Access Logging \(RAL\) is used to monitor and log read access to sensitive data. This data may be categorized as sensitive by law, by external company policy, or by internal company policy. + +
+ +Security + + + +[SAP Credential Store](https://help.sap.com/docs/credential-store/sap-credential-store/what-is-sap-credential-store) + +SAP Credential Store service provides a repository for passwords, keys and keyrings for applications that are running on SAP BTP. It enables the applications to retrieve credentials and use them for authentication to external services, or to perform cryptographic operations and TLS communication. SAP Credential Store is exposed to the applications via a REST API. + + + +[Communication Management](https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/communication-management) + +The ABAP environment offers its Communication Management. It contains a credentials store which allows the applications to perform outbound communication using the credentials for authentication to external services and TLS communication. + +
+ +Identity Management + + + +[Identity Provisioning](https://help.sap.com/docs/identity-provisioning/identity-provisioning/what-is-identity-provisioning?version=Cloud) + +The Identity Provisioning service automates identity lifecycle processes. It helps you provision identities and their authorizations to various cloud and on-premise business applications. + + + +[Identity Provisioning](https://help.sap.com/docs/identity-provisioning/identity-provisioning/what-is-identity-provisioning?version=Cloud) + +The Identity Provisioning service automates identity lifecycle processes. SAP BTP, ABAP environment supports the Identity provisioning service to provision business users and their assignment to business roles. + +
+ +Technical Оps Аutomation + + + +[Terraform Provider for SAP BTP](https://registry.terraform.io/providers/SAP/btp/latest/docs) + +The Terraform provider for SAP BTP enables you to automate the provisioning, management, and configuration of resources on SAP BTP. + + + + + +
+ +[SAP Automation Pilot](https://discovery-center.cloud.sap/serviceCatalog/automation-pilot?region=all) + +SAP Automation Pilot allows to reduce operational efforts to run your cloud applications on SAP BTP by automating them. For this, it brings catalogs of automated commands, such as around database and application lifecycle management tasks for the different runtimes of SAP BTP. Use these commands to model and run your custom scenarios, optionally combined with custom scripts. Also, you can describe your needs to let the included Generative AI feature come up with a command for you. The created commands can be triggered manually, via scheduling or externally, such as from SAP Cloud ALM. + + + + + +
+ diff --git a/docs/user-experience-design-323bd93.md b/docs/user-experience-design-323bd93.md new file mode 100644 index 0000000..c39bd7d --- /dev/null +++ b/docs/user-experience-design-323bd93.md @@ -0,0 +1,33 @@ + + +# User Experience Design + +Once you have a sufficient understanding of your users’ needs, by successfully completing the Discover phase, you can start designing the user experience of your application. + +User experience goes beyond the user interface, and covers all aspects of the interactions a user has with the application: getting the right information shown at the right time, allowing the user to get their work done with only a few clicks needed, providing a fast and accessible solution, supporting all the international languages your users use in their systems. + +A product with good **usability** gives users a good user experience. + +**Usability** is defined by the degree to which these aspects are provided to a user to get their tasks or jobs done: + +- Effectiveness + +- Efficiency + +- Ease of learning \(Intuitiveness\) + +- Error tolerance + +- Satisfaction + + +Consistency contributes to ease of learning and efficiency. + +When providing users with applications to complement or extend your SAP landscape, you will need to ensure that your applications have a similar look and feel to SAP’s standard applications, and hence provide a consistent user experience for your users. This helps to make the applications intuitive to use \(ease of learning\) and helps with efficiency, since they look and behave the same as other applications users are already familiar with. For this reason, we recommend that you follow the [SAP Fiori for Web Design Guidelines](https://experience.sap.com/fiori-design-web/). In particular, follow the [Best Practices for Designing SAP Fiori Apps](https://experience.sap.com/fiori-design-web/best-practices-for-designing-sap-fiori-apps/). + +In addition to consistency, ensure that your application is accessible, by following the guidance provided by [Accessibility in SAP Fiori.](https://experience.sap.com/fiori-design-web/accessibility-in-sap-fiori/) Also, be sure to provide language support for all relevant languages as well as providing suitable user assistance. + +When designing your application, make sure that you continue with your user research, so that you can get quick feedback about design ideas and artifacts. Iterate often, with the motto “Fail fast, fail early” – in other words, sketch out solutions, get feedback, try again, and keep on iterating until you are confident that your design is what your users need. + +For more information about user research during the design phase, have a look at the [User Research Method Cards](https://experience.sap.com/fiori-design-web/user-research-method-cards/#top) related to the Design phase. The methods outlined there contain the most commonly practiced user research methods at SAP. + diff --git a/docs/what-s-new-for-sap-btp-developer-s-guide-7cf7a39.md b/docs/what-s-new-for-sap-btp-developer-s-guide-7cf7a39.md new file mode 100644 index 0000000..03d746a --- /dev/null +++ b/docs/what-s-new-for-sap-btp-developer-s-guide-7cf7a39.md @@ -0,0 +1,998 @@ + + +# What's New for SAP BTP Developer's Guide + + + + + +**2024** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +Technical Component + + + +Environment + + + +Title + + + +Description + + + +Action + + + +Lifecycle + + + +Type + + + +Line of Business + + + +Modular Business Process + + + +Product + + + +Latest Revision + + + +Available as of + +
+ +SAP BTP Developer's Guide + + + +- Kyma +- Cloud Foundry + + + + + +New Mission: Develop a Multitenant CAP Application + + + +You can now develop multitenant CAP applications and deploy them in SAP BTP. The Develop a Multitenant CAP Application Following the SAP BTP Developer’s Guide mission includes enabling multitenancy, deploying the application in the SAP BTP, Cloud Foundry runtime and SAP BTP, Kyma runtime, and subscribing to the multitenant application. + +See [Develop a Multitenant CAP Application Following the SAP BTP Developer's Guide](https://discovery-center.cloud.sap/protected/index.html#/missiondetail/4502/4789/). + + + +Info only + + + +General Availability + + + +New + + + +Technology + + + +Not applicable + + + +  + + + +2024-10-17 + + + +2024-10-17 + +
+ +SAP BTP Developer's Guide + + + +- Kyma +- Cloud Foundry + + + + + +Get to Know the Architecting Multi-Region Resiliency for SAP BTP Use Cases Reference Architecture + + + +A link to the [Architecting Multi-Region Resiliency for SAP BTP Use Cases](https://discovery-center.cloud.sap/refArchDetail/ref-arch-multi-region-ha) reference architecture has been added to the SAP BTP Developer's Guide. It shows the multi-region high availability architecture for SAP BTP services and the applications built on SAP BTP. + +See [Developing Resilient Applications](https://help.sap.com/docs/btp/btp-developers-guide/developing-resilient-applications?version=Cloud). + + + +Info only + + + +General Availability + + + +Announcement + + + +Technology + + + +Not applicable + + + +  + + + +2024-10-15 + + + +2024-10-15 + +
+ +SAP BTP Developer's Guide + + + +- Kyma +- Cloud Foundry + + + + + +SAP Event Broker Becomes SAP Cloud Application Event Hub + + + +The name of the SAP Event Broker service has been changed to SAP Cloud Application Event Hub. + +See: + +- [Business Application Services](https://help.sap.com/docs/btp/btp-developers-guide/understanding-available-technology#loiof3641a5635504edab2c6bb84fa86a42a) + +- [What Is SAP Cloud Application Event Hub?](https://help.sap.com/docs/sap-cloud-application-event-hub/sap-cloud-application-event-hub-service-guide/what-is?locale=en-US?version=Cloud) + + + + + + +Info only + + + +General Availability + + + +Changed + + + +Technology + + + +Not applicable + + + +  + + + +2024-07-10 + + + +2024-07-10 + +
+ +SAP BTP Developer's Guide + + + +- Kyma +- Cloud Foundry + + + + + +New Option for Integrating with SAP Build Work Zone, Standard Edition + + + +You can now integrate your application with SAP Build Work Zone, standard edition through Common Data Model. For more information about the Common Data Model, see [About the Common Data Model](https://help.sap.com/docs/build-work-zone-advanced-edition/sap-build-work-zone-advanced-edition/creating-cdm-json-file-for-multi-tenancy-html5-app) and [Developing HTML5 Business Solutions as Content Providers](https://help.sap.com/docs/build-work-zone-advanced-edition/sap-build-work-zone-advanced-edition/developing-html5-apps-for-cross-subaccount-consumption). Depending on the runtime you're using, check the following tutorials: + +- For SAP BTP, Cloud Foundy runtime, see [Integrate Your Application with SAP Build Work Zone, Standard Edition](https://developers.sap.com/tutorials/integrate-with-work-zone.html). + +- For SAP BTP, Kyma runtime, see [Integrate Your Application Deployed in SAP BTP, Kyma Runtime with SAP Build Work Zone, Standard Edition](https://developers.sap.com/tutorials/integrate-with-work-zone-kymaruntime.html). + + + + + + +Info only + + + +General Availability + + + +Announcement + + + +Technology + + + +Not applicable + + + +  + + + +2024-04-10 + + + +2024-04-10 + +
+ +SAP BTP Developer's Guide + + + +- ABAP +- Kyma +- Cloud Foundry + + + + + +Change in the Structure of the SAP BTP Developer's Guide + + + +The new structure of the SAP BTP Developer's Guide now follows the design-led development process. It also now contains the development best practices introduced in the former Best Practices for SAP BTP guide, now renamed to [SAP BTP Administrator's Guide](https://help.sap.com/docs/BTP/df50977d8bfa4c9a8a063ddb37113c43/9f2bb927464e4d1ba3d13b2d79ca9bd1.html?locale=en-US&state=PRODUCTION&version=Cloud). + +See [SAP BTP Developer's Guide](https://help.sap.com/docs/btp/btp-developers-guide/btp-developers-guide?version=Cloud). + + + +Info only + + + +General Availability + + + +Announcement + + + +Technology + + + +Not applicable + + + +  + + + +2024-10-07 + + + +2024-10-07 + +
+ +SAP BTP Developer's Guide + + + +- Kyma +- Cloud Foundry + + + + + +New Mission: Develop an Enterprise-Grade CAP Application + + + +You can now develop enterprise-grade CAP applications and deploy them in SAP BTP. The Develop an Enterprise-Grade CAP Application Following the SAP BTP Developer’s Guide mission includes options for tracking changes, adding audit logs, and uploading attachments. + +See [Mission: Develop an Enterprise-Grade CAP Application Following the SAP BTP Developer’s Guide](https://help.sap.com/docs/btp/btp-developers-guide/tutorials-for-sap-cloud-application-programming-model?version=Cloud#loiob5be78656d614f91bf436d6b93b593e4). + + + +Info only + + + +General Availability + + + +New + + + +Technology + + + +Not applicable + + + +  + + + +2024-10-07 + + + +2024-10-07 + +
+ +SAP BTP Developer's Guide + + + +- ABAP +- Kyma +- Cloud Foundry + + + + + +Information About Third-Party Cookies + + + +There is now information about the usage of third-party cookies. + +See [Development Guidance](https://help.sap.com/docs/btp/btp-developers-guide/development-guidance?version=Cloud). + + + +Info only + + + +General Availability + + + +Announcement + + + +Technology + + + +Not applicable + + + +  + + + +2024-08-22 + + + +2024-08-22 + +
+ +SAP BTP Developer's Guide + + + +- Kyma +- Cloud Foundry + + + + + +New Graphic Showing the Order of the Tutorials and Missions for CAP + + + +You can now use an interactive graphic to follow the tutorials and missions related to the SAP Cloud Application Programming Model \(CAP\) and based on the Incident Management sample application. + +See [Tutorials for SAP Cloud Application Programming Model](https://help.sap.com/docs/btp/btp-developers-guide/tutorials-for-sap-cloud-application-programming-model?version=Cloud). + + + +Info only + + + +General Availability + + + +Announcement + + + +Technology + + + +Not applicable + + + +  + + + +2024-08-02 + + + +2024-08-02 + +
+ +SAP BTP Developer's Guide + + + +- Cloud Foundry + + + + + +Tutorials for Consuming Remote Services Moved to Tutorial Navigator + + + +The tutorials that show how to integrate the SAP S/4HANA Cloud Business Partner API to the Incident Management application are now moved to the Tutorial Navigator. There are two main groups depending on whether you have an SAP S/4HANA Cloud tenant, or you use a mock server: + +- [Consume Remote Services from S/4HANA Cloud in Your Full-Stack CAP Application Following the SAP BTP Developer's Guide and Deploy in SAP BTP, Cloud Foundry Runtime](https://developers.sap.com/group.sap-s4hana-consume-remote-services.html) + +- [Consume Remote Services from a Mock Server in Your Full-Stack CAP Application Following the SAP BTP Developer's Guide and Deploy in SAP BTP, Cloud Foundry Runtime](https://developers.sap.com/group.sap-mock-consume-remote-services.html) + + + + + + +Info only + + + +General Availability + + + +Announcement + + + +Technology + + + +Not applicable + + + +  + + + +2024-08-01 + + + +2024-08-01 + +
+ +SAP BTP Developer's Guide + + + +- Kyma +- Cloud Foundry + + + + + +Explore the Develop a Side-by-Side CAP-Based Extension Application Following the SAP BTP Developer’s Guide Mission + + + +There is a new mission published that is part of the hands-on materials for the SAP Cloud Application Programming Model \(CAP\). + +The mission explains how you can implement side-by-side SAP Cloud Application Programming Model \(CAP\)-based extension applications and deploy them in SAP BTP and is based on the Incident Management sample application. + +See: + +- [Tutorials for SAP Cloud Application Programming Model](https://help.sap.com/docs/btp/btp-developers-guide/tutorials-for-sap-cloud-application-programming-model?version=Cloud) + +- [Mission: Develop a Side-by-Side CAP-Based Extension Application Following the SAP BTP Developer’s Guide](https://discovery-center.cloud.sap/protected/index.html#/missiondetail/4426/4712/) + + + + + + +Info only + + + +General Availability + + + +Announcement + + + +Technology + + + +Not applicable + + + +  + + + +2024-06-03 + + + +2024-06-03 + +
+ +SAP BTP Developer's Guide + + + +- Kyma +- Cloud Foundry + + + + + +Explore the Implement Observability in a Full-Stack CAP Application Following SAP BTP Developer’s Guide Mission + + + +There is a new mission published that is part of the hands-on materials for the SAP Cloud Application Programming Model \(CAP\). + +The mission explains how you can add observability to your SAP Cloud Application Programming Model \(CAP\)-based applications and is based on the Incident Management sample application. + +See: + +- [Tutorials for SAP Cloud Application Programming Model](https://help.sap.com/docs/btp/btp-developers-guide/tutorials-for-sap-cloud-application-programming-model?version=Cloud) + +- [Mission: Implement Observability in a Full-Stack CAP Application Following SAP BTP Developer’s Guide](https://discovery-center.cloud.sap/protected/index.html#/missiondetail/4432/4718/) + + + + + + +Info only + + + +General Availability + + + +Announcement + + + +Technology + + + +Not applicable + + + +  + + + +2024-05-31 + + + +2024-05-31 + +
+ +SAP BTP Developer's Guide + + + +- ABAP + + + + + +Explore the Develop a Full-Stack RAP Application Following the SAP BTP Developer’s Guide Mission + + + +There is a new mission published that is part of the hands-on materials for ABAP Cloud: Develop a Full-Stack RAP Application Following the SAP BTP Developer’s Guide. It is based on the Travel sample application of the [Flight Reference Scenario](https://github.com/SAP-samples/abap-platform-refscen-flight) that is the best practice example for developing, deploying, and operating a full-stack application using ABAP RESTful Application Programming Model \(RAP\) and SAP Fiori. + +See [Tutorials for ABAP Cloud](https://help.sap.com/docs/btp/btp-developers-guide/tutorials-for-abap-cloud?version=Cloud). + + + +Info only + + + +General Availability + + + +Announcement + + + +Technology + + + +Not applicable + + + +  + + + +2024-04-18 + + + +2024-04-18 + +
+ +SAP BTP Developer's Guide + + + +- ABAP +- Kyma +- Cloud Foundry + + + + + +Build Your Application from Concept to Code + + + +The SAP BTP Developer's Guide now provides insights on how to deliver a cloud application from concept to a final product. The section **From Concept to Code** outlines a progressive approach that includes the following steps: + +- Identify the business problem + +- Deliver a cloud application from concept to a final product + +- Understand modularization in general + +- Understand modularization in the context of microservice-based architecture + +- Learn why the domain-driven design is an adequate approach + +- Learn about the domain-driven design starter modeling process + +- Check how complex your scenario is + + +For more information, see [From Concept to Code](https://help.sap.com/docs/btp/btp-developers-guide/from-concept-to-code?version=Cloud). + + + +Info only + + + +General Availability + + + +Announcement + + + +Technology + + + +Not applicable + + + +SAP BTP Developer's Guide + + + +2024-03-21 + + + +2024-03-21 + +
+