Interacting with the ABAP Build Framework

Enabling Communication to the ABAP Build Framework

The Build Framework provides a versatile architecture that enables invoking any step through a standardized service call, leveraging oData protocol for seamless interaction. To make use of the framework from a CI Server or external tool e.g. to call the build steps from a pipeline we need to activate the respective service and create a communication user in the SAP System.
We will walk through the necessary steps and requirements to set up your ABAP system / client to enable the ABAP Build Framework. By following this guide, you will be well-equipped to kickstart your CI/CD journey with ABAP.

Create a System User for Framework Access

To utilize the framework from a pipeline, create a new user of type “system”. Be sure to save the generated Username and Password.

This user needs to have at least the following authorizations:

  • S_DEVELOP
  • /BUILD/C
  • /BUILD/A

Additionally, depending on the plugins and tasks required, this user may need further authorizations. Ensure you assign the necessary permissions to enable seamless functionality.

Activate Gateway

To activate the Gateway, use the transaction code /n/IWFND/IWF_ACTIVATE.
Note: If the Gateway is already active, do not deactivate it.

Verify Service

Check if the service is already available
In the client where you want to use the Framework, execute transaction
/n/IWFND/MAINT_SERVICE.

Search for the service
Check if a service with the external service name CORE_SRV and namespace
/BUILD/ is listed.

If the Service is not available, add a new Service

Choose the LOCAL System Alias and enter CORE_SRV as External Service Name.
Press Get Services.

Select the Entry and click on Add Selected Services

Assign it the technical service name ZCORE_SRV and save it as local object

Verify System Alias

In transaction /n/IWFND/MAINT_SERVICE double-click on the service and check the System Aliases Area (lower right side of the screen) for an existing system alias.

If none exists, continue to Add a new system alias (if necessary)
In the View “Assign SAP System Aliases to OData Service”, click New Entries.

Search for *CORE_SRV* in the Service Doc. Identifier field and select the correct value, which matches the Technical Service Name seen before (e.g., ZCORE_SRV_0001). Select a valid SAP System Alias from the list (usually LOCAL).

Press Enter and save the changes.

You should now see a valid alias in the System Aliases Area of transaction
/n/IWFND/MAINT_SERVICE

Double-click on the SAP System Alias to ensure the Target Host is empty or matches your system.

To determine the HTTPS port number and hostname, launch transaction SMICM, then navigate to Menu > Goto > Services.

Troubleshooting SICF Services

If you’re experiencing issues with services, please verify the following settings in transaction SICF:

  1. Check the availability of /sap/opu/odata/build/core_srv
    Note: This entry might be obsolete and unnecessary as of SAP_BASIS version 7.57 and above.
  2. Ensure the Logon Procedure is set to Standard, which should be the default setting unless it was changed and inherited from lower-level SICF nodes.
  3. Verify that /sap/public/bc/icf/logoff is active.


Establishing Communication to the CI Server

Up to this point, our efforts have focused on ensuring that the CI server can communicate with the SAP system and that individual build steps, such as creating a transport request or performing code checks, are initiated by the CI server.

However, to enable the pipeline to be triggered directly from the SAP system, —for instance, when a Transport Request is released from an SAP Development System — we need to establish a communication channel from the ABAP system to the CI server. This can be achieved by creating an RFC (Remote Function Call) connection.

Creating HTTP Destination

To create an HTTP destination to your CI Server, follow these steps:

Determine the Host
This is typically the domain name or IP address where your CI Server is accessible. For example, in Jenkins the host is the base URL of your Jenkins server: If you access Jenkins through http://jenkins.example.com, then this is your host.

Create a SM59 Destination
Enter transaction code SM59 in the command field and press Enter.
In the SM59 initial screen, click on the “Create” button.

Enter a name for your RFC destination and select the connection type as “G” (HTTP Connection to External Server).

Click the green check-mark or press Enter to proceed.

Technical Settings
Enter the hostname or IP address of the CI-server you want to connect to e.g. http://jenkins.example.com and the port number of the service (e.g., 80 for HTTP, 443 for HTTPS).

Logon & Security
Choose the appropriate authentication method (e.g., Basic Authentication, OAuth). If using Basic Authentication, provide the logon credentials for Jenkins, using the user and token configured during the Jenkins Setup. If connecting to an HTTPS server, configure the SSL settings accordingly. You may need to specify an SSL certificate.

Save your settings by clicking the save button.

Test the Connection
Click on the “Connection Test” button to test the RFC destination.

If you’re experiencing issues with the RFC connection, make sure your CI server is configured to allow API calls and that there are no network restrictions blocking your requests.

You’ve made it!

You’ve successfully set up your SAP system to interact with the ABAP Build Framework from external tools such as CI Servers. This is a significant milestone in your journey to modernizing your ABAP development experience.

What’s Next?

Now that you have your system set up, it’s time to dive deeper into the world of ABAP deployment with the Build Framework. You’ve taken the first crucial steps towards embracing a more streamlined, efficient, and collaborative approach to ABAP development. Here are some next steps to consider: