Skip to content

Commit

Permalink
Update from SAP DITA CMS (squashed):
Browse files Browse the repository at this point in the history
commit 8956bb836ffc3e2aed56ca3fcf4ef0dfc38c60bf
Author: REDACTED
Date:   Wed Apr 10 11:12:46 2024 +0000

    Update from SAP DITA CMS 2024-04-10 11:12:46
    Project: dita-all/ktj1709647758412
    Project map: 70ba5157e83045a1b0358310c2a3416f.ditamap
    Output: loio76c486d4b83b48f39289c7c52ca024b2
    Language: en-US
    Builddable map: 078455e002054fe1a1fbed95b658fd0e.ditamap

commit ca0d0ad1ab8e2ddbfd92f65cdf9d174060ce0cc1
Author: REDACTED
Date:   Wed Apr 10 11:04:15 2024 +0000

    Update from SAP DITA CMS 2024-04-10 11:04:15
    Project: dita-all/wyj1697728549568
    Project map: 70ba5157e83045a1b0358310c2a3416f.ditamap
    Output: loio76c486d4b83b48f39289c7c52ca024b2
    Language: en-US
    Builddable map: 078455e002054fe1a1fbed95b658fd0e.ditamap

commit c8fe83bcfb8bfb890540b2af2f3d4300f32bd580
Author: REDACTED
Date:   Tue Apr 9 12:15:56 2024 +0000

    Update from SAP DITA CMS 2024-04-09 12:15:56
    Project: dita-all/ktj1709647758412
    Project map: 70ba5157e83045a1b0358310c2a3416f.ditamap
    Output: loio76c486d4b83b48f39289c7c52ca024b2
    Language: en-US
    Builddable map: 078455e002054fe1a1fbed95b658fd0e.ditamap

##################################################
[Remaining squash message was removed before commit...]
  • Loading branch information
ditaccms-bot committed Apr 10, 2024
1 parent 51758da commit 62ea354
Show file tree
Hide file tree
Showing 45 changed files with 1,672 additions and 0 deletions.
4 changes: 4 additions & 0 deletions docs/abap-cloud-9aaaf65.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<!-- loio9aaaf650d02e42afba0e4b09e2991d78 -->

# ABAP Cloud

4 changes: 4 additions & 0 deletions docs/abap-cloud-roadmap-48150e1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<!-- loio48150e1f8f0345549411454dfb880181 -->

# ABAP Cloud Roadmap

4 changes: 4 additions & 0 deletions docs/abap-end-to-end-development-process-f3641a5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<!-- loiof3641a5635504edab2c6bb84fa86a42a -->

# ABAP: End-to-End Development Process

98 changes: 98 additions & 0 deletions docs/add-user-interface-9f1d42e.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
<!-- loio9f1d42ec74e7438db9771a3176ccb7ff -->

# Add User Interface

SAPUI5 has guidelines for a wide range of developers and SAP Fiori is a set of design and guideline choices using SAPUI5.

If it is a new standard project, use SAPUI5 or SAP Fiori as it has the complete set of controls and provides the best support.

If a project is using HTML or an External framework for example it is a UI that has been part of a company that was acquired, use a micro frontend framework like Luigi to integrate with other pages, Launchpad, and others, and slowly migrate to SAPUI5. To ease the migration or if the UI will not be further developed, then SAPUI5 Provides CSS Libraries, reusable web components and guidance for a few frameworks to match the visual style and guidelines.



<a name="loio9f1d42ec74e7438db9771a3176ccb7ff__section_mf3_sl5_lxb"/>

## Recommendations When Using SAPUI5

When usign SAPUI5, consider the following recommendations:

