From f33ed885c1faa8297909e7376bf6bc8fc0cbda5e Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Tue, 16 Jun 2026 15:54:59 +0530 Subject: [PATCH 1/6] Create a new Environment details page and adjust the order --- .../docs/deployment/sap-btp/sap-autoscaler.md | 2 +- .../deployment/sap-btp/sap-cloud-connector.md | 2 +- .../sap-btp/sap-destination-service.md | 2 +- .../sap-btp/sap-destination-with-rest.md | 2 +- .../deployment/sap-btp/sap-environments.md | 751 ++++++++++++++++++ .../docs/deployment/sap-btp/sap-monitoring.md | 2 +- .../deployment/sap-btp/sap-single-sign-on.md | 2 +- 7 files changed, 757 insertions(+), 6 deletions(-) create mode 100644 content/en/docs/deployment/sap-btp/sap-environments.md diff --git a/content/en/docs/deployment/sap-btp/sap-autoscaler.md b/content/en/docs/deployment/sap-btp/sap-autoscaler.md index 50fd752cfcd..b3e68a1acbe 100644 --- a/content/en/docs/deployment/sap-btp/sap-autoscaler.md +++ b/content/en/docs/deployment/sap-btp/sap-autoscaler.md @@ -2,7 +2,7 @@ title: "Application Autoscaler for SAP Business Technology Platform" linktitle: "Application Autoscaler for SAP BTP" url: /developerportal/deploy/sap-cloud-platform/sap-autoscaler/ -weight: 47 +weight: 70 description: "How to set up the SAP Autoscaler" aliases: - /partners/sap/sap-autoscaler/ diff --git a/content/en/docs/deployment/sap-btp/sap-cloud-connector.md b/content/en/docs/deployment/sap-btp/sap-cloud-connector.md index 2a1770709f7..49cac6019f8 100644 --- a/content/en/docs/deployment/sap-btp/sap-cloud-connector.md +++ b/content/en/docs/deployment/sap-btp/sap-cloud-connector.md @@ -1,7 +1,7 @@ --- title: "SAP Cloud Connector" url: /developerportal/deploy/sap-cloud-platform/sap-cloud-connector/ -weight: 28 +weight: 60 description: "Presents reference information on the SAP Cloud Connector." aliases: - /partners/sap/sap-cloud-connector/ diff --git a/content/en/docs/deployment/sap-btp/sap-destination-service.md b/content/en/docs/deployment/sap-btp/sap-destination-service.md index 8c62edd23b9..6ceddd854fc 100644 --- a/content/en/docs/deployment/sap-btp/sap-destination-service.md +++ b/content/en/docs/deployment/sap-btp/sap-destination-service.md @@ -1,7 +1,7 @@ --- title: "SAP Destination Service" url: /developerportal/deploy/sap-cloud-platform/sap-destination-service/ -weight: 20 +weight: 40 description: "Reference for using SAP Destination Services within the OData Connector for SAP solutions." aliases: - /partners/sap/sap-destination-service/ diff --git a/content/en/docs/deployment/sap-btp/sap-destination-with-rest.md b/content/en/docs/deployment/sap-btp/sap-destination-with-rest.md index e5a50acfb38..df8ff33abae 100644 --- a/content/en/docs/deployment/sap-btp/sap-destination-with-rest.md +++ b/content/en/docs/deployment/sap-btp/sap-destination-with-rest.md @@ -2,7 +2,7 @@ title: "Use SAP Connectivity Service with REST and SOAP" linktitle: "Use SAP Connectivity Service with REST and SOAP" url: /developerportal/deploy/sap-cloud-platform/sap-destination-with-rest/ -weight: 25 +weight: 50 description: "How to configure Mendix native REST and SOAP calls to use the SAP Destination Service and the SAP Connectivity Service to reach on-premises services." aliases: - /partners/sap/sap-destination-with-rest/ diff --git a/content/en/docs/deployment/sap-btp/sap-environments.md b/content/en/docs/deployment/sap-btp/sap-environments.md new file mode 100644 index 00000000000..22b8f3f7c54 --- /dev/null +++ b/content/en/docs/deployment/sap-btp/sap-environments.md @@ -0,0 +1,751 @@ +--- +title: "SAP Environment Details" +linktitle: "SAP Environment Details" +url: /developerportal/deploy/sap-cloud-platform/environments +weight: 20 +description: "Describes how to deploy to SAP Business Technology Platform." +#To update these screenshots, you can log in with credentials detailed in How to Update Screenshots Using Team Apps. +#If moving or renaming this doc file, implement a temporary redirect and let the respective team know they should update the URL in the product. See Mapping to Products for more details. +--- + +## Introduction + +As an SAP developer, you want to deploy your Mendix app on the SAP Business Technology Platform (SAP BTP). This document explains how to create environments, deploy to SAP BTP, and manage these deployments using the Mendix Portal. + +This document describes two ways of managing SAP BTP: + +* Initial setup of the environment when creating a new app – see the [Set Up SAP BTP for the First Time](#FirstTime) section +* Create a new environment for an existing app – see the [Create a New Environment](#NewEnvironment) section + +{{% alert color="info" %}} +You can deploy Mendix applications to Cloud Foundry regions on SAP Business Technology Platform, not to Neo regions. +{{% /alert %}} + +## Setting Up SAP BTP for the First Time {#FirstTime} + +Before you can manage your SAP BTP using the Mendix Portal, set it up. There are two circumstances under which you need to set up SAP BTP for the first time: + +1. You have an existing app that has never been deployed on SAP BTP, and you want to change the cloud settings – see [Change Cloud Settings](#ChangeCloudSettings) +2. You are creating a new app from an SAP app template – see [New SAP App](#NewSAPApp) + +### Changing the Cloud Settings {#ChangeCloudSettings} + +In this scenario, you have an existing app which is running in another environment, for instance, on Mendix Cloud. To change this, open your app in [Apps](https://sprintr.home.mendix.com/), go to **Settings**, and switch to the **Cloud Settings** tab. + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/cloud-settings.png" alt="" >}} + +Click **Set up** on **SAP BTP Cloud Deployment** to go to the SAP BTP welcome page. + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/cloud-settings-landing-page.png" alt="" >}} + +Click **Getting Started**, and continue with [Set Up Region](#SetUpRegion). + +### New SAP App {#NewSAPApp} + +In this scenario, you choose a Mendix app template for SAP from the **SAP Apps** tab and give it a name. + +{{% alert color="warning" %}} +The app name that you provide is passed to SAP BTP as the host name parameter used when creating [routes](https://help.sap.com/docs/btp/sap-business-technology-platform/create-routes). Because of that, the name that you use for your SAP app should only contain characters that are valid when used in a host name (such as ASCII letters from A to Z, digits from 0 to 9, and hyphens). If your app name contains an invalid character, you will receive an error message when trying to create the app. +{{% /alert %}} + +Once the app has been created, you can continue with [Set Up Region](#SetUpRegion). + +### Setting Up the Region {#SetUpRegion} + +An SAP BTP login screen appears. Select the region where your SAP BTP is located. + +{{% alert color="info" %}} +Currently supported regions are: + +* Australia (Sydney) +* AWS Japan +* AWS Singapore +* Azure Japan +* Azure Singapore +* Azure US East (VA) +* Azure US West (WA) +* Brazil (São Paulo) +* Canada (Montreal) +* Europe (Frankfurt) +* Europe (Frankfurt) - 004 +* Europe (Netherlands) +* Europe (Netherlands) - 001 +* US Central (IA) Beta +* US East (VA) +* US East (VA) - 001 + +Contact Mendix Support if you have a requirement for an additional region. +{{% /alert %}} + +Make sure that you have enough quota in this region for your organization to run a Mendix app. You need enough quota to create the following: + +* Database +* Route +* Binding to XSUAA + +If you have already signed in to SAP and your SAP session has not expired, you only have to choose the region. If you do not have a current SAP session, you are also asked for your SAP credentials. Providing your credentials grants the Deployment Portal access to manage your SAP BTP account. + +You may be asked to provide your credentials in one of two ways: + +* You are taken to the SAP authentication page to enter your credentials. In this case, your SAP user name (email address) must be the same as your Mendix user name. +* The Mendix Portal asks for your credentials, which it then uses to obtain an access token from SAP. The Mendix Portal then uses the access token, but does not store your credentials. (Note that this method is being deprecated.) + +{{% alert color="info" %}} +If you have issues using SAP authentication, refer to [SAP Single Sign-On](/developerportal/deploy/sap-cloud-platform/sap-single-sign-on/). +{{% /alert %}} + +Provide the final details for the SAP BTP development environment. + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/creating-development.png" alt="" >}} + +Choose a **Domain**, **Organization**, and **Space** which is configured for you in this region. + +If you do not choose a **Custom database**, you can still choose from a range of different databases, such as PostgreSQL, Hyperscaler Option, and SAP HANA. Ensure that the database you choose is supported by your quota plan for this region and organization. See [Databases in SAP BTP](#databases) for important information on selecting the correct database for your app. + +If you select **Yes** for **Custom database**, provide the details for the **Name** and the **Plan**. + +After the environment has been created successfully, a confirmation message appears. Your development environment is now configured, and you can develop your app. + +## Creating a New Environment {#NewEnvironment} + +You can create several environments for your app. For example, you may have created a development environment, but you may want environments for test, acceptance, production, and so forth. Additionally, when you switch from another cloud, you need to create at least one environment for your Mendix application. + +You can do this in the **Environments** page after opening your app in [Apps](https://sprintr.home.mendix.com/). + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/finish-environment.png" alt="">}} + +The **Environments** page shows the following tabs: + +* An **Overview** of environments for this app +* A list of **Deployment Packages** for this app +* An overview of the deployment **Activity** performed on this app + +To create a new environment, perform the following steps: + +1. Click **Add Environment** to start the wizard. + +2. Select the region where you want your app to be deployed. If no session is active for that region, or the current session does not have access to that region, you may need to enter your SAP credentials for that region. + +3. Select the **CF Domain**, **Organization**, and **Space** of your app. The URL of the domain forms part of the application's URL. The URL of the application will be: + + ```text + {appname}-{environment name}.{domain} + ``` + + An example URL is: + + ```http + https://myapp-development.cfapps.eu20.ondemand.com + ``` + + {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/add-environment.png" alt="">}} + +4. Click **Next**. + +5. Enter the name of the environment. This can be anything you choose, for example, Test, Acceptance, or Production. + + {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/new-environment.png" alt="" >}} + +6. Set the size of the memory that the app needs in order to run. This can also be changed later. + +7. Set **Development Mode** to *Yes* if you want the application to run with the Mendix security level of Prototype/demo, or *No* for no security. This is not recommended for acceptance or production environments. + +8. Select the database you would like to use. Be aware that even if a specific database is part of the Marketplace, it could still be unavailable because of limitations imposed by the quota of your organization. See [Databases in SAP BTP](#databases) below for information on selecting the correct database for your app. + + If you choose **Custom Database**, enter a **Name** for the database and the **Plan**. + +9. Enable **ObjectStore** if your application makes use of file document or image objects. Other sorts of objects do not need **ObjectStore** to be enabled. + +10. To configure logging, select the **Logging** service from the dropdown. + + {{% alert color="info" %}}**application-logs** has been the default logging service, but will be deprecated soon. See [SAP Application Logging Service](https://help.sap.com/docs/application-logging-service/sap-application-logging-service/what-is-sap-application-logging-service) for more details on the deprecation of **Application Logs**. For older environments still using the **Application Logs** service, see the [Migrating from SAP Application Logging to SAP Cloud Logging](#migrating-cloud-logging) section to ensure continued logging support.{{% /alert %}} + +11. Set a **Subscription Secret** (required). This secret is associated with your Mendix production license. By entering the subscription secret, your application runs in this environment as production. If the subscription secret is invalid, your app still runs, but restarts every two to four hours and has a limitation of six concurrent users. + + {{% alert color="info" %}}If you do not have a subscription secret, refer to [Obtaining a Mendix License](/developerportal/deploy/licensing-apps-outside-mxcloud/#get-license) of *Licensing Apps* for details on submitting a request to Mendix Support.{{% /alert %}} + +12. Optionally, you can add **Redirect URLs** if you want the user to be redirected to a custom URL after they have logged in using XSUAA. + +13. Click **Next** to create the environment and finish the setup. + +An environment is created. With more than one environment created, you can transport your application between environments. See [Transporting to an Environment](#transport) for more information. + +## Preparing Packages for Deployment + +There are two ways to get a package ready to deploy to SAP: + +* Creating a package directly from a version of the app model held in Team Server +* Uploading a package which has already been created + +### Creating a Package from Team Server + +At any time, you can create a new deployment package from a committed version of the project. If you are working with Mendix Studio Pro, you will first have to commit the project. + +{{% alert color="info" %}} +You can also deploy your app automatically from Studio Pro. However, you have less control over the deployment. + +If you click **Run** or **Publish** in Studio Pro, this automatically does the following: + +1. Commits the app +2. Generates a deployment package +3. Deploys the deployment package to the first available environment (this replaces any app which is currently running in this environment) +{{% /alert %}} + +{{% alert color="warning" %}} +You still have to deploy your app in [Apps](https://sprintr.home.mendix.com/) the first time to ensure that all the services are bound correctly. +{{% /alert %}} + +1. Open the app in [Apps](https://sprintr.home.mendix.com/). In the **Environments** page, select the **Deployment Packages** tab. This tab shows the list of built packages. + + {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/deployment-package.png" alt="">}} + +2. Click **Create a Package** and select the **Branch** on the Team Server which you want to use. Click **Next**. + +3. Select the **Revision** of the branch you want to build and click **Next**. + +4. Add a **New version** number and **Tag description** as required. The revision number is added to the version number automatically. + +5. Click **Build this revision** to build the package. + +### Uploading an MDA + +Alternatively, you can upload an MDA which has already been created from the app model, for example, using [Create Deployment Package](/refguide/create-deployment-package-dialog/) from the **App** menu in Studio Pro. + +1. Click **Upload a Package** in the **Deployment Packages** tab. + +2. Select the package accessible to your local machine. + +3. Click **Upload** to upload the MDA. + +The package is added to the list of packages in the **Deployment Packages** tab. To deploy your package, follow the instructions in the [Deploy Package](#DeployPackage) section. + +{{% alert color="info" %}} +There is a limit of 200 MB on the size of the MDA file you can upload to the Mendix Portal for SAP BTP deployment. +{{% /alert %}} + +## Deploying a Package {#DeployPackage} + +{{% alert color="warning" %}} +SAP BTP [has a limit of 1.5 GB](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/9c7092c7b7ae4d49bc8ae35fdd0e0b18.html#loio9809fa4f02cb4696baea5c23d6eaac94) on the size of a deployment package. +{{% /alert %}} + +A green tick indicates that the build has finished. Click the deploy icon ({{% icon name="deploy" %}}) to deploy the package to SAP BTP. + +### Transporting to an Environment {#transport} + +1. In the **Transport** tab, change the deployment **Environment** if required. + + {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/transport.png" alt="">}} + +2. The **Timeout (seconds)** value indicates how long Cloud Foundry will wait between starting an app and the first healthy response from the app before deciding that the application has failed to start. For some apps, the default (60 seconds) is too short. If your app is failing to start, you can try increasing this value. + +3. Click **Transport** to deploy the package to the SAP environment. This replaces any current app deployed to this environment. If the app is already running, stop it so that your new app can be deployed. + +Environments without deployed apps do not have the transport option available. + +You can also transport to the required environment from the **Overview** tab of the **Environments** page. + +### Configuring an Environment {#ConfigureTheApplication} + +1. Once your package is transported, you are redirected to the **Configure Environment** tab. + +2. To change any constants from the **Constants** list, select the constant you want to edit and click the edit ({{% icon name="pencil" %}}) icon. + + {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/edit-constants.png" class="no-border" >}} + +3. In the **Scheduled Events** section, select the scheduled event you want to *Enable* or *Disable* and click **Next**. For more information, refer to [Scheduled Events](#schedules-events). + +### Unbinding and Deleting Service Instances + +1. In the **Services** tab, select any additional services you need for your app. For more information, see the [Services tab](#binding-services). + +{{% alert color="warning" %}}In your initial deployment, do not remove any of the services with the status **Bound Services**. For a new app, these services are required for the correct deployment of the app.{{% /alert %}} + +1. If you want to remove a service instance from your environment, click the three-dot ({{% icon name="three-dots-menu-horizontal" %}}) menu for the service and select **Unbind Service** or **Delete Service**. + + The options do the following: + + * **Unbind Service** – unbinds the service instance and moves it to the **Services To Be Bound** section. The service is bound next time your app is restarted. + * **Delete Service** – unbinds the service instance from the application and deletes it from your environment. + +{{% alert color="info" %}}Once the service is deleted, it is deleted from the app environment and returned to the list of **Available Services**. If the service is unbound but not deleted, it is returned to the list of **Services To Be Bound** and is rebound next time the app is restarted.{{% /alert %}} + +### Runtime Settings and Environment Variables + +Click **Next** to continue to the **Runtime** tab. Here, you can **Add**, edit ({{% icon name="pencil" %}}), or delete ({{% icon name="trash-can-filled" %}}) custom runtime settings and environment variables. For more information, refer to [Runtime](#runtime-tab). Click **Next**. + +### Starting the Application + +1. On the **Start Application** tab, you can see the application details. Click **Start application** to start the application on SAP BTP. + +{{% alert color="info" %}}This binds any services which are in the status **Services To Be Bound**.{{% /alert %}} + +1. When the application has been started, you are taken to the **Environment Details** page for the selected environment. See [Environment Details](#EnvironmentDetails). + +## Environment Details {#EnvironmentDetails} + +The environment details page contains the following tabs: + +* [General](#general-tab) – how the application is deployed on SAP BTP +* [Model Options](#model-options-tab) – application constants and scheduled events +* [Services](#binding-services) – Cloud Foundry service management +* [Runtime](#runtime-tab) – custom environment variables which define **User-Provided Variables** in the SAP Cloud Foundry environment — pre-defined variables can be used to control the behavior of the Mendix Runtime + +Open the environment details by clicking the details ({{% icon name="pencil-write-paper" %}}) icon on the **Environments** page of the Development Portal. You will also be taken to this page when you successfully deploy or transport your app. + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/env-details.png" alt="" >}} + +{{% alert color="info" %}}If you make changes to your app which you want to be applied next time the app is deployed, you must make them in the **Environment Details**. + +Changes made to the app in the SAP BTP cockpit are only temporary and can be overwritten by the values in the Mendix Portal next time the app is deployed.{{% /alert %}} + +### General Tab {#general-tab} + +This tab contains information on how the application is deployed on SAP BTP. Most of this page shows information about the app, but there are several options which allow you to change the app. + +#### Start and Stop Application + +If the application is running, click **Stop Application** and confirm when asked to stop the application. + +The button will change to **Start Application** which you can click to start or restart the application. + +{{% alert color="info" %}} +You may need to use this option to stop and start your app after changing one of the settings on this page. +{{% /alert %}} + +If you receive an error trying to start the app, refer to the [App Does Not Start](#appnotstart) section below. + +#### Change Admin Password + +Find the three-dots ({{% icon name="three-dots-menu-horizontal" %}}) icon and click **Change Admin Password** to change the password for the administrator account (by default, MxAdmin) in your Mendix app. + +{{% alert color="warning" %}} +The new password will not come into effect until you stop and start your environment. +{{% /alert %}} + +#### View Recent Log + +Click three-dots ({{% icon name="three-dots-menu-horizontal" %}}) icon and select **View Recent Log** to see recent events written to the log. + +#### Delete Environment + +**Delete Environment** enables you to delete the environment and, optionally, all its resources, including the app. + +You are asked to confirm that this environment should be removed. You are also asked to confirm that the resources associated with the environment should also be removed. Note that the default is not to remove the resources. + +{{% alert color="info" %}} +If you do not select **Remove resources** in the dialog, the resources are left in SAP BTP. This is useful if you want to remove the environment but a resource cannot be removed. In this case, the resources can only be removed individually from within the SAP BTP cockpit. +{{% /alert %}} + +#### Change Development Mode + +Click **Change** to change the **Development Mode**. Set it to *Yes* if you want the application to run with only prototype security, or completely without security. This is not recommended for acceptance or production environments. + +#### Change App URL + +Click **Change** to change the **App URL** for this environment. + +#### Change Redirect URLs + +Click **Change** to change the **Redirect URLs**. Redirect URLs are custom URLs (for example, `appname.subdomain.domain.com`) where the user will be redirected after signing on using XSUAA, instead of being redirected to the generated URL (for example, `appname.cfapps.eu10.hana.ondemand.com`) of the app. + +#### Scaling + +If the app is started or stopped (that is, the environment has been created successfully and the app has been deployed without errors), options to scale the app are available. + +Use the **Instances** slider to change the number of instances of the app which can run. This allows you to scale the app horizontally to support large numbers of users, or to improve the app's resilience by allowing it to continue to run if there are any issues with one of the instances. + +Use the **Memory per instance** slider to change the amount of memory allocated to each instance of the app. + +Click **Scale Now** to apply the new settings. If the application is running, it is stopped and restarted to apply the settings. If it is stopped, it is not started automatically. The new settings are used the next time the application is started. + +Click **Cancel** to return the values to what they were before the sliders were moved. + +{{% alert color="info" %}} +You can also make use of the **Application Autoscaler** service on SAP BTP. Mendix provides assistance in setting up the parameters needed to configure the application autoscaler. For more information, see [Application Autoscaler for SAP Business Technology Platform](/developerportal/deploy/sap-cloud-platform/sap-autoscaler/). +{{% /alert %}} + +#### Change License Subscription ID + +Click **Change** to change the **Subscription Secret** which is the code which registers your production Mendix license to this environment. + +### Model Options Tab {#model-options-tab} + +This tab displays the application constants and allows you to edit them. It also lets you enable or disable scheduled events. + +{{% alert color="info" %}} +You need to restart your app if you change any of these options. +{{% /alert %}} + +#### Scheduled Events {#schedules-events} + +You can see the status of each scheduled event. **Currently Enabled** shows the status in the running app. **Enabled** shows the status that is applied the next time the app is restarted. + +To change the state of a scheduled event, select it and click **Enable** or **Disable** from **Actions** to change the **Enabled** flag. + +#### Constants + +You can see the value of all the constants used by the app. **Current Value** is the value in the running app. **New Value** is the value which is used the next time the app is restarted. + +To change a value, select the constant you want to change and click the edit ({{% icon name="pencil" %}}) icon. + +### Services Tab {#binding-services} + +This tab displays Cloud Foundry services which are bound to the app, waiting to be bound to the app, or available to be bound to the app. These are the services which are available to you in SAP BTP and are the same services that you can see in the SAP BTP marketplace. + +{{% alert color="warning" %}} +There are a number of services which your Mendix app requires. If you unbind any of these services, your app probably stops working: + +* Destination +* Xsuaa +* Database (PostgreSQL, Hyperscaler Option, or SAP HANA schema) +* Connectivity + +Select, bind, and unbind services through the **Services** page. Changes made in the SAP BTP cockpit are not reflected in the Mendix Portal. +{{% /alert %}} + +{{% alert color="info" %}} +Changes to **Bound Services** do not take place immediately. Stop and start your application to activate the changes. + +Services which are bound when the application is stopped and restarted are listed in the category **Services To Be Bound**. You also see an information message in this case. The button **Review Services** lists the services which are not currently bound. +{{% /alert %}} + +#### Connecting Services + +To connect a service in the **Available Services** section, do the following steps: + +1. Select one or more services (you can search for them by name). +2. Select a **Plan** for each service. This must be a plan which is part of your quota for this space. +3. Select a JSON file to upload if you need to add extra configuration. +4. Click **Connect Selected Services**. You can also **Review Services** before restarting your app. + + {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/connect-service.png" alt="" >}} + + The services you have selected will be added as **Services To Be Bound**. Now, you can upload a JSON file with a configuration that will be applied to the service binding. + +{{% alert color="info" %}} +If you use the **PostgreSQL, Hyperscaler Option** service on SAP BTP, Mendix can create a JSON file for you. See [Running Mendix on PostgreSQL, Hyperscaler Option](#sap-hyperscaler). +{{% /alert %}} + +{{% alert color="info" %}} +If you use the **Application Autoscaler** service on SAP BTP, Mendix can create a JSON file for you. See [Application Autoscaler for SAP Business Technology Platform](/developerportal/deploy/sap-cloud-platform/sap-autoscaler/) for more information. +{{% /alert %}} + +To upload the JSON **File** for service binding, follow these steps: + +1. Select the service in the **Service To Be Bound** section. +2. Click the three-dot ({{% icon name="three-dots-menu-horizontal" %}}) icon next to the service for which you want to upload the file. +3. Select **Add Binding Configuration**. +4. Select the JSON **File** to upload and click **Save**. + +The service bindings are created with the provided configurations when you restart the application. + +{{% alert color="info" %}} +If you receive an error and the service fails to bind, check all aspects of your SAP account. The error message may not provide full information about, for example, which plans you are allowed to choose for a particular service. +{{% /alert %}} + +If you receive an error trying to restart the app, refer to the [App Does Not Start](#appnotstart) section below. + +#### Unbinding and Removing Services + +If you no longer require a service, you can unbind it or remove it from your app. + +##### Unbinding a Service + +1. Click the three-dot ({{% icon name="three-dots-menu-horizontal" %}}) icon next to the service you want to unbind in the **Bound Services** section. +1. Select one of the following: + * **Unbind Service** – unbinds the service instance and moves it to the **Services To Be Bound** section. The service is bound again next time your app is restarted. + * **Delete Service** – unbinds the service instance from the application and deletes the service instance from your environment. + +1. If you want to **Delete Service**, confirm by clicking the appropriate button: + + * **Delete & Restart App** – confirms the delete action and restarts the app + * **Delete** – if you want to unbind more services or do not want the change to happen immediately, you can choose **Delete**. However, this may leave the app in an unstable state as the service is deleted from the environment. + * **Cancel** – does not delete or unbind this service + + Once the service is deleted, it is deleted from the app environment and returned to the list of **Available Services**. If the service is unbound but not deleted, it is returned to the list of **Services To Be Bound** and is rebound next time the app is restarted. + +##### Removing an Unbound Service {#unbound-services} + +1. Click the three-dots ({{% icon name="three-dots-menu-horizontal" %}}) icon next to the service you want to remove in the **Services To Be Bound** section. +1. Select **Remove Service** and confirm by clicking **Remove**. + + The service is deleted from the app environment and returned to the list of **Available Services**. + +#### Adding Binding Configuration + +When a service is in the **Services To Be Bound** section, you can add a new binding configuration if this is supported by the service and the Mendix Portal. + +If you want to change the configuration of a service which is already bound, unbind the service first, as described in the [Removing an Unbound Service](#unbound-services) section. + +1. Click the three-dot ({{% icon name="three-dots-menu-horizontal" %}}) icon next to the service you want to (re)configure in the **Services To Be Bound** section. + +2. Select **Add Binding Configuration**. + +3. You can either use the Configurator to create your configuration by clicking **Open Editor**, or click **Browse** to upload an existing file as the configuration. + + {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/add-binding-config.png" alt="" >}} + + See the documentation for the service you are configuring for more information. + +#### Service Names + +The services which are created by the Mendix Portal are named automatically. You can see these names in the SAP BTP cockpit. Normally, the name of the service is **App name** + **_** + **Environment Name** + **_** + **a random six-character suffix**. All spaces are removed from the app and environment names. For example, `MyApp_Development_c7sd9q`. + +However, the maximum length for the service name is 50 characters. If this limit would be exceeded by the name created above, an alternative service name is used. The format of this is **Environment Name** + **_** + **a random six-character suffix**. If the Environment name is longer than 43 characters, only the first 43 characters are used. + +### Runtime Tab {#runtime-tab} + +In the **Runtime** tab, you can **Add**, edit ({{% icon name="pencil" %}}), or delete custom runtime settings and environment variables. + +{{% alert color="info" %}} +New values are only applied when you restart your app. The value which is currently applied is shown under **Current Value**. +{{% /alert %}} + +#### Custom Runtime Settings + +You can add custom server settings which configure Mendix Runtime beyond the standard SAP deployment. See [Runtime Customization](/refguide/custom-settings/) and the [Mendix Cloud Foundry Buildpack GitHub repository](https://github.com/mendix/cf-mendix-buildpack#mendix-runtime-configuration) for information about the settings which are available. + +#### Custom Environment Variables + +##### Supported Environment Variables + +You can add supported variables by selecting them from a dropdown list. + +* **DT_PAAS_TOKEN** – the token for integrating your Dynatrace environment with Cloud Foundry +* **DT_SAAS_URL** – the monitoring endpoint URL of the Dynatrace service +* **DT_TENANT** – the unique identifier of your Dynatrace environment +* **DT_IS_MANAGED** – a variable to enable metrics integration for DT Managed +* **DT_CLUSTER_ID** – tag your cluster, process group, or deployment group +* **DT_CUSTOM_PROP** – provide metadata for your process group +* **NON_MENDIX_PUBLIC_CLOUD** – must be set to **true** when using Datadog, Dynatrace, or other similar tools + +The variables beginning with **DT_** set up Dynatrace. Setting these variables means that the Dynatrace OneAgent is loaded into your environment. You receive all Java-related metrics from your app. See [Dynatrace OneAgent](https://www.dynatrace.com/support/help/setup-and-configuration/dynatrace-oneagent/) for more information. + +##### Unsupported Environment Variables + +You can also enter other environment variables which can be used to support Mendix features which are in beta. In this case, click **No** for **Supported?**, and enter the **Name** of the variable and **New Value**. + +{{% alert color="info" %}} +Only use unsupported environment variables if you know exactly what you are doing. Incorrect values can prevent the Mendix Runtime from starting. +{{% /alert %}} + +## Databases in SAP BTP {#databases} + +Mendix needs access to a relational database back end and can run using different types of database. For deployment to SAP BTP, you have the choice of PostgreSQL, Hyperscaler Option, or SAP HANA. + +### Running Mendix on PostgreSQL, Hyperscaler Option {#sap-hyperscaler} + +{{% alert color="info" %}} +SAP has removed some of the PostgreSQL databases available in their marketplace. If you need a PostgreSQL database, you will have to use PostgreSQL, Hyperscaler Option as your database. This requires some extra configuration which is described below. Alternatively, you can use [SAP HANA](#sap-hana). +{{% /alert %}} + +Select the **postgresql-db** (PostgreSQL, Hyperscaler Option) database service from the **Available Services**. + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/postgresql-service.png" alt="" >}} + +Upload a file which contains the configuration for this database. Click **Browse** to select your configuration file. You can use the [SAP Hyperscaler PostgreSQL Configurator](#postgresql-configurator) to help you create the configuration file. For more information, refer to the [Parameters](https://help.sap.com/viewer/b3fe3621fa4a4ed28d7bbe3d6d88f036/Cloud/en-US/0630e03aa45d479eaf806c564dc2447a.html) section of *PostgreSQL on SAP Business Technology Platform, Hyperscaler Option*. + +During the creation of the environment, the selected PostgreSQL, Hyperscaler Option service is added to your space. When you deploy your app, the app is bound to it. + +This database service should not be unbound from your environment. For more information on required services, see the [Services Tab](#binding-services) above. + +#### SAP Hyperscaler PostgreSQL Configurator {#postgresql-configurator} + +To get help to create the configuration file, click **Configurator**. + +You can set the required values for your **SAP Hyperscaler PostgreSQL** database. Tooltips describe the values which you need to provide. + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/postgresql-configurator.png" alt="" >}} + +{{% alert color="warning" %}} +There is no validation on the value of the **Source Instance ID** or **Restore Time** you enter for Standard or Premium plans. If you have issues, check that you entered the correct value here. +{{% /alert %}} + +Click **Upload Configuration To Service** to automatically apply the generated configuration to the PostgreSQL, Hyperscaler Option database service. Alternatively, click **Download Configuration File** to create the file which you can then use on the **Services** tab to configure your PostgreSQL, Hyperscaler Option database. + +### Running Mendix on SAP HANA {#sap-hana} + +{{% alert color="info" %}} +You can only use SAP HANA as the Mendix database for Mendix V7.23.3 and above. + +There are also some differences in the way that Mendix can be used with SAP HANA compared to a PostgreSQL, Hyperscaler Option database. For more information, see [SAP HANA – Known Issues](/refguide/saphana/). +{{% /alert %}} + +#### SAP HANA Configuration for Full Accounts + +To run a Mendix application on SAP BTP using SAP HANA as the database, there are two options. Both options need to be set up in the SAP BTP cockpit. You can choose one of the following options: + +* Provision the SAP HANA DB Service and make it available in your application space. +* Provision SAP HANA Cloud and make this service available to your application space. + +Once one of these services is available, you can use the SAP Cloud deployment functions of the Mendix Portal to deploy your app and use the **HANA_SCHEMA** service to bind your application to the provisioned service. The HANA_SCHEMA creates a separate schema on the SAP HANA Database which isolates your application's data from other applications. In this way, the SAP HANA DB/Cloud Service is shared across applications. + +{{% alert color="warning" %}} + +* Do not attempt to add the SAP HANA *service* to your app. It is the SAP HANA *schema* which needs to be bound to your app. + +* Do not use the **Services** tab or the SAP BTP Marketplace to add both a PostgreSQL, Hyperscaler Option database and an SAP HANA schema to your app. If you do this, it is not possible to predict which database your Mendix app will choose to bind. +{{% /alert %}} + +If you have issues with your app running on SAP HANA, use the SAP BTP cockpit to investigate. The Mendix Portal does not have information on the status or configuration of the SAP HANA service. + +#### SAP HANA Configuration for Trial Accounts + +For new trial accounts, you can bind your Mendix app to a trial SAP HANA database. Choose **hanatrial-securestore** from the drop-down of supported databases. + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/hanatrial.png" alt="" >}} + +Some older trial accounts do not include `hanatrial-securestore`. In this case, you can get an error when you try to deploy your Mendix app saying that *provisioning has failed because service hanatrial with plan securestore is not found*. + +#### SAP HANA Performance Tuning + +If your SAP HANA database has performance issues, you can improve it by performing the following tuning: + +1. Obtain the following service binding credentials from the **Environment Variables** of SAP BTP cockpit, or via the CLI: + + * Host + * Url + * Schema + * Password + * User + +1. Go to the [Runtime tab](#runtime-tab) of your app environment. +1. Enter the following unsupported environment variables with the associated values, using the values taken from the service binding credentials: + + | Variable | Value | + | --- | --- | + | MXRUNTIME_DatabaseHost | {host} | + | MXRUNTIME_DatabaseJdbcUrl | {url} + `&nonBlockingIO=false&timeZonePerObject=false&packetSize=130000&closeHandlesByCleaner=false&transactionalLobs=false&maxLazyDroppedStatements=100&statementCacheSize=500&deferredPrepared=true` | + | MXRUNTIME_DatabaseName | {schema} | + | MXRUNTIME_DatabasePassword | {password} | + | MXRUNTIME_DatabaseUserName | {user} | + | MXRUNTIME_DatabaseType | `SAPHANA` | + +1. Go to the [General tab](#general-tab) and restart your app to apply the changes. + +The additional parameters that you added to the URL in the `MXRUNTIME_DatabaseJdbcUrl` set the following tuning parameters: + +| Parameter | Value | +| --- | --- | +| closeHandlesByCleaner | false | +| deferredPrepare | true | +| maxLazyDroppedStatements | 100 | +| nonBlockingIO | false | +| packetSize | 130000 | +| statementCacheSize | 500 | +| timeZonePerObject | false | +| transactionalLobs | false | + +## Deleting an App + +If you are the last person to leave a Mendix app, you can delete the app. However, this does not delete the app or resources on SAP BTP. To leave the app, find it on the [My Apps](https://sprintr.home.mendix.com/link/myapps) page in the Mendix Portal and click **Leave app**. + +If you are the last member of the app development team, you are asked if you want to delete the app. + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/delete-app.png" alt="" >}} + +{{% alert color="info" %}} +This action does not stop the app or delete the deployment of the app in SAP BTP. + +If you want to delete your app and all its resources, delete the environment and resources first before you leave the app via the Mendix Portal. +{{% /alert %}} + +You can still delete the app and its resources from the SAP BTP cockpit, but you will then have to remove all the resources individually. + +## Migrating from SAP Application Logging to SAP Cloud Logging {#migrating-cloud-logging} + +Since SAP Application Logging will soon be deprecated, migrate your logging service to SAP Cloud Logging for older environments still using SAP Application Logging. To complete the migration, follow these steps: + +1. In the **Services** tab of the **Environment Details** page, search for and select **cloud-logging** in the **Available Services** field. + + {{% alert color="info" %}}Your user account must have entitlements for the SAP Cloud Logging service in SAP BTP.{{% /alert %}} + +1. Select the appropriate **Plan** and upload a file if required. +1. Click **Connect Selected Services** and restart your application to bind the new SAP Cloud logging service. +1. At this point, both the **application-logs** and **cloud-logging** services are active for your application. +1. Retain the **application-logs** service until its log retention period ends to ensure access to existing log entries. Then, delete it following the instructions provided in the [Unbinding and Removing Services](#unbinding-and-removing-services) section. After this, only the new SAP Cloud Logging service remains active. +1. When using the **cloud-logging** service, upgrade **SapApplicationLogs** to the latest version. If you are using an older version, update the **Default Value** of the **ApplicationLoggingService** constant to *cloud-logging* in the [SAP Logging Connector](https://marketplace.mendix.com/link/component/110219). For more information, refer to the [Using the Connector](/appstore/modules/sap/sap-logger/#using-the-connector) section of *SAP Logging Connector*. +1. You can view the logs of an environment using SAP Cloud Logging in your application's logs. For more details, see the [Viewing the Logs](/developerportal/deploy/sap-cloud-platform/sap-monitoring/#viewing-the-logs) section of *Monitoring Environments in Mendix Apps on SAP BTP*. + +## Troubleshooting + +If you encounter any issues with your apps on SAP BTP, use the following troubleshooting tips to help you solve them. + +### Environment is not Created + +If you add an environment and it fails to be created, it will be shown with a red symbol next to it on the Environments page: + +#### Cause + +This could be caused by exceeding your organization's quota limit for a service which you are trying to create, or for some other reason. To find the exact cause, do the following: + +1. Click **Details** next to the failed environment. + + {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/failed-details.png" alt="" >}} + +2. Click **Details** on the error message at the top of the page and you will get a detailed description of the reason why the environment creation failed. + + {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/failed-more-details.png" alt="" >}} + +#### Solution + +Resolve the issue described in the error message. + +### App Does Not Start {#appnotstart} + +Under some circumstances, an app with a service in the **Services To Be Bound** status will not restart. + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/error-service-bind.png" alt="" >}} + +#### Cause + +This indicates that SAP BTP cannot bind the service, even though it has been instantiated correctly. + +#### Solution + +If you remove the service from the app, the app restarts successfully. + +If you are trying to bind more than one new service, you cannot identify within the Mendix Portal which service is causing the issue. You may need to remove all the services or go to SAP BTP cockpit, where you can use the service name in the error message to find which service is causing the error. + +### An Error Occurs While Deploying App from Studio Pro + +If an app is deployed to SAP using the Studio Pro **Run** or **Publish** button before it has been started from the Mendix Portal, the deployment fails. + +#### Cause + +The deployment fails because the marketplace services have not been bound. + +#### Solution + +If you use the Mendix Portal to look at the details of the environment to which you are deploying, you see that the services are still waiting to be bound. + +{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/not-bound-error.png" alt="" >}} + +Start the app from the Mendix Portal to bind the services. Once they are bound, you can deploy your app from Studio Pro as usual. + +### Error: Unable to Initialize Metrics Client: Unsupported Metric Type + +The app cannot be started with Datadog, Dynatrace, or other similar tools configured. The following error is displayed: `Caused by: com.mendix.metrics.MonitoringConfigurationError: Unable to initialize Metrics client: unsupported metric type: statsd` + +#### Cause + +Starting from Mendix 9.7, support for `statsd` is removed. + +#### Solution + +1. In the [Runtime tab](/developerportal/deploy/sap-cloud-platform/#runtime-tab), in the **Custom Environment Variables** section, add a new variable with the following settings: + + * **Supported** – select **Yes** + * **Name** – select **NON_MENDIX_PUBLIC_CLOUD** + * **Value** – select **true** + +1. Redeploy your application and restart it. Just restarting the app is not sufficient because additional dependencies need to be included. + +## Status of SAP BTP Deployment + +The Mendix status page ([https://status.mendix.com/](https://status.mendix.com/)) shows the current status of Mendix services. If you have issues with deploying to SAP BTP via the Mendix Portal, check the Mendix status page to see if SAP BTP deployment is operational (under **Mendix Services**) or if there are other Mendix issues which may be affecting your deployment. + +## Read More + +* [SAP Single Sign-On](/developerportal/deploy/sap-cloud-platform/sap-single-sign-on/) diff --git a/content/en/docs/deployment/sap-btp/sap-monitoring.md b/content/en/docs/deployment/sap-btp/sap-monitoring.md index 1746bb75434..a6923101ebc 100644 --- a/content/en/docs/deployment/sap-btp/sap-monitoring.md +++ b/content/en/docs/deployment/sap-btp/sap-monitoring.md @@ -1,7 +1,7 @@ --- title: "Monitoring Environments in Mendix Apps on SAP BTP" url: /developerportal/deploy/sap-cloud-platform/sap-monitoring/ -weight: 19 +weight: 30 description: "Presents reference information on logging and monitoring for Mendix apps running on SAP BTO." --- diff --git a/content/en/docs/deployment/sap-btp/sap-single-sign-on.md b/content/en/docs/deployment/sap-btp/sap-single-sign-on.md index ffb8d880497..1d7451f3696 100644 --- a/content/en/docs/deployment/sap-btp/sap-single-sign-on.md +++ b/content/en/docs/deployment/sap-btp/sap-single-sign-on.md @@ -1,7 +1,7 @@ --- title: "SAP Single Sign-On" url: /developerportal/deploy/sap-cloud-platform/sap-single-sign-on/ -weight: 50 +weight: 80 description: "Reference information on SAP Single Sign-On" aliases: - /partners/sap/sap-single-sign-on/ From eabdceed59bb77d4b06bf49c8b149d70152bc43b Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Tue, 16 Jun 2026 16:59:07 +0530 Subject: [PATCH 2/6] Write "Introduction" --- .../deployment/sap-btp/sap-environments.md | 493 +----------------- 1 file changed, 4 insertions(+), 489 deletions(-) diff --git a/content/en/docs/deployment/sap-btp/sap-environments.md b/content/en/docs/deployment/sap-btp/sap-environments.md index 22b8f3f7c54..a681844b861 100644 --- a/content/en/docs/deployment/sap-btp/sap-environments.md +++ b/content/en/docs/deployment/sap-btp/sap-environments.md @@ -3,285 +3,21 @@ title: "SAP Environment Details" linktitle: "SAP Environment Details" url: /developerportal/deploy/sap-cloud-platform/environments weight: 20 -description: "Describes how to deploy to SAP Business Technology Platform." +description: "Describes SAP Business Technology Platform Environment Details." #To update these screenshots, you can log in with credentials detailed in How to Update Screenshots Using Team Apps. #If moving or renaming this doc file, implement a temporary redirect and let the respective team know they should update the URL in the product. See Mapping to Products for more details. --- ## Introduction -As an SAP developer, you want to deploy your Mendix app on the SAP Business Technology Platform (SAP BTP). This document explains how to create environments, deploy to SAP BTP, and manage these deployments using the Mendix Portal. +The **Environment Details** page is the central location for configuring and managing your Mendix app environments on SAP BTP. This page provides access to deployment settings, service bindings, runtime configuration, and operational controls for each environment. -This document describes two ways of managing SAP BTP: - -* Initial setup of the environment when creating a new app – see the [Set Up SAP BTP for the First Time](#FirstTime) section -* Create a new environment for an existing app – see the [Create a New Environment](#NewEnvironment) section - -{{% alert color="info" %}} -You can deploy Mendix applications to Cloud Foundry regions on SAP Business Technology Platform, not to Neo regions. -{{% /alert %}} - -## Setting Up SAP BTP for the First Time {#FirstTime} - -Before you can manage your SAP BTP using the Mendix Portal, set it up. There are two circumstances under which you need to set up SAP BTP for the first time: - -1. You have an existing app that has never been deployed on SAP BTP, and you want to change the cloud settings – see [Change Cloud Settings](#ChangeCloudSettings) -2. You are creating a new app from an SAP app template – see [New SAP App](#NewSAPApp) - -### Changing the Cloud Settings {#ChangeCloudSettings} - -In this scenario, you have an existing app which is running in another environment, for instance, on Mendix Cloud. To change this, open your app in [Apps](https://sprintr.home.mendix.com/), go to **Settings**, and switch to the **Cloud Settings** tab. - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/cloud-settings.png" alt="" >}} - -Click **Set up** on **SAP BTP Cloud Deployment** to go to the SAP BTP welcome page. - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/cloud-settings-landing-page.png" alt="" >}} - -Click **Getting Started**, and continue with [Set Up Region](#SetUpRegion). - -### New SAP App {#NewSAPApp} - -In this scenario, you choose a Mendix app template for SAP from the **SAP Apps** tab and give it a name. - -{{% alert color="warning" %}} -The app name that you provide is passed to SAP BTP as the host name parameter used when creating [routes](https://help.sap.com/docs/btp/sap-business-technology-platform/create-routes). Because of that, the name that you use for your SAP app should only contain characters that are valid when used in a host name (such as ASCII letters from A to Z, digits from 0 to 9, and hyphens). If your app name contains an invalid character, you will receive an error message when trying to create the app. -{{% /alert %}} - -Once the app has been created, you can continue with [Set Up Region](#SetUpRegion). - -### Setting Up the Region {#SetUpRegion} - -An SAP BTP login screen appears. Select the region where your SAP BTP is located. - -{{% alert color="info" %}} -Currently supported regions are: - -* Australia (Sydney) -* AWS Japan -* AWS Singapore -* Azure Japan -* Azure Singapore -* Azure US East (VA) -* Azure US West (WA) -* Brazil (São Paulo) -* Canada (Montreal) -* Europe (Frankfurt) -* Europe (Frankfurt) - 004 -* Europe (Netherlands) -* Europe (Netherlands) - 001 -* US Central (IA) Beta -* US East (VA) -* US East (VA) - 001 - -Contact Mendix Support if you have a requirement for an additional region. -{{% /alert %}} - -Make sure that you have enough quota in this region for your organization to run a Mendix app. You need enough quota to create the following: - -* Database -* Route -* Binding to XSUAA - -If you have already signed in to SAP and your SAP session has not expired, you only have to choose the region. If you do not have a current SAP session, you are also asked for your SAP credentials. Providing your credentials grants the Deployment Portal access to manage your SAP BTP account. - -You may be asked to provide your credentials in one of two ways: - -* You are taken to the SAP authentication page to enter your credentials. In this case, your SAP user name (email address) must be the same as your Mendix user name. -* The Mendix Portal asks for your credentials, which it then uses to obtain an access token from SAP. The Mendix Portal then uses the access token, but does not store your credentials. (Note that this method is being deprecated.) - -{{% alert color="info" %}} -If you have issues using SAP authentication, refer to [SAP Single Sign-On](/developerportal/deploy/sap-cloud-platform/sap-single-sign-on/). -{{% /alert %}} - -Provide the final details for the SAP BTP development environment. - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/creating-development.png" alt="" >}} - -Choose a **Domain**, **Organization**, and **Space** which is configured for you in this region. - -If you do not choose a **Custom database**, you can still choose from a range of different databases, such as PostgreSQL, Hyperscaler Option, and SAP HANA. Ensure that the database you choose is supported by your quota plan for this region and organization. See [Databases in SAP BTP](#databases) for important information on selecting the correct database for your app. - -If you select **Yes** for **Custom database**, provide the details for the **Name** and the **Plan**. - -After the environment has been created successfully, a confirmation message appears. Your development environment is now configured, and you can develop your app. - -## Creating a New Environment {#NewEnvironment} - -You can create several environments for your app. For example, you may have created a development environment, but you may want environments for test, acceptance, production, and so forth. Additionally, when you switch from another cloud, you need to create at least one environment for your Mendix application. - -You can do this in the **Environments** page after opening your app in [Apps](https://sprintr.home.mendix.com/). - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/finish-environment.png" alt="">}} - -The **Environments** page shows the following tabs: - -* An **Overview** of environments for this app -* A list of **Deployment Packages** for this app -* An overview of the deployment **Activity** performed on this app - -To create a new environment, perform the following steps: - -1. Click **Add Environment** to start the wizard. - -2. Select the region where you want your app to be deployed. If no session is active for that region, or the current session does not have access to that region, you may need to enter your SAP credentials for that region. - -3. Select the **CF Domain**, **Organization**, and **Space** of your app. The URL of the domain forms part of the application's URL. The URL of the application will be: - - ```text - {appname}-{environment name}.{domain} - ``` - - An example URL is: - - ```http - https://myapp-development.cfapps.eu20.ondemand.com - ``` - - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/add-environment.png" alt="">}} - -4. Click **Next**. - -5. Enter the name of the environment. This can be anything you choose, for example, Test, Acceptance, or Production. - - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/new-environment.png" alt="" >}} - -6. Set the size of the memory that the app needs in order to run. This can also be changed later. - -7. Set **Development Mode** to *Yes* if you want the application to run with the Mendix security level of Prototype/demo, or *No* for no security. This is not recommended for acceptance or production environments. - -8. Select the database you would like to use. Be aware that even if a specific database is part of the Marketplace, it could still be unavailable because of limitations imposed by the quota of your organization. See [Databases in SAP BTP](#databases) below for information on selecting the correct database for your app. - - If you choose **Custom Database**, enter a **Name** for the database and the **Plan**. - -9. Enable **ObjectStore** if your application makes use of file document or image objects. Other sorts of objects do not need **ObjectStore** to be enabled. - -10. To configure logging, select the **Logging** service from the dropdown. - - {{% alert color="info" %}}**application-logs** has been the default logging service, but will be deprecated soon. See [SAP Application Logging Service](https://help.sap.com/docs/application-logging-service/sap-application-logging-service/what-is-sap-application-logging-service) for more details on the deprecation of **Application Logs**. For older environments still using the **Application Logs** service, see the [Migrating from SAP Application Logging to SAP Cloud Logging](#migrating-cloud-logging) section to ensure continued logging support.{{% /alert %}} - -11. Set a **Subscription Secret** (required). This secret is associated with your Mendix production license. By entering the subscription secret, your application runs in this environment as production. If the subscription secret is invalid, your app still runs, but restarts every two to four hours and has a limitation of six concurrent users. - - {{% alert color="info" %}}If you do not have a subscription secret, refer to [Obtaining a Mendix License](/developerportal/deploy/licensing-apps-outside-mxcloud/#get-license) of *Licensing Apps* for details on submitting a request to Mendix Support.{{% /alert %}} - -12. Optionally, you can add **Redirect URLs** if you want the user to be redirected to a custom URL after they have logged in using XSUAA. - -13. Click **Next** to create the environment and finish the setup. - -An environment is created. With more than one environment created, you can transport your application between environments. See [Transporting to an Environment](#transport) for more information. - -## Preparing Packages for Deployment - -There are two ways to get a package ready to deploy to SAP: - -* Creating a package directly from a version of the app model held in Team Server -* Uploading a package which has already been created - -### Creating a Package from Team Server - -At any time, you can create a new deployment package from a committed version of the project. If you are working with Mendix Studio Pro, you will first have to commit the project. - -{{% alert color="info" %}} -You can also deploy your app automatically from Studio Pro. However, you have less control over the deployment. - -If you click **Run** or **Publish** in Studio Pro, this automatically does the following: - -1. Commits the app -2. Generates a deployment package -3. Deploys the deployment package to the first available environment (this replaces any app which is currently running in this environment) -{{% /alert %}} - -{{% alert color="warning" %}} -You still have to deploy your app in [Apps](https://sprintr.home.mendix.com/) the first time to ensure that all the services are bound correctly. -{{% /alert %}} - -1. Open the app in [Apps](https://sprintr.home.mendix.com/). In the **Environments** page, select the **Deployment Packages** tab. This tab shows the list of built packages. - - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/deployment-package.png" alt="">}} - -2. Click **Create a Package** and select the **Branch** on the Team Server which you want to use. Click **Next**. - -3. Select the **Revision** of the branch you want to build and click **Next**. - -4. Add a **New version** number and **Tag description** as required. The revision number is added to the version number automatically. - -5. Click **Build this revision** to build the package. - -### Uploading an MDA - -Alternatively, you can upload an MDA which has already been created from the app model, for example, using [Create Deployment Package](/refguide/create-deployment-package-dialog/) from the **App** menu in Studio Pro. - -1. Click **Upload a Package** in the **Deployment Packages** tab. - -2. Select the package accessible to your local machine. - -3. Click **Upload** to upload the MDA. - -The package is added to the list of packages in the **Deployment Packages** tab. To deploy your package, follow the instructions in the [Deploy Package](#DeployPackage) section. +Use the **Environment Details** page to configure how your app runs, manage Cloud Foundry services, set environment variables, and monitor your app's status. Changes made here persist across deployments and override any temporary changes made directly in the SAP BTP cockpit. {{% alert color="info" %}} -There is a limit of 200 MB on the size of the MDA file you can upload to the Mendix Portal for SAP BTP deployment. +To access the Environment Details page, go to **Environments** in [Apps](https://sprintr.home.mendix.com/) and click the details ({{% icon name="pencil-write-paper" %}}) icon next to your environment. You will also be taken to this page when you successfully deploy or transport your app. {{% /alert %}} -## Deploying a Package {#DeployPackage} - -{{% alert color="warning" %}} -SAP BTP [has a limit of 1.5 GB](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/9c7092c7b7ae4d49bc8ae35fdd0e0b18.html#loio9809fa4f02cb4696baea5c23d6eaac94) on the size of a deployment package. -{{% /alert %}} - -A green tick indicates that the build has finished. Click the deploy icon ({{% icon name="deploy" %}}) to deploy the package to SAP BTP. - -### Transporting to an Environment {#transport} - -1. In the **Transport** tab, change the deployment **Environment** if required. - - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/transport.png" alt="">}} - -2. The **Timeout (seconds)** value indicates how long Cloud Foundry will wait between starting an app and the first healthy response from the app before deciding that the application has failed to start. For some apps, the default (60 seconds) is too short. If your app is failing to start, you can try increasing this value. - -3. Click **Transport** to deploy the package to the SAP environment. This replaces any current app deployed to this environment. If the app is already running, stop it so that your new app can be deployed. - -Environments without deployed apps do not have the transport option available. - -You can also transport to the required environment from the **Overview** tab of the **Environments** page. - -### Configuring an Environment {#ConfigureTheApplication} - -1. Once your package is transported, you are redirected to the **Configure Environment** tab. - -2. To change any constants from the **Constants** list, select the constant you want to edit and click the edit ({{% icon name="pencil" %}}) icon. - - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/edit-constants.png" class="no-border" >}} - -3. In the **Scheduled Events** section, select the scheduled event you want to *Enable* or *Disable* and click **Next**. For more information, refer to [Scheduled Events](#schedules-events). - -### Unbinding and Deleting Service Instances - -1. In the **Services** tab, select any additional services you need for your app. For more information, see the [Services tab](#binding-services). - -{{% alert color="warning" %}}In your initial deployment, do not remove any of the services with the status **Bound Services**. For a new app, these services are required for the correct deployment of the app.{{% /alert %}} - -1. If you want to remove a service instance from your environment, click the three-dot ({{% icon name="three-dots-menu-horizontal" %}}) menu for the service and select **Unbind Service** or **Delete Service**. - - The options do the following: - - * **Unbind Service** – unbinds the service instance and moves it to the **Services To Be Bound** section. The service is bound next time your app is restarted. - * **Delete Service** – unbinds the service instance from the application and deletes it from your environment. - -{{% alert color="info" %}}Once the service is deleted, it is deleted from the app environment and returned to the list of **Available Services**. If the service is unbound but not deleted, it is returned to the list of **Services To Be Bound** and is rebound next time the app is restarted.{{% /alert %}} - -### Runtime Settings and Environment Variables - -Click **Next** to continue to the **Runtime** tab. Here, you can **Add**, edit ({{% icon name="pencil" %}}), or delete ({{% icon name="trash-can-filled" %}}) custom runtime settings and environment variables. For more information, refer to [Runtime](#runtime-tab). Click **Next**. - -### Starting the Application - -1. On the **Start Application** tab, you can see the application details. Click **Start application** to start the application on SAP BTP. - -{{% alert color="info" %}}This binds any services which are in the status **Services To Be Bound**.{{% /alert %}} - -1. When the application has been started, you are taken to the **Environment Details** page for the selected environment. See [Environment Details](#EnvironmentDetails). - ## Environment Details {#EnvironmentDetails} The environment details page contains the following tabs: @@ -291,8 +27,6 @@ The environment details page contains the following tabs: * [Services](#binding-services) – Cloud Foundry service management * [Runtime](#runtime-tab) – custom environment variables which define **User-Provided Variables** in the SAP Cloud Foundry environment — pre-defined variables can be used to control the behavior of the Mendix Runtime -Open the environment details by clicking the details ({{% icon name="pencil-write-paper" %}}) icon on the **Environments** page of the Development Portal. You will also be taken to this page when you successfully deploy or transport your app. - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/env-details.png" alt="" >}} {{% alert color="info" %}}If you make changes to your app which you want to be applied next time the app is deployed, you must make them in the **Environment Details**. @@ -530,222 +264,3 @@ You can also enter other environment variables which can be used to support Mend Only use unsupported environment variables if you know exactly what you are doing. Incorrect values can prevent the Mendix Runtime from starting. {{% /alert %}} -## Databases in SAP BTP {#databases} - -Mendix needs access to a relational database back end and can run using different types of database. For deployment to SAP BTP, you have the choice of PostgreSQL, Hyperscaler Option, or SAP HANA. - -### Running Mendix on PostgreSQL, Hyperscaler Option {#sap-hyperscaler} - -{{% alert color="info" %}} -SAP has removed some of the PostgreSQL databases available in their marketplace. If you need a PostgreSQL database, you will have to use PostgreSQL, Hyperscaler Option as your database. This requires some extra configuration which is described below. Alternatively, you can use [SAP HANA](#sap-hana). -{{% /alert %}} - -Select the **postgresql-db** (PostgreSQL, Hyperscaler Option) database service from the **Available Services**. - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/postgresql-service.png" alt="" >}} - -Upload a file which contains the configuration for this database. Click **Browse** to select your configuration file. You can use the [SAP Hyperscaler PostgreSQL Configurator](#postgresql-configurator) to help you create the configuration file. For more information, refer to the [Parameters](https://help.sap.com/viewer/b3fe3621fa4a4ed28d7bbe3d6d88f036/Cloud/en-US/0630e03aa45d479eaf806c564dc2447a.html) section of *PostgreSQL on SAP Business Technology Platform, Hyperscaler Option*. - -During the creation of the environment, the selected PostgreSQL, Hyperscaler Option service is added to your space. When you deploy your app, the app is bound to it. - -This database service should not be unbound from your environment. For more information on required services, see the [Services Tab](#binding-services) above. - -#### SAP Hyperscaler PostgreSQL Configurator {#postgresql-configurator} - -To get help to create the configuration file, click **Configurator**. - -You can set the required values for your **SAP Hyperscaler PostgreSQL** database. Tooltips describe the values which you need to provide. - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/postgresql-configurator.png" alt="" >}} - -{{% alert color="warning" %}} -There is no validation on the value of the **Source Instance ID** or **Restore Time** you enter for Standard or Premium plans. If you have issues, check that you entered the correct value here. -{{% /alert %}} - -Click **Upload Configuration To Service** to automatically apply the generated configuration to the PostgreSQL, Hyperscaler Option database service. Alternatively, click **Download Configuration File** to create the file which you can then use on the **Services** tab to configure your PostgreSQL, Hyperscaler Option database. - -### Running Mendix on SAP HANA {#sap-hana} - -{{% alert color="info" %}} -You can only use SAP HANA as the Mendix database for Mendix V7.23.3 and above. - -There are also some differences in the way that Mendix can be used with SAP HANA compared to a PostgreSQL, Hyperscaler Option database. For more information, see [SAP HANA – Known Issues](/refguide/saphana/). -{{% /alert %}} - -#### SAP HANA Configuration for Full Accounts - -To run a Mendix application on SAP BTP using SAP HANA as the database, there are two options. Both options need to be set up in the SAP BTP cockpit. You can choose one of the following options: - -* Provision the SAP HANA DB Service and make it available in your application space. -* Provision SAP HANA Cloud and make this service available to your application space. - -Once one of these services is available, you can use the SAP Cloud deployment functions of the Mendix Portal to deploy your app and use the **HANA_SCHEMA** service to bind your application to the provisioned service. The HANA_SCHEMA creates a separate schema on the SAP HANA Database which isolates your application's data from other applications. In this way, the SAP HANA DB/Cloud Service is shared across applications. - -{{% alert color="warning" %}} - -* Do not attempt to add the SAP HANA *service* to your app. It is the SAP HANA *schema* which needs to be bound to your app. - -* Do not use the **Services** tab or the SAP BTP Marketplace to add both a PostgreSQL, Hyperscaler Option database and an SAP HANA schema to your app. If you do this, it is not possible to predict which database your Mendix app will choose to bind. -{{% /alert %}} - -If you have issues with your app running on SAP HANA, use the SAP BTP cockpit to investigate. The Mendix Portal does not have information on the status or configuration of the SAP HANA service. - -#### SAP HANA Configuration for Trial Accounts - -For new trial accounts, you can bind your Mendix app to a trial SAP HANA database. Choose **hanatrial-securestore** from the drop-down of supported databases. - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/hanatrial.png" alt="" >}} - -Some older trial accounts do not include `hanatrial-securestore`. In this case, you can get an error when you try to deploy your Mendix app saying that *provisioning has failed because service hanatrial with plan securestore is not found*. - -#### SAP HANA Performance Tuning - -If your SAP HANA database has performance issues, you can improve it by performing the following tuning: - -1. Obtain the following service binding credentials from the **Environment Variables** of SAP BTP cockpit, or via the CLI: - - * Host - * Url - * Schema - * Password - * User - -1. Go to the [Runtime tab](#runtime-tab) of your app environment. -1. Enter the following unsupported environment variables with the associated values, using the values taken from the service binding credentials: - - | Variable | Value | - | --- | --- | - | MXRUNTIME_DatabaseHost | {host} | - | MXRUNTIME_DatabaseJdbcUrl | {url} + `&nonBlockingIO=false&timeZonePerObject=false&packetSize=130000&closeHandlesByCleaner=false&transactionalLobs=false&maxLazyDroppedStatements=100&statementCacheSize=500&deferredPrepared=true` | - | MXRUNTIME_DatabaseName | {schema} | - | MXRUNTIME_DatabasePassword | {password} | - | MXRUNTIME_DatabaseUserName | {user} | - | MXRUNTIME_DatabaseType | `SAPHANA` | - -1. Go to the [General tab](#general-tab) and restart your app to apply the changes. - -The additional parameters that you added to the URL in the `MXRUNTIME_DatabaseJdbcUrl` set the following tuning parameters: - -| Parameter | Value | -| --- | --- | -| closeHandlesByCleaner | false | -| deferredPrepare | true | -| maxLazyDroppedStatements | 100 | -| nonBlockingIO | false | -| packetSize | 130000 | -| statementCacheSize | 500 | -| timeZonePerObject | false | -| transactionalLobs | false | - -## Deleting an App - -If you are the last person to leave a Mendix app, you can delete the app. However, this does not delete the app or resources on SAP BTP. To leave the app, find it on the [My Apps](https://sprintr.home.mendix.com/link/myapps) page in the Mendix Portal and click **Leave app**. - -If you are the last member of the app development team, you are asked if you want to delete the app. - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/delete-app.png" alt="" >}} - -{{% alert color="info" %}} -This action does not stop the app or delete the deployment of the app in SAP BTP. - -If you want to delete your app and all its resources, delete the environment and resources first before you leave the app via the Mendix Portal. -{{% /alert %}} - -You can still delete the app and its resources from the SAP BTP cockpit, but you will then have to remove all the resources individually. - -## Migrating from SAP Application Logging to SAP Cloud Logging {#migrating-cloud-logging} - -Since SAP Application Logging will soon be deprecated, migrate your logging service to SAP Cloud Logging for older environments still using SAP Application Logging. To complete the migration, follow these steps: - -1. In the **Services** tab of the **Environment Details** page, search for and select **cloud-logging** in the **Available Services** field. - - {{% alert color="info" %}}Your user account must have entitlements for the SAP Cloud Logging service in SAP BTP.{{% /alert %}} - -1. Select the appropriate **Plan** and upload a file if required. -1. Click **Connect Selected Services** and restart your application to bind the new SAP Cloud logging service. -1. At this point, both the **application-logs** and **cloud-logging** services are active for your application. -1. Retain the **application-logs** service until its log retention period ends to ensure access to existing log entries. Then, delete it following the instructions provided in the [Unbinding and Removing Services](#unbinding-and-removing-services) section. After this, only the new SAP Cloud Logging service remains active. -1. When using the **cloud-logging** service, upgrade **SapApplicationLogs** to the latest version. If you are using an older version, update the **Default Value** of the **ApplicationLoggingService** constant to *cloud-logging* in the [SAP Logging Connector](https://marketplace.mendix.com/link/component/110219). For more information, refer to the [Using the Connector](/appstore/modules/sap/sap-logger/#using-the-connector) section of *SAP Logging Connector*. -1. You can view the logs of an environment using SAP Cloud Logging in your application's logs. For more details, see the [Viewing the Logs](/developerportal/deploy/sap-cloud-platform/sap-monitoring/#viewing-the-logs) section of *Monitoring Environments in Mendix Apps on SAP BTP*. - -## Troubleshooting - -If you encounter any issues with your apps on SAP BTP, use the following troubleshooting tips to help you solve them. - -### Environment is not Created - -If you add an environment and it fails to be created, it will be shown with a red symbol next to it on the Environments page: - -#### Cause - -This could be caused by exceeding your organization's quota limit for a service which you are trying to create, or for some other reason. To find the exact cause, do the following: - -1. Click **Details** next to the failed environment. - - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/failed-details.png" alt="" >}} - -2. Click **Details** on the error message at the top of the page and you will get a detailed description of the reason why the environment creation failed. - - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/failed-more-details.png" alt="" >}} - -#### Solution - -Resolve the issue described in the error message. - -### App Does Not Start {#appnotstart} - -Under some circumstances, an app with a service in the **Services To Be Bound** status will not restart. - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/error-service-bind.png" alt="" >}} - -#### Cause - -This indicates that SAP BTP cannot bind the service, even though it has been instantiated correctly. - -#### Solution - -If you remove the service from the app, the app restarts successfully. - -If you are trying to bind more than one new service, you cannot identify within the Mendix Portal which service is causing the issue. You may need to remove all the services or go to SAP BTP cockpit, where you can use the service name in the error message to find which service is causing the error. - -### An Error Occurs While Deploying App from Studio Pro - -If an app is deployed to SAP using the Studio Pro **Run** or **Publish** button before it has been started from the Mendix Portal, the deployment fails. - -#### Cause - -The deployment fails because the marketplace services have not been bound. - -#### Solution - -If you use the Mendix Portal to look at the details of the environment to which you are deploying, you see that the services are still waiting to be bound. - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/not-bound-error.png" alt="" >}} - -Start the app from the Mendix Portal to bind the services. Once they are bound, you can deploy your app from Studio Pro as usual. - -### Error: Unable to Initialize Metrics Client: Unsupported Metric Type - -The app cannot be started with Datadog, Dynatrace, or other similar tools configured. The following error is displayed: `Caused by: com.mendix.metrics.MonitoringConfigurationError: Unable to initialize Metrics client: unsupported metric type: statsd` - -#### Cause - -Starting from Mendix 9.7, support for `statsd` is removed. - -#### Solution - -1. In the [Runtime tab](/developerportal/deploy/sap-cloud-platform/#runtime-tab), in the **Custom Environment Variables** section, add a new variable with the following settings: - - * **Supported** – select **Yes** - * **Name** – select **NON_MENDIX_PUBLIC_CLOUD** - * **Value** – select **true** - -1. Redeploy your application and restart it. Just restarting the app is not sufficient because additional dependencies need to be included. - -## Status of SAP BTP Deployment - -The Mendix status page ([https://status.mendix.com/](https://status.mendix.com/)) shows the current status of Mendix services. If you have issues with deploying to SAP BTP via the Mendix Portal, check the Mendix status page to see if SAP BTP deployment is operational (under **Mendix Services**) or if there are other Mendix issues which may be affecting your deployment. - -## Read More - -* [SAP Single Sign-On](/developerportal/deploy/sap-cloud-platform/sap-single-sign-on/) From f6c66349ddb57ca49653bc3a6e4a7877c5b875b0 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Tue, 16 Jun 2026 17:14:29 +0530 Subject: [PATCH 3/6] Arrange images folder --- content/en/docs/deployment/sap-btp/_index.md | 8 ++++---- .../deployment/sap-btp/sap-environments.md | 11 +++++------ .../sap-cloud-platform/connect-service.png | Bin 110151 -> 0 bytes .../add-binding-config.png | Bin .../sap-env-details/autoscaler-service.png | Bin 0 -> 29250 bytes .../env-details.png | Bin 6 files changed, 9 insertions(+), 10 deletions(-) delete mode 100644 static/attachments/deployment/sap-btp/sap-cloud-platform/connect-service.png rename static/attachments/deployment/sap-btp/{sap-cloud-platform => sap-env-details}/add-binding-config.png (100%) create mode 100644 static/attachments/deployment/sap-btp/sap-env-details/autoscaler-service.png rename static/attachments/deployment/sap-btp/{sap-cloud-platform => sap-env-details}/env-details.png (100%) diff --git a/content/en/docs/deployment/sap-btp/_index.md b/content/en/docs/deployment/sap-btp/_index.md index ce223fb7e07..3a478e30779 100644 --- a/content/en/docs/deployment/sap-btp/_index.md +++ b/content/en/docs/deployment/sap-btp/_index.md @@ -259,9 +259,9 @@ You can also transport to the required environment from the **Overview** tab of 1. In the **Services** tab, select any additional services you need for your app. For more information, see the [Services tab](#binding-services). -{{% alert color="warning" %}}In your initial deployment, do not remove any of the services with the status **Bound Services**. For a new app, these services are required for the correct deployment of the app.{{% /alert %}} + {{% alert color="warning" %}}In your initial deployment, do not remove any of the services with the status **Bound Services**. For a new app, these services are required for the correct deployment of the app.{{% /alert %}} -1. If you want to remove a service instance from your environment, click the three-dot ({{% icon name="three-dots-menu-horizontal" %}}) menu for the service and select **Unbind Service** or **Delete Service**. +2. If you want to remove a service instance from your environment, click the three-dot ({{% icon name="three-dots-menu-horizontal" %}}) menu for the service and select **Unbind Service** or **Delete Service**. The options do the following: @@ -278,9 +278,9 @@ Click **Next** to continue to the **Runtime** tab. Here, you can **Add**, edit ( 1. On the **Start Application** tab, you can see the application details. Click **Start application** to start the application on SAP BTP. -{{% alert color="info" %}}This binds any services which are in the status **Services To Be Bound**.{{% /alert %}} + {{% alert color="info" %}}This binds any services which are in the status **Services To Be Bound**.{{% /alert %}} -1. When the application has been started, you are taken to the **Environment Details** page for the selected environment. See [Environment Details](#EnvironmentDetails). +2. When the application has been started, you are taken to the **Environment Details** page for the selected environment. See [Environment Details](#EnvironmentDetails). ## Environment Details {#EnvironmentDetails} diff --git a/content/en/docs/deployment/sap-btp/sap-environments.md b/content/en/docs/deployment/sap-btp/sap-environments.md index a681844b861..e24b3587062 100644 --- a/content/en/docs/deployment/sap-btp/sap-environments.md +++ b/content/en/docs/deployment/sap-btp/sap-environments.md @@ -1,6 +1,6 @@ --- -title: "SAP Environment Details" -linktitle: "SAP Environment Details" +title: "Environment Details on SAP BTP" +linktitle: "Environment Details on SAP BTP" url: /developerportal/deploy/sap-cloud-platform/environments weight: 20 description: "Describes SAP Business Technology Platform Environment Details." @@ -59,7 +59,7 @@ The new password will not come into effect until you stop and start your environ #### View Recent Log -Click three-dots ({{% icon name="three-dots-menu-horizontal" %}}) icon and select **View Recent Log** to see recent events written to the log. +Click the three-dots ({{% icon name="three-dots-menu-horizontal" %}}) icon and select **View Recent Log** to see recent events written to the log. #### Delete Environment @@ -153,7 +153,7 @@ To connect a service in the **Available Services** section, do the following ste 3. Select a JSON file to upload if you need to add extra configuration. 4. Click **Connect Selected Services**. You can also **Review Services** before restarting your app. - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/connect-service.png" alt="" >}} + {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/autoscaler-service.png" alt="" >}} The services you have selected will be added as **Services To Be Bound**. Now, you can upload a JSON file with a configuration that will be applied to the service binding. @@ -204,7 +204,7 @@ If you no longer require a service, you can unbind it or remove it from your app 1. Click the three-dots ({{% icon name="three-dots-menu-horizontal" %}}) icon next to the service you want to remove in the **Services To Be Bound** section. 1. Select **Remove Service** and confirm by clicking **Remove**. - The service is deleted from the app environment and returned to the list of **Available Services**. +The service is deleted from the app environment and returned to the list of **Available Services**. #### Adding Binding Configuration @@ -263,4 +263,3 @@ You can also enter other environment variables which can be used to support Mend {{% alert color="info" %}} Only use unsupported environment variables if you know exactly what you are doing. Incorrect values can prevent the Mendix Runtime from starting. {{% /alert %}} - diff --git a/static/attachments/deployment/sap-btp/sap-cloud-platform/connect-service.png b/static/attachments/deployment/sap-btp/sap-cloud-platform/connect-service.png deleted file mode 100644 index 8fd3d905913d7fbf152059804fc8cdf1d8153df6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110151 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 S|1ZElc^Q>Qg%6*;`2PUf2HL6s diff --git a/static/attachments/deployment/sap-btp/sap-cloud-platform/add-binding-config.png b/static/attachments/deployment/sap-btp/sap-env-details/add-binding-config.png similarity index 100% rename from static/attachments/deployment/sap-btp/sap-cloud-platform/add-binding-config.png rename to static/attachments/deployment/sap-btp/sap-env-details/add-binding-config.png diff --git a/static/attachments/deployment/sap-btp/sap-env-details/autoscaler-service.png b/static/attachments/deployment/sap-btp/sap-env-details/autoscaler-service.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a326c468f2c4977a36560074055e9851062a08 GIT binary patch literal 29250 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 literal 0 HcmV?d00001 diff --git a/static/attachments/deployment/sap-btp/sap-cloud-platform/env-details.png b/static/attachments/deployment/sap-btp/sap-env-details/env-details.png similarity index 100% rename from static/attachments/deployment/sap-btp/sap-cloud-platform/env-details.png rename to static/attachments/deployment/sap-btp/sap-env-details/env-details.png From d96dd4c7cb8daa52c8fc6b45250b46efab11bda6 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Tue, 16 Jun 2026 17:16:27 +0530 Subject: [PATCH 4/6] Correct the image path --- content/en/docs/deployment/sap-btp/sap-environments.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/docs/deployment/sap-btp/sap-environments.md b/content/en/docs/deployment/sap-btp/sap-environments.md index e24b3587062..9eee5b390b4 100644 --- a/content/en/docs/deployment/sap-btp/sap-environments.md +++ b/content/en/docs/deployment/sap-btp/sap-environments.md @@ -27,7 +27,7 @@ The environment details page contains the following tabs: * [Services](#binding-services) – Cloud Foundry service management * [Runtime](#runtime-tab) – custom environment variables which define **User-Provided Variables** in the SAP Cloud Foundry environment — pre-defined variables can be used to control the behavior of the Mendix Runtime -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/env-details.png" alt="" >}} +{{< figure src="/attachments/deployment/sap-btp/sap-env-details/env-details.png" alt="" >}} {{% alert color="info" %}}If you make changes to your app which you want to be applied next time the app is deployed, you must make them in the **Environment Details**. @@ -153,7 +153,7 @@ To connect a service in the **Available Services** section, do the following ste 3. Select a JSON file to upload if you need to add extra configuration. 4. Click **Connect Selected Services**. You can also **Review Services** before restarting your app. - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/autoscaler-service.png" alt="" >}} + {{< figure src="/attachments/deployment/sap-btp/sap-env-details/autoscaler-service.png" alt="" >}} The services you have selected will be added as **Services To Be Bound**. Now, you can upload a JSON file with a configuration that will be applied to the service binding. @@ -218,7 +218,7 @@ If you want to change the configuration of a service which is already bound, unb 3. You can either use the Configurator to create your configuration by clicking **Open Editor**, or click **Browse** to upload an existing file as the configuration. - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/add-binding-config.png" alt="" >}} + {{< figure src="/attachments/deployment/sap-btp/sap-env-details/add-binding-config.png" alt="" >}} See the documentation for the service you are configuring for more information. From 38386b60c15a2fcf60c91ebb1a16d813457ef6a0 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Tue, 16 Jun 2026 17:24:27 +0530 Subject: [PATCH 5/6] Remove duplicates --- content/en/docs/deployment/sap-btp/_index.md | 256 +------------------ 1 file changed, 4 insertions(+), 252 deletions(-) diff --git a/content/en/docs/deployment/sap-btp/_index.md b/content/en/docs/deployment/sap-btp/_index.md index 3a478e30779..4a42ae252d7 100644 --- a/content/en/docs/deployment/sap-btp/_index.md +++ b/content/en/docs/deployment/sap-btp/_index.md @@ -272,7 +272,7 @@ You can also transport to the required environment from the **Overview** tab of ### Runtime Settings and Environment Variables -Click **Next** to continue to the **Runtime** tab. Here, you can **Add**, edit ({{% icon name="pencil" %}}), or delete ({{% icon name="trash-can-filled" %}}) custom runtime settings and environment variables. For more information, refer to [Runtime](#runtime-tab). Click **Next**. +Click **Next** to continue to the **Runtime** tab. Here, you can **Add**, edit ({{% icon name="pencil" %}}), or delete ({{% icon name="trash-can-filled" %}}) custom runtime settings and environment variables. For more information, refer to [Runtime](/developerportal/deploy/sap-cloud-platform/environments/#runtime-tab). Click **Next**. ### Starting the Application @@ -280,255 +280,7 @@ Click **Next** to continue to the **Runtime** tab. Here, you can **Add**, edit ( {{% alert color="info" %}}This binds any services which are in the status **Services To Be Bound**.{{% /alert %}} -2. When the application has been started, you are taken to the **Environment Details** page for the selected environment. See [Environment Details](#EnvironmentDetails). - -## Environment Details {#EnvironmentDetails} - -The environment details page contains the following tabs: - -* [General](#general-tab) – how the application is deployed on SAP BTP -* [Model Options](#model-options-tab) – application constants and scheduled events -* [Services](#binding-services) – Cloud Foundry service management -* [Runtime](#runtime-tab) – custom environment variables which define **User-Provided Variables** in the SAP Cloud Foundry environment — pre-defined variables can be used to control the behavior of the Mendix Runtime - -Open the environment details by clicking the details ({{% icon name="pencil-write-paper" %}}) icon on the **Environments** page of the Development Portal. You will also be taken to this page when you successfully deploy or transport your app. - -{{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/env-details.png" alt="" >}} - -{{% alert color="info" %}}If you make changes to your app which you want to be applied next time the app is deployed, you must make them in the **Environment Details**. - -Changes made to the app in the SAP BTP cockpit are only temporary and can be overwritten by the values in the Mendix Portal next time the app is deployed.{{% /alert %}} - -### General Tab {#general-tab} - -This tab contains information on how the application is deployed on SAP BTP. Most of this page shows information about the app, but there are several options which allow you to change the app. - -#### Start and Stop Application - -If the application is running, click **Stop Application** and confirm when asked to stop the application. - -The button will change to **Start Application** which you can click to start or restart the application. - -{{% alert color="info" %}} -You may need to use this option to stop and start your app after changing one of the settings on this page. -{{% /alert %}} - -If you receive an error trying to start the app, refer to the [App Does Not Start](#appnotstart) section below. - -#### Change Admin Password - -Find the three-dots ({{% icon name="three-dots-menu-horizontal" %}}) icon and click **Change Admin Password** to change the password for the administrator account (by default, MxAdmin) in your Mendix app. - -{{% alert color="warning" %}} -The new password will not come into effect until you stop and start your environment. -{{% /alert %}} - -#### View Recent Log - -Click three-dots ({{% icon name="three-dots-menu-horizontal" %}}) icon and select **View Recent Log** to see recent events written to the log. - -#### Delete Environment - -**Delete Environment** enables you to delete the environment and, optionally, all its resources, including the app. - -You are asked to confirm that this environment should be removed. You are also asked to confirm that the resources associated with the environment should also be removed. Note that the default is not to remove the resources. - -{{% alert color="info" %}} -If you do not select **Remove resources** in the dialog, the resources are left in SAP BTP. This is useful if you want to remove the environment but a resource cannot be removed. In this case, the resources can only be removed individually from within the SAP BTP cockpit. -{{% /alert %}} - -#### Change Development Mode - -Click **Change** to change the **Development Mode**. Set it to *Yes* if you want the application to run with only prototype security, or completely without security. This is not recommended for acceptance or production environments. - -#### Change App URL - -Click **Change** to change the **App URL** for this environment. - -#### Change Redirect URLs - -Click **Change** to change the **Redirect URLs**. Redirect URLs are custom URLs (for example, `appname.subdomain.domain.com`) where the user will be redirected after signing on using XSUAA, instead of being redirected to the generated URL (for example, `appname.cfapps.eu10.hana.ondemand.com`) of the app. - -#### Scaling - -If the app is started or stopped (that is, the environment has been created successfully and the app has been deployed without errors), options to scale the app are available. - -Use the **Instances** slider to change the number of instances of the app which can run. This allows you to scale the app horizontally to support large numbers of users, or to improve the app's resilience by allowing it to continue to run if there are any issues with one of the instances. - -Use the **Memory per instance** slider to change the amount of memory allocated to each instance of the app. - -Click **Scale Now** to apply the new settings. If the application is running, it is stopped and restarted to apply the settings. If it is stopped, it is not started automatically. The new settings are used the next time the application is started. - -Click **Cancel** to return the values to what they were before the sliders were moved. - -{{% alert color="info" %}} -You can also make use of the **Application Autoscaler** service on SAP BTP. Mendix provides assistance in setting up the parameters needed to configure the application autoscaler. For more information, see [Application Autoscaler for SAP Business Technology Platform](/developerportal/deploy/sap-cloud-platform/sap-autoscaler/). -{{% /alert %}} - -#### Change License Subscription ID - -Click **Change** to change the **Subscription Secret** which is the code which registers your production Mendix license to this environment. - -### Model Options Tab {#model-options-tab} - -This tab displays the application constants and allows you to edit them. It also lets you enable or disable scheduled events. - -{{% alert color="info" %}} -You need to restart your app if you change any of these options. -{{% /alert %}} - -#### Scheduled Events {#schedules-events} - -You can see the status of each scheduled event. **Currently Enabled** shows the status in the running app. **Enabled** shows the status that is applied the next time the app is restarted. - -To change the state of a scheduled event, select it and click **Enable** or **Disable** from **Actions** to change the **Enabled** flag. - -#### Constants - -You can see the value of all the constants used by the app. **Current Value** is the value in the running app. **New Value** is the value which is used the next time the app is restarted. - -To change a value, select the constant you want to change and click the edit ({{% icon name="pencil" %}}) icon. - -### Services Tab {#binding-services} - -This tab displays Cloud Foundry services which are bound to the app, waiting to be bound to the app, or available to be bound to the app. These are the services which are available to you in SAP BTP and are the same services that you can see in the SAP BTP marketplace. - -{{% alert color="warning" %}} -There are a number of services which your Mendix app requires. If you unbind any of these services, your app probably stops working: - -* Destination -* Xsuaa -* Database (PostgreSQL, Hyperscaler Option, or SAP HANA schema) -* Connectivity - -Select, bind, and unbind services through the **Services** page. Changes made in the SAP BTP cockpit are not reflected in the Mendix Portal. -{{% /alert %}} - -{{% alert color="info" %}} -Changes to **Bound Services** do not take place immediately. Stop and start your application to activate the changes. - -Services which are bound when the application is stopped and restarted are listed in the category **Services To Be Bound**. You also see an information message in this case. The button **Review Services** lists the services which are not currently bound. -{{% /alert %}} - -#### Connecting Services - -To connect a service in the **Available Services** section, do the following steps: - -1. Select one or more services (you can search for them by name). -2. Select a **Plan** for each service. This must be a plan which is part of your quota for this space. -3. Select a JSON file to upload if you need to add extra configuration. -4. Click **Connect Selected Services**. You can also **Review Services** before restarting your app. - - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/connect-service.png" alt="" >}} - - The services you have selected will be added as **Services To Be Bound**. Now, you can upload a JSON file with a configuration that will be applied to the service binding. - -{{% alert color="info" %}} -If you use the **PostgreSQL, Hyperscaler Option** service on SAP BTP, Mendix can create a JSON file for you. See [Running Mendix on PostgreSQL, Hyperscaler Option](#sap-hyperscaler). -{{% /alert %}} - -{{% alert color="info" %}} -If you use the **Application Autoscaler** service on SAP BTP, Mendix can create a JSON file for you. See [Application Autoscaler for SAP Business Technology Platform](/developerportal/deploy/sap-cloud-platform/sap-autoscaler/) for more information. -{{% /alert %}} - -To upload the JSON **File** for service binding, follow these steps: - -1. Select the service in the **Service To Be Bound** section. -2. Click the three-dot ({{% icon name="three-dots-menu-horizontal" %}}) icon next to the service for which you want to upload the file. -3. Select **Add Binding Configuration**. -4. Select the JSON **File** to upload and click **Save**. - -The service bindings are created with the provided configurations when you restart the application. - -{{% alert color="info" %}} -If you receive an error and the service fails to bind, check all aspects of your SAP account. The error message may not provide full information about, for example, which plans you are allowed to choose for a particular service. -{{% /alert %}} - -If you receive an error trying to restart the app, refer to the [App Does Not Start](#appnotstart) section below. - -#### Unbinding and Removing Services - -If you no longer require a service, you can unbind it or remove it from your app. - -##### Unbinding a Service - -1. Click the three-dot ({{% icon name="three-dots-menu-horizontal" %}}) icon next to the service you want to unbind in the **Bound Services** section. -1. Select one of the following: - * **Unbind Service** – unbinds the service instance and moves it to the **Services To Be Bound** section. The service is bound again next time your app is restarted. - * **Delete Service** – unbinds the service instance from the application and deletes the service instance from your environment. - -1. If you want to **Delete Service**, confirm by clicking the appropriate button: - - * **Delete & Restart App** – confirms the delete action and restarts the app - * **Delete** – if you want to unbind more services or do not want the change to happen immediately, you can choose **Delete**. However, this may leave the app in an unstable state as the service is deleted from the environment. - * **Cancel** – does not delete or unbind this service - - Once the service is deleted, it is deleted from the app environment and returned to the list of **Available Services**. If the service is unbound but not deleted, it is returned to the list of **Services To Be Bound** and is rebound next time the app is restarted. - -##### Removing an Unbound Service {#unbound-services} - -1. Click the three-dots ({{% icon name="three-dots-menu-horizontal" %}}) icon next to the service you want to remove in the **Services To Be Bound** section. -1. Select **Remove Service** and confirm by clicking **Remove**. - - The service is deleted from the app environment and returned to the list of **Available Services**. - -#### Adding Binding Configuration - -When a service is in the **Services To Be Bound** section, you can add a new binding configuration if this is supported by the service and the Mendix Portal. - -If you want to change the configuration of a service which is already bound, unbind the service first, as described in the [Removing an Unbound Service](#unbound-services) section. - -1. Click the three-dot ({{% icon name="three-dots-menu-horizontal" %}}) icon next to the service you want to (re)configure in the **Services To Be Bound** section. - -2. Select **Add Binding Configuration**. - -3. You can either use the Configurator to create your configuration by clicking **Open Editor**, or click **Browse** to upload an existing file as the configuration. - - {{< figure src="/attachments/deployment/sap-btp/sap-cloud-platform/add-binding-config.png" alt="" >}} - - See the documentation for the service you are configuring for more information. - -#### Service Names - -The services which are created by the Mendix Portal are named automatically. You can see these names in the SAP BTP cockpit. Normally, the name of the service is **App name** + **_** + **Environment Name** + **_** + **a random six-character suffix**. All spaces are removed from the app and environment names. For example, `MyApp_Development_c7sd9q`. - -However, the maximum length for the service name is 50 characters. If this limit would be exceeded by the name created above, an alternative service name is used. The format of this is **Environment Name** + **_** + **a random six-character suffix**. If the Environment name is longer than 43 characters, only the first 43 characters are used. - -### Runtime Tab {#runtime-tab} - -In the **Runtime** tab, you can **Add**, edit ({{% icon name="pencil" %}}), or delete custom runtime settings and environment variables. - -{{% alert color="info" %}} -New values are only applied when you restart your app. The value which is currently applied is shown under **Current Value**. -{{% /alert %}} - -#### Custom Runtime Settings - -You can add custom server settings which configure Mendix Runtime beyond the standard SAP deployment. See [Runtime Customization](/refguide/custom-settings/) and the [Mendix Cloud Foundry Buildpack GitHub repository](https://github.com/mendix/cf-mendix-buildpack#mendix-runtime-configuration) for information about the settings which are available. - -#### Custom Environment Variables - -##### Supported Environment Variables - -You can add supported variables by selecting them from a dropdown list. - -* **DT_PAAS_TOKEN** – the token for integrating your Dynatrace environment with Cloud Foundry -* **DT_SAAS_URL** – the monitoring endpoint URL of the Dynatrace service -* **DT_TENANT** – the unique identifier of your Dynatrace environment -* **DT_IS_MANAGED** – a variable to enable metrics integration for DT Managed -* **DT_CLUSTER_ID** – tag your cluster, process group, or deployment group -* **DT_CUSTOM_PROP** – provide metadata for your process group -* **NON_MENDIX_PUBLIC_CLOUD** – must be set to **true** when using Datadog, Dynatrace, or other similar tools - -The variables beginning with **DT_** set up Dynatrace. Setting these variables means that the Dynatrace OneAgent is loaded into your environment. You receive all Java-related metrics from your app. See [Dynatrace OneAgent](https://www.dynatrace.com/support/help/setup-and-configuration/dynatrace-oneagent/) for more information. - -##### Unsupported Environment Variables - -You can also enter other environment variables which can be used to support Mendix features which are in beta. In this case, click **No** for **Supported?**, and enter the **Name** of the variable and **New Value**. - -{{% alert color="info" %}} -Only use unsupported environment variables if you know exactly what you are doing. Incorrect values can prevent the Mendix Runtime from starting. -{{% /alert %}} +2. When the application has been started, you are taken to the **Environment Details** page for the selected environment. See [Environment Details](/developerportal/deploy/sap-cloud-platform/environments). ## Databases in SAP BTP {#databases} @@ -610,7 +362,7 @@ If your SAP HANA database has performance issues, you can improve it by performi * Password * User -1. Go to the [Runtime tab](#runtime-tab) of your app environment. +1. Go to the [Runtime tab](/developerportal/deploy/sap-cloud-platform/environments/#runtime-tab) of your app environment. 1. Enter the following unsupported environment variables with the associated values, using the values taken from the service binding credentials: | Variable | Value | @@ -734,7 +486,7 @@ Starting from Mendix 9.7, support for `statsd` is removed. #### Solution -1. In the [Runtime tab](/developerportal/deploy/sap-cloud-platform/#runtime-tab), in the **Custom Environment Variables** section, add a new variable with the following settings: +1. In the [Runtime tab](/developerportal/deploy/sap-cloud-platform/environments/#runtime-tab), in the **Custom Environment Variables** section, add a new variable with the following settings: * **Supported** – select **Yes** * **Name** – select **NON_MENDIX_PUBLIC_CLOUD** From d2d33a12ba9e72827b9da415dbdc16efcd31ab31 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Tue, 16 Jun 2026 17:42:06 +0530 Subject: [PATCH 6/6] Update small changes --- content/en/docs/deployment/sap-btp/_index.md | 6 +++--- content/en/docs/deployment/sap-btp/sap-environments.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/docs/deployment/sap-btp/_index.md b/content/en/docs/deployment/sap-btp/_index.md index 4a42ae252d7..7c1cca67c68 100644 --- a/content/en/docs/deployment/sap-btp/_index.md +++ b/content/en/docs/deployment/sap-btp/_index.md @@ -289,7 +289,7 @@ Mendix needs access to a relational database back end and can run using differen ### Running Mendix on PostgreSQL, Hyperscaler Option {#sap-hyperscaler} {{% alert color="info" %}} -SAP has removed some of the PostgreSQL databases available in their marketplace. If you need a PostgreSQL database, you will have to use PostgreSQL, Hyperscaler Option as your database. This requires some extra configuration which is described below. Alternatively, you can use [SAP HANA](#sap-hana). +SAP has removed some of the PostgreSQL databases available in their Marketplace. If you need a PostgreSQL database, you will have to use PostgreSQL, Hyperscaler Option as your database. This requires some extra configuration which is described below. Alternatively, you can use [SAP HANA](#sap-hana). {{% /alert %}} Select the **postgresql-db** (PostgreSQL, Hyperscaler Option) database service from the **Available Services**. @@ -424,7 +424,7 @@ Since SAP Application Logging will soon be deprecated, migrate your logging serv If you encounter any issues with your apps on SAP BTP, use the following troubleshooting tips to help you solve them. -### Environment is not Created +### Environment Is Not Created If you add an environment and it fails to be created, it will be shown with a red symbol next to it on the Environments page: @@ -466,7 +466,7 @@ If an app is deployed to SAP using the Studio Pro **Run** or **Publish** button #### Cause -The deployment fails because the marketplace services have not been bound. +The deployment fails because the Marketplace services have not been bound. #### Solution diff --git a/content/en/docs/deployment/sap-btp/sap-environments.md b/content/en/docs/deployment/sap-btp/sap-environments.md index 9eee5b390b4..c58adb7516c 100644 --- a/content/en/docs/deployment/sap-btp/sap-environments.md +++ b/content/en/docs/deployment/sap-btp/sap-environments.md @@ -125,7 +125,7 @@ To change a value, select the constant you want to change and click the edit ({{ ### Services Tab {#binding-services} -This tab displays Cloud Foundry services which are bound to the app, waiting to be bound to the app, or available to be bound to the app. These are the services which are available to you in SAP BTP and are the same services that you can see in the SAP BTP marketplace. +This tab displays Cloud Foundry services which are bound to the app, waiting to be bound to the app, or available to be bound to the app. These are the services which are available to you in SAP BTP and are the same services that you can see in the SAP BTP Marketplace. {{% alert color="warning" %}} There are a number of services which your Mendix app requires. If you unbind any of these services, your app probably stops working: @@ -158,7 +158,7 @@ To connect a service in the **Available Services** section, do the following ste The services you have selected will be added as **Services To Be Bound**. Now, you can upload a JSON file with a configuration that will be applied to the service binding. {{% alert color="info" %}} -If you use the **PostgreSQL, Hyperscaler Option** service on SAP BTP, Mendix can create a JSON file for you. See [Running Mendix on PostgreSQL, Hyperscaler Option](#sap-hyperscaler). +If you use the **PostgreSQL, Hyperscaler Option** service on SAP BTP, Mendix can create a JSON file for you. See [Running Mendix on PostgreSQL, Hyperscaler Option](/developerportal/deploy/sap-cloud-platform/#sap-hyperscaler). {{% /alert %}} {{% alert color="info" %}}