In 2025, for the first time, you can open SAP Fiori Tools in VS Code and create a Fiori app directly from ABAP Development Tools: Just open a service binding and choose Create Fiori app. I have tested this with ABAP Cloud Developer Trial and it really works! In this blog post, I’m going to:
- Set up a connection between SAP Fiori Tools and ABAP Cloud Developer Trial. There were no problems, but connectivity is a little different from Cloud systems.
- Set up the connection between ABAP Developer Tools (in Eclipse) and SAP Fiori Tools.
- Talk about the changes I made to the (on-premise) back end.
I tested on Windows. However, I am indebted to @Marian_Zeis who tested this on Mac and who provided me with his notes. Thank you Marian!
Also, this procedure looks longer than it is – some of it is just checking stuff that should be working.
First, you need to check the following:
1. Make sure you have installed python for Windows:
https://www.python.org/downloads/
To test this, enter: py.exe
This should return the version number plus some more information.
2. Set up VS Code and extensions by working through this complete guide. (Cloud Foundry CLI Tools are optional):
Setup: Visual Studio Code
Note: I got an error later, deploying. I updated this extension manually and the problem was solved:
https://github.com/SAP/open-ux-tools/tree/main/packages/deploy-tooling
3. Check that the Docker container is running:
The container should already be running. I confirmed port 50001 was up with a quick curl:
-o /dev/null -w ‘%{http_code}\n' \
‘https://127.0.0.1:50001/sap/bc/adt/discovery'
# 200
-s = (silent): Suppresses progress meter and error messages. Keeps output clean.
-k = (insecure): Allows you to connect to a server with invalid or self-signed SSL/TLS certificates
-o /dev/null = Redirects the response body to /dev/null (discarded).
-w ‘%{http_code}\n' = use the write option to print custom info after the request completes, here the HTTP response code.
The path /sap/bc/adt/discovery — the ABAP Development Tools (ADT) discovery endpoint, which lists available ADT services – commonly used to verify ADT connectivity and authentication from a client (like Eclipse ADT).
4. Update /etc/hosts file:
Add the following two entries to /etc/hosts. Both resolve to 127.0.0.1. (See also below: “Certificate setup”):
sudo sh -c ‘echo “127.0.0.1 A4H.wdf.sap.corp” >> /etc/hosts'
5. Certificate setup
Problem 1, specific to MacOS:
The VS Code Fiori Tools extension uses Node.js internally for HTTPS calls. Node.js has its own built-in CA bundle and ignores the macOS system keychain entirely. The ABAP server certificate is signed by CN=SAPNetCA_G2, which is a SAP internal CA not included in Node.js's bundle. This will cause the unable to get local issuer certificate error.
Problem 2, on both Windows and MacOS:
SAP Fiori Tools expects the hostname vhcala4hci.dummy.nodomain . However, this hostname is not in the SAN list for the certificate. This is why you needed to add “a4h” to the etc/hosts file above.
Note: Why curl -k and the YAML proxy worked with vhcala4hci.dummy.nodomain:
curl -k disables all TLS validation. The YAML proxy uses ignoreCertErrors: true, which has the same effect inside the Fiori Tools preview server. The VS Code system connection has no equivalent bypass – it performs full TLS validation, so both the CA and the hostname had to be correct.
Therefore, you need to:
- Export the CA certificates from STRUST:
In SAP GUI, transaction STRUST, I opened SSL server Standard. In the Certificate List, there are two entries:- CN=SAPNetCA_G2, O=SAP, L=Walldorf, C=DE
- CN=SAP Global Root CA, O=SAP AG, L=Walldorf, C=DE
- Double-click each one and use Export Certificate to save them, e.g. to your home folder as ~/sapnetca and ~/globalroot. They will be in DER (binary) format.
- Convert them to .PEM and create a bundle:
- Verify the bundle is working — a curl without -k against the correct hostname should return 200. Adapt for your own user and certificate location (MAC):
- NOTE: For Windows command prompt, change cat to type like this:
openssl x509 -inform DER -in sapnetca -out sapnetca_g2.pem
openssl x509 -inform DER -in globalroot -out globalroot.pem
cat sapnetca_g2.pem globalroot.pem > /Users/<Username>/DEV/ABAPTRIAL2025/sap-ca-bundle.pem
/usr/bin/curl –cacert /Users/<Username>/DEV/ABAPTRIAL2025/sap-ca-bundle.pem \
-u ‘DEVELOPER:<pw>' \
-o /dev/null -w ‘%{http_code}\n' \
‘https://A4H.wdf.sap.corp:50001/sap/bc/adt/discovery'
# 200
6. Connect to ACDT in VS Code
Open VS Code. There’s a new tool available to connect to an ABAP back end, Connection Manager for SAP Systems:
Add a new system with these values:
Field | Value |
System Type | ABAP On Premise |
Connection Name | A4H 2025 |
Connection Type | ABAP Catalog |
URL | |
Client | 001 |
Username | Developer |
After clicking Test Connection, the result for me was:
The OData V2 catalog call returned 58 services.
The OData V4 catalog call returned 1262 services.
I saved the connection.
For more information, see:
Connection Manager for SAP Systems | Visual Studio Marketplace
Now, you're ready to create your first SAP Fiori Elements app from within ADT (in Eclipse), as described by André Fischer:
Create a SAP Fiori Elements application from within ADT
For more information regarding certificate setup, see :
Handling CA Certificates
Handling Self-Signed SSL Certificates in SAP Fiori Tools
For troubleshooting certificates (not recommended generally), see:
Disable SSL Validation – Local Preview
Disable SSL Validation – Deploying to ABAP
Appendix: Backend checks in SAP GUI (client 001, user DEVELOPER)
I configured the following backend services, which need to be active for Fiori Tools and deploy to work:
Transaction/ Activity | What I checked | Result |
/n/IWFND/V4_ADMIN | Service group IWFND/CONFIG published | ✔️active |
/n/IWFND/MAINT_SERVICE | ZABAP_REPOSITORY_SRV listed, system alias LOCAL assigned | ✔️active |
SICF | /sap/bc/adt and /sap/bc/ui2/app_index | ✔️active |
Deactivate virus scan – FOR TESTS ONLY |
| ✔️done✔️ |