- [When to Use SAPUI5 and OpenUI5](https://sdk.openui5.org/topic/5982a9734748474aa8d4af9c3d8f31c0)

- [Reusing UI Parts: Fragments](https://sdk.openui5.org/topic/36a5b130076e4b4aac2c27eebf324909)

- [Folder Structure of Your UI Project: Where to Put Your Files](https://sdk.openui5.org/topic/003f755d46d34dd1bbce9ffe08c8d46a)

- [Modules for Reusing JavaScript Code](https://sdk.openui5.org/topic/91f23a736f4d1014b6dd926db0e91070)

- [Development Model: Model View Controller](https://sdk.openui5.org/topic/91f233476f4d1014b6dd926db0e91070)

- [Communicating Between Model and View: Data Binding](https://sdk.openui5.org/topic/68b9644a253741e8a4b9e4279a35c247)

- [Providing Error, Warning, and Info Messages](https://sdk.openui5.org/topic/62b1481d3e084cb49dd30956d183c6a0)

- [Routing and Navigation](https://sdk.openui5.org/topic/3d18f20bd2294228acb6910d8e8a5fb5)

- [Optimizing Applications](https://sdk.openui5.org/topic/2f492c438a16427e8f84d8436ea9cf77), [Speeding Up Applications](https://sdk.openui5.org/topic/408b40efed3c416681e1bd8cdd8910d4), and [Avoiding Common Performance Issues](https://sdk.openui5.org/topic/966d67c8cc5046419d1b35556cd9e447)

- [Testing UI Applications](https://sdk.openui5.org/topic/7cdee404cac441888539ed7bfe076e57)

- [Accessibility Features](https://sdk.openui5.org/topic/322f55d0cf1e4b459cc1911c899b7a5f), [Stable IDs](https://sdk.openui5.org/topic/f51dbb78e7d5448e838cdc04bdf65403), and [Accessibility Aspects for Application Development](https://sdk.openui5.org/topic/03b914b46e624b138a6fb1b7cf2049ae)

- [Theming](https://sdk.openui5.org/topic/497c27a8ee26426faacd2b8a1751794a)

- Avoing [Coding Issues](https://sdk.openui5.org/topic/387787232c214b42954f18c93a28560a) and [Security Issues](https://sdk.openui5.org/topic/91f3d8706f4d1014b6dd926db0e91070)




<a name="loio9f1d42ec74e7438db9771a3176ccb7ff__section_g4s_445_lxb"/>

## Issues When Not Using SAPUI5

These are the issues that you have to consider if you are not using SAPUI5:

- Custom controls break consistency.

- Extensibility is defined for SAPUI5 and would be different for other frameworks and may require knowledge of these frameworks.

- Support and stable releases for a longer duration are provided by SAPUI5 compared to the other frameworks.

- SAPUI5 ensures a product standard support on application level. The Web Components and Component Toolkits for the different Web UI Frameworks ensure a product standard compliance on UI element level.

- For LC/NC support, only SAPUI5 is supported.




<a name="loio9f1d42ec74e7438db9771a3176ccb7ff__section_kr3_fp5_lxb"/>

## SAP Fiori Guidelines

Use the following guidelines when designing and implementing your UI appication:

- [Which UI Technology Supports Your Platform](https://experience.sap.com/fiori-design-web/sap-fiori/)

- [SAP Fiori Design Principles](https://experience.sap.com/fiori-design-web/design-principles/), [Guidelines for Designing Cross-Platform User Interfaces](https://experience.sap.com/fiori-design-web/responsiveness-adaptiveness/), and [Guidelines for Different Platforms](https://experience.sap.com/fiori-design/)

- [Accessibility Guidelines](https://experience.sap.com/fiori-design-web/accessibility-in-sap-fiori/)

- [Develop SAP Fiori Applications with SAP Fiori Tools](https://help.sap.com/docs/SAP_FIORI_tools/17d50220bcd848aa854c9c182d65b699/f09752ebcf63473e9194ea29ca232e56.html)




<a name="loio9f1d42ec74e7438db9771a3176ccb7ff__section_x1g_n5y_zxb"/>

## Reference Information

For more information, use the following resources:

- [SAPUI5 Demokit](https://sapui5.hana.ondemand.com/sdk/#/topic)

- [SAP BTP UI Technology Guideline](https://sap.sharepoint.com/teams/UIGuideline/Shared%20Documents/Forms/AllItems.aspx?id=%2Fteams%2FUIGuideline%2FShared%20Documents%2FGeneral%2FUITechnologyGuideline%2Epdf&parent=%2Fteams%2FUIGuideline%2FShared%20Documents%2FGeneral)

- [SAP Fiori tools](https://help.sap.com/docs/SAP_FIORI_tools)

- [SAP Fiori for Web](https://experience.sap.com/fiori-design-web/)


4 changes: 4 additions & 0 deletions docs/analytical-application-b845c85.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<!-- loiob845c859efae4e319b9c95e10c250efe -->

# Analytical Application

10 changes: 10 additions & 0 deletions docs/automated-sap-btp-instrastructure-setup-6dd97e1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!-- loio6dd97e11cae44afa809351e1222aafd8 -->

# Automated SAP BTP Instrastructure Setup

Terraform is the de-facto industry standard for infrastructure as code with more than 3000 providers. With the Terraform provider for SAP BTP, you can now use this standard to create Terraform scripts that set up your SAP BTP landscapes. Given the nature of Terraform, it is even possible to add non-SAP infrastructure to those scripts if the infrastructure provider offers a Terraform provider as well.

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 [Terraform Provider for SAP BTP](https://registry.terraform.io/providers/SAP/btp/latest/docs).

Currently, the Terraform provider for SAP BTP is available for non-productive use and SAP is working with several customers on shaping the first release for productive use. You can check out some of the Terraform scripts in a samples repository in the [GitHub repository for the Terraform Provider for SAP BTP](https://github.com/SAP-samples/btp-terraform-samples).

36 changes: 36 additions & 0 deletions docs/basic-platform-setup-3b774f8.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!-- loio3b774f8573ce47558b3f14335d4fa22e -->

# Basic Platform Setup

Before you begin developing your applications, make sure your organizational and landscape setup is appropriate for managing their lifecycles.



<a name="loio3b774f8573ce47558b3f14335d4fa22e__section_ccf_l4k_bzb"/>

## 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 Best Practices for SAP BTP guide.



<a name="loio3b774f8573ce47558b3f14335d4fa22e__section_bds_44k_bzb"/>

## 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 Best Practices for SAP BTP guide.



<a name="loio3b774f8573ce47558b3f14335d4fa22e__section_ln1_trk_bzb"/>

## 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.

13 changes: 13 additions & 0 deletions docs/continuous-integration-and-continuous-delivery-d973132.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!-- loiod973132df87c427ab3113442fb38bdbc -->

# Continuous Integration and Continuous Delivery

You can get basic knowledge for setting up and implementing continuous integration and delivery processes together with an overview of the concepts and principles of continuous integration and delivery, so you can plan your own continuous integration and delivery process. See:

- [Basic Concepts and Principles](https://help.sap.com/docs/CICD_OVERVIEW/ee5a61247061455ab232c19179fe4c3b/af68ca6dddda47dd82782c68fd390f35.html?version=Cloud)

- [Continuous Integration and Continuous Delivery Processes](https://help.sap.com/docs/CICD_OVERVIEW/ee5a61247061455ab232c19179fe4c3b/6129d7967f124436a9c71e29d9a05e53.html?version=Cloud)


You can also learn about the different solutions that SAP offers at the moment that will help you apply continuous integration and delivery in your software development. See [SAP Solutions for Continuous Integration and Delivery](https://help.sap.com/docs/CICD_OVERVIEW/8cacec64ed854b2a88e9a0973e0f97a2/e9fa320181124fa9808d4446a1bf69dd.html?version=Cloud).

43 changes: 43 additions & 0 deletions docs/deploy-45d5acf.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<!-- loio45d5acf602064061843da43f0b800e1e -->

# Deploy

SAP 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).



<a name="loio45d5acf602064061843da43f0b800e1e__section_k1z_rrv_czb"/>

## 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 Continuous Delivery](continuous-integration-and-continuous-delivery-d973132.md) pipeline \(such as being 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).



<a name="loio45d5acf602064061843da43f0b800e1e__section_knx_xrv_czb"/>

## Deploy in Kyma Runtime

Like Kubernetes, Kyma is a 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).

If you want to perform an automated deployment via pipeline, SAP Continuous Integration and Delivery has a ready-to-use pipeline for CAP on SAP BTP, Kyma runtime. See [Continuous Integration and Continuous Delivery](continuous-integration-and-continuous-delivery-d973132.md).

4 changes: 4 additions & 0 deletions docs/deploy-d7aec3c.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<!-- loiod7aec3cb76c24cc8b4f1869633bfdfe7 -->

# Deploy

54 changes: 54 additions & 0 deletions docs/design-314ae3e.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<!-- loio314ae3eac1244588b15dd146f1aa0a51 -->

# Design



<a name="loio314ae3eac1244588b15dd146f1aa0a51__section_c5g_mb3_tyb"/>

## 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 closely as possible.



<a name="loio314ae3eac1244588b15dd146f1aa0a51__section_c2s_mb3_tyb"/>

## 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.



<a name="loio314ae3eac1244588b15dd146f1aa0a51__section_ynz_z43_tyb"/>

## 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 "")

50 changes: 50 additions & 0 deletions docs/design-a-multitenant-application-1ac614d.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<!-- loio1ac614dd9c2a4f05957096e86de4931c -->

# 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 following types:

- 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).

Loading

0 comments on commit 62ea354

Please sign in to comment.