orkungedik/SAP-basis-dataset huggingface dataset:
## 4.2.13.8.6.3  Configuring the Receiver
## Context
Create a new communication arrangement representing a consumer on the receiver side.
## Outline:
- Create a new communication arrangement.
- Create a new communication system.
- Mark checkbox Inbound Only
- Set Event Exchange Infrastructure slider to On .
- Add the SAP\_COM\_0A23 receiver event channel.
- Create a new inbound user.
- Save the communication system.
- Save the communication arrangement.
- Open the receiver channel to see all inbound topics listed.
## Procedure
1. Open the SAP Fiori launchpad of the receiver system.
2. In the Communication Management section, open Communication Arrangements .
3. Choose the New button.
4. Select a suitable consumption scenario.
5. Enter an arrangement name and choose Create .
The communication arrangement editor is opened.
6. In the Common Data section, next to the Communication System field, choose New to create a new communication system.
The communication system editor is opened.
7. Provide a System ID and a System Name .
You can choose any system ID and name. For example, you can use the same as for the communication arrangement for both ID and name.
8. Choose Create .
The new Communication System is opened.
9. In the Technical Data section, under General , mark the Inbound Only checkbox.
10. In the OAuth 2.0 Settings section, set the Event Exchange Infrastructure slider to On .
11. In the Event Exchange Infrastructure section, choose the + symbol on the top right to add an event channel.
12. Select the SAP\_COM\_0A23 receiver event channel you created earlier. (See: Creating the Receiver Channel SAP\_COM\_0A23 [page 1138])
13. In the section Users for Inbound Communication , choose the + symbol on the right to create a new user. You can select an existing user from the value help or create a new one. To create a new user, proceed as follows:
- a. For the Authentication Method , select User Name and Password .
- b. Leave the User Name/Client ID field blank and choose New User .
The Create Communication User editor is opened.
- c. Enter a User Name and a Description .
- d. Enter a Password or choose Propose Password and save it for later.
- e. Choose Create .
- f. Choose OK in the New Inbound Communication User popup window.
A new inbound user is created and added to the communication system.
14. Choose Save in the Communication System creation window.
15. Choose Save in the Communication Arrangement window.
## Results
In the receiver channel, all defined inbound topics bindings are now displayed. You can now proceed to the following topic to syncronize the sender with the receiver channel.
## 4.2.13.8.6.4  Synchronizing Sender and Receiver Channels
## Context
## Outline:
- Open sender channel, outbound topic bindings.
- Choose button Overwrite with remote topic bindings . The available outbound topics are called from the receiver and set up automatically. Sender and receiver are now synchronized.
- Test your connection: Go to Event Monitor . Mark your sender channel. Choose Produce Test Event . Refresh the page.
## Procedure
1. Open the SAP Fiori launchpad of the sender system.
2. Open the app Enterprise Event Enablement - Configure Channel Binding .
3. Open your sender channel.
The Outbound Topic Bindings list is empty if it hasn't been synchronized before.
4. Choose the Overwrite with remote topic bindings button on the top right.
The available outbound topics are called from the receiver channel and set up automatically in the sender channel.
<!-- image -->
5. [Optional] To test your connection, go to the Event Monitor .
- a. Mark your sender channel and choose Produce Test Event .
- b. Refresh the page.
The test event is counted in the column In Process Events column.
## 4.2.13.8.7  Configuration of Event Publishing and Event Consumption Scenarios
You can define which event types shall be published or consumed using a connection defined through the communication arrangement. Each event type is assigned to one topic. Topics form a logical tree to organize events, such as a folder hierarchy in a file system. Thus, the topics appear as strings that consist of multiple segments and are separated by one defined delimiter, similar to file paths.
##  Note
Only events, which are bound to a connection, can be exchanged between an ABAP environment system and the SAP Business Technology Platform.
The following steps are required to configure event publishing and event consumption scenarios:
Event Publishing [page 1143]
Event Consumption [page 1148]
Event Metadata [page 1153]
## 4.2.13.8.7.1  Event Publishing
The following chapters describe how to publish events to a consumer using outbound event topics. You can also use filters to determine the type of events that are published.
##  Note
Event publishing is only relevant for the integration with SAP Event Mesh and Advanced Event Mesh. It is not relevant for the integration with SAP Cloud Application Event Hub.
## 4.2.13.8.7.1.1  Maintain Outbound Event Topics
## Prerequisites
- You have established a connection through the configuration of the communication arrangement in the previous steps. For more information, refer to Communication Arrangements [page 1125].
- The Enterprise Event Enablement - Configure Channel Bindings app is visible. If the Enterprise Event Enablement - Configure Channel Bindings app is not visible, add the Enterprise Event Enablement business catalog to the SAP\_BR\_ADMINISTRATOR role using the Maintain Business Roles app. The change in your role becomes effective after you have logged out and logged in again.
## Context
You can configure outbound event topic bindings for publishing events.
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment system.
2. In the Communication Management app, select the Enterprise Event Enablement - Configure Channel Binding app.
3. Choose a channel name (created in Creating Communication Arrangements [page 1125]).
4. In the Outbound Topic Bindings tab, you can do the following:
Option
## Description
| Create a new topic.       | 1. Choose Create . 2. Enter a topic name. 3. Choose Create to save your entries. The new topic will be listed in the Topic table.   |
|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
| Delete an existing topic. | 1. Select the checkbox of the topic you want to delete. 2. Choose Delete .                                                          |
| Define table parameters.   | Click the gear icon to define the table parameters.   |
|----------------------------|-------------------------------------------------------|
## Next Steps
Events reside in an internal queue of the enterprise event enablement. Once the processing of an event is finalized, it is deleted from the queue. The processing of an event is finalized if:
| Status: Ok     | The event has been successfully published according to the chosen quality of service.   |
|----------------|-----------------------------------------------------------------------------------------|
| Status: Failed | The enterprise event enablement failed to publish the event after 5 attempts.           |
## Related Information
Queue Subscriptions [page 1130]
## 4.2.13.8.7.1.2  Maintain Filters for Outbound Event Topics
You can filter the events that should be sent via a channel by defining filters per channel and topic.
## Prerequisites
- You have created an outbound event topic as described here: Maintain Outbound Event Topics [page 1144]
-  Note
Event filters for event topics containing wildcards are not supported.
## Context
You can define filters for context and extension context attributes defined for the corresponding event type. In the RESTful Application Programming framework (RAP), you can define a custom context attribute for your RAP business object with the CDS annotation @event.context.attribute .
For more information on the CDS annotation, see: Event Annotations
The custom defined context attribute is then available as a property in the event filter creation wizard in the Enterprise Event Enablement - Configure Channel Binding app.
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment system.
2. In the Communication Management app, select the Enterprise Event Enablement - Configure Channel Binding app.
3. Choose a channel.
In the Outbound Topics table, the column Has Event Filters indicates whether filters are defined for the outbound topic.
4. Open an Outbound Topic .
Choose the Event Filter tab to display existing filters for the outbound topic.
5. To add a filter to the outbound topic, choose Create Event Filter .
6. On the Create Event Filter dialog box, proceed as follows:
- a. Select a Property from the dropdown menu. The properties available in the dropdown menu are defined by the extension attributes.
- b. Choose an Option from the dropdown menu to define the filter behavior.
- c. Define a Low Value . Y ou can use the value help, if available for the respective property.
- d. If applicable, define a High Value .
- e. Choose Create Event Filter .
The new filter is added to the outbound topic. In accordance with exisiting filters, the new filter is added with an OR logic for inclusive options such as EQUALS . New filters are added with an AND logic for exclusive options such as NOT EQUALS . Different Properties are always AND connected.
To delete a filter from an outbound event topic, select one or more filters and choose the Delete button.
##  Note
For more information on the usage of event filters, refer to 3343266 .
## 4.2.13.8.7.1.3  Using Dynamic Topics in Advanced Event Mesh
You can use dynamic topics for routing and filtering outbound events in the Advanced Event Mesh (AEM) .
## Prerequisites
##  Note
Dynamic topics are available in the Advanced Event Mesh (AEM) only.
For more information about the use of events in the context of AEM, see Understanding Topics .
- You have created an outbound event topic as described here: Maintain Outbound Event Topics [page 1144]
- You have implemented event.context.attribute annotations to define dynamic topic segments for the given event type, as described in Event Annotations.
- In addition, you have implemented event.context.position annotations to specify the position of the corresponding dynamic topic segment relative to the other dynamic segments.
## Context
Dynamic topics make use of the context attribute annotations to extend the corresponding event topic with further dynamic segments, derived from the corresponding annotated payload field. Dynamic topics enable detailed event filtering and routing, ensuring that events are delivered only to the relevant components, improving efficiency and reducing unnecessary processing.
The Enterprise Event Enablement framework (EEE) enables the usage of dynamic topics for the Advanced Event Mesh integration (AEM). A possible example for such a dynamic topic would be as follows:
sap/custom/MySalesOrder/v1/{companyCode}/{SalesOrderID}
```
--------------- properties -----------------------------to: sap.custom.MySalesOrder.Created.v1.de.10002 content-type: application/cloudevents+json; charset=utf-8 ----------- application-properties ---------------------------------- application-data --------------------------{ "specversion" : "1.0", "type": "sap.custom.MySalesOrder.Created.v1" "xsapcompanycode": "de" "xsapsalesorder": 1002, "data": { ... } }
```
##  Note
Note that the dynamic topic segment values are also part of the CloudEvent header as defined in the event.context.attribute annotation.
## Procedure
To enable dynamic topics, proceed as follows:
1. Log on to the SAP Fiori launchpad.
2. In the Communication Management app,open the Enterprise Event Enablement - Configure Channel Binding app.
3. Select the corresponding AEM event channel.
4. Choose the Enable Dynamic Topics button on the top right.
##  Note
When you enable dynamic topics, topics containing wildcards will be resolved, as dynamic segments are specific to a single event topic.
In the Outbound Topic Bindings section, the outbound topic bindings are now displayed with the derived dynamic attributes in curly brackets.
<!-- image -->
## Example
sap/custom/MySalesOrder/v1/{companyCode}/{SalesOrderID}
The Use Dynamic Topics indicator on the top left changes to Yes .
5. To disable dynamic topics, choose the Disable Dynamic Topics button on the top right.
## 4.2.13.8.7.2  Event Consumption
Event consumption can be configured manually for some event types (for example subscription billing). These configuration options are described in this section. For all other event types, follow the steps described in Creating an Event Consumption Model.
You can configure the consumption of events. To do so, proceed as follows:
```
Configuring Inbound Event Topic Bindings [page 1148] Configuring Subscriptions [page 1150] Simulating Consumption [page 1152]
```
## 4.2.13.8.7.2.3  Simulating Consumption
## Prerequisites
- The Enterprise Event Enablement - Configure Channel Bindings app is visible. If the Enterprise Event Enablement - Configure Channel Bindings app is not visible, add the Enterprise Event Enablement business catalog to the SAP\_BR\_ADMINISTRATOR role using the Maintain Business Roles app. The change in your role becomes effective after you have logged out and logged in again.
- You have an inbound topic binding with status Ok in your Inbound Topics table.
## Context
To allow you to test your consumer implementation, you can use the Simulate Consumption action. Then a dummy event of a given Topic Consumer will be sent to its consumer implementation.
## Procedure
1. Log on to the SAP Fiori launchpad in the SAP S/4HANA Cloud system.
2. In the Communication Management app, select the Enterprise Event Enablement - Configure Channel Binding app.
3. Choose a channel name (created in Creating Communication Arrangements [page 1125]).
4. Select an Inbound Topic .
5. If you have no Inbound Topic with Status: Ok , refer to Configuring Inbound Event Topic Bindings [page 1148]
5. Select the radio button of the Topic Consumer you want to simulate consumption with.
6. Choose Simulate Consumption .
## Results
In case of a wildcard in the topic, the wildcard is resolved and events for all resolved topics are created. The dummy events are sent to the corresponding consumer implementation. Then the simulated event is retrieved from the internal event queue and the status is checked. A short message is raised, informing the user on the success or failure of the simulation.
## 4.2.13.8.7.3  Event Metadata
## Prerequisites
- You have established a connection through the configuration of the communication arrangement in the previous steps. For more information, refer to Communication Arrangements [page 1125].
- The Enterprise Event Enablement - Configure Channel Bindings app is visible. If the Enterprise Event Enablement - Configure Channel Bindings app is not visible, add the Enterprise Event Enablement business catalog to the SAP\_BR\_ADMINISTRATOR role using the Maintain Business Roles app. The change in your role becomes effective after you have logged out and logged in again.
## Context
The enterprise event enablement is applying the CloudEvents specification (https:/ /cloudevents.io ) for the runtime representation of an event. CloudEvents is a specification for describing event data in common formats to ensure interoperability across services, platforms, and systems.
You can find all released SAP events on the SAP Business Accelerator Hub (https:/ /api.sap.com ). The SAP Business Accelerator Hub is the central catalog of SAP and selected partner APIs to search, discover, test, and consume these APIs to build extensions or integrations using the SAP Business Technology Platform.
The enterprise event enablement applies the AsyncAPI specification to describe a catalog of events.
##  Note
You can find the corresponding AsyncAPI event catalogs for released events in the Event Resources section of the individual released events on the SAP Business Accelerator Hub. This specification is required for example to create an event consumption model.
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment system.
2. In the Communication Management app, select the Enterprise Event Enablement - Configure Channel Binding app.
3. Choose a channel name (created in Creating Communication Arrangements [page 1125]).
4. Select Event Metadata .
## Next Steps
In the Event Metadata tab, you can view the metadata for the event types selected on the Outbound Topic Bindings tab for event publishing. This metadata contains the definition of the structure of all event types, which you have selected for publishing from the ABAP environment system. The metadata is represented as an AsyncAPI catalog of events and can contain released SAP events as well as customer events. You can also use the AsyncAPI representation for creating your event consumption model.
## Related Information
CloudEvents Context Attributes [page 1120] Creating an Event Consumption Model
## 4.2.13.8.8  Read Access Logging (RAL)
With Read Access Logging (RAL) for events, you can monitor and log read access to sensitive data because of diverse data privacy regulations. The categorization of sensitive data can vary: it can depend on your country's code of law or on your external or internal company policies. RAL thus helps you to find out who had access to sensitive data, in which way and at what time.
RAL is offered for different channels. A channel is a way for data to leave the system, for example dynpros of Web services. The enterprise event enablement is another channel that is supported in the central RAL monitor.
For more information on RAL in the context of SAP NetWeaver, see Read Access Logging.
##  Note
Using RAL requires system resources. This can have a strong impact on your system performance, depending on the number and type of logs.
Events can be logged for two scenarios:
- Read access of events during support (monitoring) This is the case when the event monitor was opened by SAP support to check the payload of sent or consumed events.
- Read access of events during sending (runtime) This is the case when an outbound binding exists and an event is to be sent to the respective event exchange infrastructure by the enterprise event enablement. For more information, refer to Configuration of Event Publishing and Event Consumption Scenarios [page 1143].
You can define which properties of an event are to be logged to avoid that all events are logged. Consider this carefully as it may affect the system performance.
The following types can be logged once a corresponding configuration exists:
| Channel Fields   | Condition Fields           | Access Context                                                                                                                   |
|------------------|----------------------------|----------------------------------------------------------------------------------------------------------------------------------|
|                  | Cloud Event Context Fields | • Source • Type • Id • Time                                                                                                      |
|                  | Payload Types              | Payload types of a selected producer or consumer. A producer or consumer is a set of event types belonging to a business entity. |
| System Fields    | UserName                   |                                                                                                                                  |
|                  | Screen Title               |                                                                                                                                  |
|                  | Transaction code           |                                                                                                                                  |
## 4.2.13.8.8.1  Searching for Existing Configurations
## Prerequisites
The key user must have the business role SAP\_BR\_ADMINISTRATOR (Administrator) that contains the business catalog SAP\_CORE\_BC\_COM (Communication Management).
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment system.
2. In the Read Access Logging Configuration app, select the Administration tab.
3. Choose Configuration .
4. Choose Enterprise Event Enablement as Channel .
5. Specify your Search Criteria :
- Registration ID
- Registration Version
- Repository ID
- Event Scenario
- Description
- State
6. Click Search .
## Results
A list of existing configurations is displayed.
## 4.2.13.8.8.3  Defining Conditions for Configurations
## Prerequisites
You've created a configuration in the Read Access Logging Configuration app. Refer to Creating Configurations [page 1156].
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment system.
2. In the Read Access Logging Configuration app, select the Administration tab.
3. Choose Configuration .
4. Choose Enterprise Event Enablement as Channel .
5. Search for your configuration in the Search Criteria section. Refer to Searching for Existing Configurations [page 1155].
6. Click the Edit Configuration icon of the configuration you want to define a condition for.
7. In the Conditions section, click the button with the tooltip Create Condition .
- a. Define the Condition .
- b. Define the Description .
- c. Click Create .
## Next Steps
Adding conditions is recommended to specify configurations (refer to Adding Expressions to Conditions [page 1158]). This can influence the system performance depending on the logging scenario you have chosen. If you have chosen read access of events during support (monitoring), the system performance is improved. If you have chosen read access of events during sending (runtime), the system performance can become worse.
## 4.2.13.8.8.4  Adding Expressions to Conditions
## Prerequisites
You've created a condition for a configuration in the Read Access Logging Configuration app. Refer to Defining Conditions for Configurations [page 1158].
## Context
Once you've created a condition and you want to log events only in a certain context, like at runtime, add an expression to your condition.
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment system.
2. In the Read Access Logging Configuration app, select the Administration tab.
3. Choose Configuration .
4. Choose Enterprise Event Enablement as Channel .
5. Search for your configuration in the Search Criteria section. Refer to Searching for Existing Configurations [page 1155].
6. Click the Edit Configuration icon of the configuration you want to define a condition for.
7. In the Conditions section, select the condition you want to add expressions for.
8. Click Create in the Expressions section of the condition.
- a. Define a name for the Expression .
- b. Choose Create .
The Attributes and Select options are displayed in the Details of Expression section.
9. Drag and drop the Access Context condition field from the Field List Channel Fields Condition Fields to the Select options section under Details of Expression .
10. Click Save as Active to activate your configuration including assigned conditions.
## Related Information
Defining Configurations in Read Access Logging
## 4.2.13.8.8.5  Monitoring Logged Events
## Prerequisites
The user must have the business role BR\_DATA\_PRIVACY\_SPECIALIST (Data Privacy Specialist). If the user doesn't have the business role BR\_DATA\_PRIVACY\_SPECIALIST , add the business role in the Maintain Business Roles app.
Using the business role BR\_DATA\_PRIVACY\_SPECIALIST , you can block, unblock, and display blocked personal data. Refer to Access Control and Data Protection.
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment system.
2. Select the Read Access Logging: Monitor app.
3. Choose Raw Database as Source in the Data Source section.
4. Specify your search criteria:
- Channel
- Date/Time
- User Name
- Application Comp.
- Software Component
5. Specify the Maximum Number of Hits .
6. Choose Search .
A list of logs according to the search criteria is displayed.
## 4.2.13.8.9  Message Monitoring
The /IWXBE\_TECHNICAL interface allows you to receive messages in case a technical error occurs. You can monitor the messages using the Message Monitoring for Integration Experts app, provided by the SAP Application Interface Framework (SAP AIF).
To display messages in the Message Monitoring for Integration Experts app, proceed as follows:
Assigning Recipients to Users [page 1160]
Assigning users to the SAP Application Interface Framework [page 1162]
Using Message Monitoring [page 1163]
## 4.2.13.8.9.1  Assigning Recipients to Users
## Prerequisites
The user must have the business role BR\_CONF\_EXPERT\_BUS\_NET\_INT (Configuration Expert - Business Network Integration). If the user doesn't have the business role BR\_CONF\_EXPERT\_BUS\_NET\_INT , add the business role in the Maintain Business Roles app.
## Context
Before you can display messages in the Message Monitoring for Integration Experts app, you must assign a user to a specific recipient.
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment system.
2. Open the Assign Recipients to Users app. A list containing all users that are already assigned to recipients is displayed.
3. Click the + in the bottom row of the left-hand side of the screen.
##  Note
If you want to add additional recipients to a user who is already assigned to a recipient, use the Search Users with Assigned Recipients search field.
4. On the Add User dialog box, enter a user name or a user ID.
5. Choose Add .
- a. In the Assign Recipients dialog box, enter the following:
- Namespace : /IWXBE
- Recipient Name : RECIPIENT\_CHANNEL
- Message Type : Technical Error
- b. Choose Assign to save the user assignment. The assigned recipient is now displayed in the Recipients for User list.
## Next Steps
If you want to assign additional recipients to the user, click the Assign button on the right hand side of the Recipients for User list and repeat the steps.
## 4.2.13.8.9.2  Assigning users to the SAP Application Interface Framework
## Prerequisites
The user must have the business role BR\_CONF\_EXPERT\_BUS\_NET\_INT (Configuration Expert - Business Network Integration). If the user doesn't have the business role BR\_CONF\_EXPERT\_BUS\_NET\_INT , add the business role in the Maintain Business Roles app.
## Context
In order to receive alerts for the consumption with the given event consumption model, you can assign your user to the SAP Application Interface Framework interface by a corresponding recipient.
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment system.
2. Open the Assign Recipients to Users app.
3. A list containing all users that are already assigned to recipients is displayed.
3. Click the + in the bottom row of the left-hand side of the screen.
##  Note
If you want to add additional recipients to a user who is already assigned to a recipient, use the Search Users with Assigned Recipients search field.
4. On the Add User dialog box, enter a user name or a user ID.
5. Choose Add .
- a. In the Assign Recipients dialog box, enter the following:
- Namespace : /IWXBE
- Recipient Name : Choose the generated recipient name. The generated recipient name is a &lt;generic\_hash&gt; with the description &lt;event\_consumption\_model\_id&gt; &lt;event\_consumption\_model\_version&gt; ##GENERATED.
- Message Type : Choose a Message Type .
##  Tip
There is also a general monitoring case with the Recipient Name RECIPIENT\_CHANNEL . Refer to Assigning Recipients to Users [page 1160].
- b. Choose Assign to save the user assignment. The assigned recipient is now displayed in the Recipients for User list.
## Next Steps
If you want to assign additional recipients to the user, click the Assign button on the right hand side of the Recipients for User list and repeat the steps.
## 4.2.13.8.9.3  Using Message Monitoring
## Context
Before you can display messages in the Message Monitoring for Integration Experts app, you must assign a user to a specific recipient. Refer to Assigning Recipients to Users [page 1160].
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment system.
2. Open the Message Monitoring for Integration Experts app.
- a. Enter the following parameters:
- Time : Define the period of time to be considered.
- From : Specify the period of time.
- To : Specify the period of time.
- Interface : Enter /IWXBE\_TECHNICAL or select /IWXBE\_TECHNICAL from the combo box.
- Additional Interface Options : Specify the interface that should be displayed.
- b. Choose Go .
The Message Status Overview screen displays your interfaces and all error messages with the following states:
- All
- Error
- Warning
- Success
- In Process
- Canceled
## Next Steps
You can click the number of received messages of a specific status to display the corresponding list of messages. Select a message from the Log Details section to display the log message details on the righthand side of the screen. If there is a correlation between the error message and the related communication arrangement, the Display Communication Arrangement link is displayed in the Functions section. Click the link to open the Communication Arrangements app and to display the related communication arrangement.
##  Note
You need authorization to open the Communication Arrangements app. For more information, refer to Creating Technical Communication User [page 1119].
## Related Information
Message Monitoring for Integration Experts
## 4.2.14  SaaS Applications and Multitenancy
Find out how to develop and operate SaaS applications by using add-ons in the ABAP environment, see Developing and Operating SaaS Applications [page 1166].
Learn more about multitenancy in the ABAP environment, the multitenant application, tenant business types and lifecycle, and see the multitenancy development guideline: Multitenancy in the ABAP Environment [page 1280].
Find out how to use the Landscape Portal, the central tool that allows providers to perform system administration tasks and lifecycle management operations.
Read about how SaaS applications can be extended, see Extending SaaS Applications [page 1293].
## 4.2.14.1.4  Concepts
Learn more about the system landscape/account model, ABAP environment pipeline, as well as versioning and branches.
## 4.2.14.1.4.1  System Landscape/Account Model
##  Note
If you use gCTS transport delivery instead of add-on delivery, no discounted development licenses are available: ABAP systems created for development purposes (development, test, demo) cost the same as ABAP systems created for production purposes. For creation on system AMT instead of saas\_oem , the standard service plan is used since no add-on is installed.
Additionally, the same global account is used for development/production purposes because gCTS repositories are only available across the same global account.
ABAP systems for development and for production purposes are created based on different partner contracts and licenses.
Discounted development licenses can be used for development, test, and demo purposes.
##  Note
You have to acquire a development license for partners. See SAP PartnerEdge Test, Demo &amp; Development Price List.
Production licenses are used whenever one of your customers is consuming the solution provided by you in one of your systems.
##  Note
You have to acquire a production license for partners. See Resources for OEM Partners.
To separate development and production purposes, you have to create different global accounts:
## · Global account for development
The global account for development is used for add-on/UI development and testing. Also, add-on assembly and add-on test installation triggered by the add-on build pipeline are performed in this global account.
All ABAP systems created in this global account are used for development, test, or demo purposes.
## · Global account for production
All ABAP systems created in this global account are used for production purposes. That means, the systems are used to provide the SaaS solution to your customers. Consumer subaccounts are also created in the global account for production.
##  Recommendation
We recommend creating subaccounts for the different stages of the SaaS solution enablement.
Using different subaccounts for the different phases has multiple advantages: Trust settings and destination/connectivity settings can be adjusted for each subaccount. That means, you can connect the development subaccount to the developer user identity provider and the test subaccount to the test user identity provider. In terms of connectivity, the development subaccount can be connected to the development on-premise system and the test subaccount can be connected to the test on-premise system.
## Global Account for Development
<!-- image -->
## 1. 00 Landscape Portal
We recommend creating a dedicated subaccount for the Landscape Portal. This subaccount will contain your Landscape Portal &amp; CI/CD service subscriptions for you to freely choose between regions for your other subaccounts.
2. 01 Develop: Development subaccount including development space ABAP development system DEV and correction system COR are created in this subaccount. You need to subscribe to SAP Business Application Studio to develop SAP Fiori UIs and implement multitenant applications. See Setup of UI Development in SAP Business Application Studio.
3. 02 Test: Test subaccount including test space ABAP test system TST and quality assurance system QAS are created in this subaccount. See Use Case the CI/CD server. See (Deprecated) Test Integration (SAP\_COM\_0510) [page 836]. The CI/CD server uses
2: One Development and Correction Codeline in a 5-System Landscape [page 792]. Since development is structured with software components that are stored in a repository for each global account, these software components can automatically be imported to the test system on a regular basis automated by a Git repository to read the pipeline definition and configuration.
4. 03 Build/Assemble: Subaccount for add-on assembly including build/assemble space
<!-- image -->
##  Note
The ABAP environment platform version of the assembly system is used to determine the minimum platform version for the add-on product version that is created.
Such a system should not be nominated for the pre-upgrade option of the ABAP environment because this would lead to the add-on product only being able to installed in systems with the pre-upgrade
release. When using Build Product Version (recommended), the add-on definition is configured directly in the app.
For the add-on build process, an assembly system BLD is provisioned in this subaccount by the CI/CD server. See Software Assembly Integration (SAP\_COM\_0582) [page 846] When using the Build Product Version app (recommended), the add-on definition is configured directly in the app.
## 5. 04 Build/Test: Subaccount for add-on installation test including build/test space
- After the add-on has been assembled during the build of an add-on version, an installation test is required to verify that the add-on can be installed without errors into a system. As part of the add-on build pipeline, an abap/saas\_oem system ATI is provisioned in this subaccount and the add-on is installed. When using the Build Product Version app (recommended), the add-on definition is configured directly in the app.
6. 05 Provide: Provider subaccount including provider space
During the development phase, the multitenant application is deployed to this space for testing purposes. The ABAP solution service can then provision abap/saas\_oem systems AMT, tenants, and users in this account, once a consumer subscribes to the provided SaaS solution.
## 1. 00 Landscape Portal
Since the Landscape Portal service is only available in region eu10, we recommend creating a dedicated subaccount in this region. This subaccount will contain your Landscape Portal &amp; CI/CD service subscriptions for you to freely choose other regions for your other subaccounts.
##  Note
If you plan to create any of the other subaccounts in eu10, then you can simply reuse one of those subaccounts.
## 2. 05 Provide: Provider subaccount including provider space
The multitenant application is deployed to the provider subaccount in the global account for production. The ABAP solution service can then provision abap/saas\_oem systems (AMT), tenants, and users in this account once a consumer subscribes to the provided SaaS solution.
## 3. 06 Consume: Consumer subaccount
For each customer, a consumer subaccount is created in the global account for production.
<!-- image -->
This allows consumers to have their own configuration of:
- Trust settings (custom identity provider).
<!-- image -->
##  Note
If you want to integrate an existing corporate identity provider for authentication/authorization in subaccounts of the global account for production, see Trust and Federation with Identity Providers. To restrict access based on certain criteria, such as the IP address, you need to use the Identity Authentication service. See SAP Cloud Identity Services - Identity Authentication.
- Connectivity via SAP Cloud Connector. See Connectivity in the Cloud Foundry Environment.
- Destinations. See Managing Destinations.
- Subscriptions
<!-- image -->
##  Restriction
As of now, you can only expose SaaS applications for subscription from consumer subaccounts in the provider global accounts.
## 4.2.14.1.4.2  ABAP Environment Pipeline
The goal of the ABAP environment pipeline is to enable continuous integration for the ABAP environment.
The pipeline contains several stages and currently supports two relevant scenarios:
- Add-on build using AAKaaS
- Continuous testing via gCTS
A pipeline definition, containing all configuration, and a running CI/CD server are required to execute the ABAP environment pipeline. You can consume the different scenarios by enabling different pipeline stages in the configuration. For more information on how to configure the ABAP environment steps and stages, see Configuration and ABAP Environment Pipeline .
The Landscape Portal offers the option to configure and execute the add-on build scenario using the Build Product Version app, without the need for external repositories or Jenkins servers.
##  Note
The Continuous Testing scenario is currently not supported by the Landscape Portal. This means that a running Jenkins server is required, even when using the Build Product Version app. See Add-On or gCTS.
## Jenkins Setup
##  Note
This is only required for running the Continuous Testing scenario. The add-on build scenario can be realized using the Build Product Version app in the Landscape Portal.
The general configuration of the ABAP environment pipeline always follows the same approach regardless of the scenario that you want to configure:
## 1. Prepare Git Repository
As a DevOps engineer, you need to prepare a Git repository by including the Jenkins file, initializing the pipeline, and the pipeline configuration file .pipeline/config.yml . See Jenkins File and Technical Pipeline Configuration .
## 2. Create Service User for Git Repository
To enable read access to the Git repository, you need to create a service user and assign it to the repository. Later, this user's access credentials are stored in the Jenkins credentials by the Jenkins administrator. See Using Credentials .
## 3. Create Jenkins Instance
As a Jenkins administrator, you need to set up a new Jenkins instance. See Custom Jenkins Setup and Docker Hub .
## 4.2.14.1.4.3  Multitenancy
The ABAP environment provides capabilities for multitenancy, meaning to host different customers on a single ABAP system. See Multitenancy in the ABAP Environment [page 1280].
##  Tip
You should align your decision whether to enable multitenancy mode for your solution based on whether the Multitenancy Development Guideline [page 1285] can be followed during ABAP development.
## 4.2.14.1.4.4  Versioning and Branches
## 4.2.14.1.4.4.2  Add-On Package Types
For the delivery of add-on packages, there are three package types that serve different purposes: AOI, CSP , and CPK.
The different add-on package types are used for different purposes. The set of objects to be included depends on the package type.
##  Note
The required type of delivery is automatically determined by the delivery production tools based on how the version number of software components is changed.
<!-- image -->
## AOI (Add-On Installation)
Delivery packages of type Add-on Installation (AOI) are created for all new release versions, e.g. version 1.0.0, and should be used to deliver new functionalities or feature enhancements.
These delivery packages include all the objects in the software component and are usually created on a regular basis (e.g. quarterly).
## CSP (Component Support Package)
Delivery packages of type Component Support Package (CSP) are created for all new support package deliveries, e.g. version 1.1.0, and should be used to deliver a collection of patch deliveries or to deliver smaller functional enhancements.
These delivery packages include either the objects that were changed since the previous release delivery or since the previous support package delivery. They are usually created on a regular basis (e.g. bi-weekly).
## CPK (Correction Package)
Delivery packages of type Correction Package (CPK) are created for all new patch deliveries, e.g. version 1.0.1, and should be used to deliver bugfixes.
These delivery packages include only those objects that were changed since the previous patch delivery and are only created when necessary (e.g. emergency patch).
For more information on the add-on package types and how these are determined based on changes to the software component version, see Software Component Version .
## 4.2.14.1.4.4.3  Branching
##  Note
Keep in mind that there are some restrictions for using branches in your development processes, for example the merging of branches is not supported and has to be done manually. See ABAP Environment Specifics [page 763].
Development in the ABAP environment is done in software components. For each software component, different branches can be created that include a different list of commits. For each system, only one branch can be active at a time. Branches are used to separate changes from each other that shall or might not be delivered together (development vs. correction).
To separate development of new features from the development of bug fixes for the active version of a software component, you can use branches for different purposes:
- Main Branch : Implementation of new planned features that are to be delivered in the future (development codeline)
- Maintenance Branch : Implementation of unplanned bug fixes for the active version of a software component that is deployed to customer systems (maintenance codeline)
The main branch is the default branch of each software component and therefore already exists when the software component is created. This branch is not deleted throughout delivery of different software component versions.
A maintenance branch should be created for each support package level of a software component and is named accordingly, for example v1.1.0 for support package level 1 in release 1. Maintenance branches can be deleted once the successor support package level is the currently deployed support package level in customer systems.
##  Recommendation
Create a new maintenance branch with each new support package level, and thus with each new AOI and CSP package delivered for a software component.
For the first release, the main branch of software components is used to create a maintenance branch for the add-on build process. In subsequent versions, the development and correction code line are separated by using the main branch and the maintenance branch. See Use Case 2: One Development and Correction Codeline in a 5-System Landscape [page 792].
All corrections to a software component based on a certain support package level are released in the corresponding maintenance branch and need to be maintained as new commits in the main branch (double maintenance). See Double Maintenance of Corrections into Development [page 809].
For each ABAP system, only one branch can be active at a time. Therefore, in development system DEV and test system TST, the main branch of a software component is checked out. Whereas in correction system COR and quality assurance system QAS, the currently relevant maintenance branch is checked out.
## 4.2.14.1.5  Develop, Test, Build
To develop and provide add-ons, you have to set up a suitable system landscape and Cloud Foundry environment account structure.
You need a partner contract to create the account structure. The accounts for the upstream (add-on development, test, build) and downstream (providing add-on as SaaS solution) parts of the process need to be separated from each other and therefore are handled in dedicated global accounts. We refer to these as global accounts for development and production account. For more information regarding the development license, see SAP PartnerEdge Test, Demo &amp; Development Price List . T o find out more about production licenses, see SAP PartnerEdge: Resources for OEM Partners .
##  Tip
For in-depth information about the system landscape/account model, check out System Landscape/ Account Model [page 1192].
For the initial add-on delivery, you should create a development and test landscape following the guidelines mentioned in Concepts [page 1192]. Once backend and frontend development is completed, you can test
the add-on implementation in a persistent test system. Upon successful completion of this step, set up a CI/CD server along with a Jenkins pipeline to execute the add-on build allowing for an automated and efficient assembly. This automated pipeline can then be reused transforming all upgrade and update activities into a straightforward process.
Once the add-on build/assembly is finished, you can release the add-on for installation/update. First, the add-on build is installed in a test system in the global account for development to verify that it works correctly. If successful, you can provide the add-on to customers.
##  Note
Besides using add-ons for delivering software components to production systems, gCTS transports can be used as an alternative approach. It is used for transporting software components between different ABAP systems.
See Delivery via Add-On or gCTS [page 1214].
## 4.2.14.1.5.1  Access to Landscape Portal
The Landscape Portal acts as a central tool that allows you to perform lifecycle management operations, such as provisioning new consumers tenants, users, and more. See Landscape Portal.
As an operator, subscribe to the Landscape Portal application in the 05 Provide subaccount in both the global account for development and global account for production. The LandscapePortalAdminRoleCollection needs to be assigned to the users in the default identity provider of the subaccount that you want to provide access to the Landscape Portal app. See Accessing the Landscape Portal.
##  Note
Note: In the global account for development, you can use a booster (see Booster for Landscape Portal [page 1229]) to automatically set up a subaccount with a working Landscape Portal subscription.
##  Note
In the Landscape Portal, you can access the provider system and choose the provider tenant (client 100). Via the provider tenant, you get access to Fiori Apps, for example the Manage Software Components app, which is used for importing software components via gCTS.
See Delivery via Add-On or gCTS [page 1214].