Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
Showing results for 
Search instead for 
Did you mean: 
SAP Business Technology Platform comes with lot of features to develop applications which can connect to different cloud and on-premise applications. In this blog, I will talk about one such feature - Destinations. Let's see how destinations are configured and consumed in order to connect to remote systems.

Destinations contain basic information about how to connect to a system. Information can be a url, username, password or any customer headers.

Destination service is used to store and retrieve any technical information which is required to connect to a remote service from the application deployed in BTP.


  • Account in BTP(trial account can be used)

  • Application deployed to BTP and SAP Cloud SDK added as it's dependency(I am using JAVA application here)

1) Create a destination

There are multiple ways to create destinations:

  1. Using the Destinations Editor in the Cockpit

  2. Destination Service REST API

  3. Create Destinations Using the MTA Descriptor

  4. Create Destinations on Service Instance Creation

Let's see first approach in this blog.

BTP cockpit -> Connectivity -> Destinations

Create Destination

With this destination configuration, "Northwind_Products" holds the basic information to connect to the public Products Service.

2) Create an instance of destination service

BTP cockpit > Service Marketplace -> search for destination -> Create

Instance Creation

Choose plan 'lite', give some instance name and click create

Service Plan Selection

If Destination service is not available in service marketplace, it can be added from BTP cockpit -> Entitlements -> Configure Entitlements -> Add Service Plans -> search for Destination -> Add.

3) Bind the service with your application

BTP cockpit > Instances -> Choose the instance -> Bind

Bind Application

Choose your application -> Create

Choose Application

Alternatively, application can be bound to a service using CF CLI or mta file as described here.

4) Consume the destination

By following the steps above, destination is configured in BTP cockpit and application is bound with destination service. Let's see how to consume this destination using destination service in java code.

Ensure that the following SAP Cloud SDK is added as a dependency to the application. Pick the latest version from here.

Below is the sample REST controller, which has an endpoint to retrieve the data provided by remote service. Connection information is already configured with destination Northwind_Products. Here I am using DestinationAccessor provided by Cloud SDK to retrieve destination information with destination name.

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


public class DestinationController {

private final Logger log = LoggerFactory.getLogger(this.getClass());

public String getProducts() {
String DESTINATION_NAME = "Northwind_Products"; //in productive code, use constants file to
//retrieve destination name
try {

/* get the destination information from a facade provided by cloud platform */
HttpDestination destination =
HttpClient client = HttpClientAccessor.getHttpClient(destination);
HttpResponse httpResponse = null;
try {
httpResponse = client.execute(new HttpGet());
/* Retrieve response data once the request is successful */
if (httpResponse.getStatusLine().getStatusCode() == 200) {
BufferedReader reader = new BufferedReader(
new InputStreamReader(httpResponse.getEntity().getContent()));
StringBuilder result = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
return result.toString();
} catch (IOException e) {"IOException: " + e.getMessage());
return "IOException: " + e.getMessage();
} catch (DestinationNotFoundException e) {
/* Destination is not found with specified name */"DestinationNotFoundException: " + e.getMessage());
return "DestinationNotFoundException: " + e.getMessage();
} catch (DestinationAccessException e) {
/* Destination cannot be accessed */"DestinationAccessException: " + e.getMessage());
return "DestinationAccessException: " + e.getMessage();
return null;


Below is the response from application endpoint.

Response Data


To sum up, you have learnt how to configure and consume destinations in SAP Business Technology Platform. Same approach can be used to configure other connection details like authentication.

In case of any queries or feedback, feel free to post in comments.

Stay Curious & Keep Learning 🙂