SAP Commissions: Develop locally in GCP & Deploy globally in SAP BTP
This article is mainly intended for Google Cloud Platform (GCP) Admins who can develop the applications locally in your cloud shell environment and deploy it to SAP Business Technology Platform (BTP) using SAP Commissions API’s to build custom dashboards ..
High Level Architecture flow
- Google Cloud Platform – Cloud Shell Environment
- SAP Business Technology Platform – Cloud Foundry Runtime
- SAP Commissions API – Payments Endpoint
- Python or any language you prefer
- Libraries used in this article to develop Dashboard ( HTML, Plotly – Dash)
Step 1 : Develop locally in Google Cloud Platform
- Sign into your Google account.
- In the top navigation, click Activate Cloud Shell
Cloud Shell Editor is Cloud Shell’s built-in, browser-based code editor, powered by the Eclipse Theia IDE platform. To open it, click the Open Editor button from your Cloud Shell terminal:
You should be seeing below screen for connecting to Editor
Cloud Shell Editor has rich language support and debuggers for Go, Java, .Net, Python, NodeJS and more languages, integrated source control, local emulators for Kubernetes, and more features. With the Cloud Shell Editor open, you can then walk through a client library tutorial like Cloud Vision’s Detect labels guide, running terminal commands and code from one browser tab.
Open up a Google Cloud quick start and give it a try! This could be a game-changer for your learning experience.
Create below directories for development and this is just preparing for SAP Commissions Payments Dashboard and you can create your own ..
mkdir Payments-Dashboard cd Payments-Dashboard touch app.py touch index.py mkdir assets mkdir apps mkdir datasets
After you completed your development, you can run the below command to see the dashboard is exposed to local web server to test
you should be seeing SAP Commissions Payment dashboard running locally in GCP
you can select Processing Unit 1 and Select Payees from dropdown list
you can select Processing Unit 2 and Select Payees from dropdown list
After you selected one of Payee from dropdown list, you can see their Bonus & Clawback information
Step 2 – Deploy now Globally in SAP BTP
Login to SAP BTP .. API Endpoint and Cloud Foundry Entitlements should already be pre-configured from your side.
Install Cloud Foundry CF v7 or v8 in GCP Cloud Shell
wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | sudo apt-key add - echo "deb https://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list sudo apt-get update sudo apt-get install cf7-cli
After Installing CF.. try this below command for getting ready to deploy BTP
cf -v ### Cloud Foundry version cf login ### Cloud Foundry Login cf -a <api endpoint> ##Cloud Foundry API Endpoint cf login --sso ## Cloud Foundry Login through One time Passcode
After successful login with Pass-code, you should be able to see your Sub-account and Org details
For deployment, create this files in your local directory
touch requirements.txt touch Procfile touch runtime.txt touch manifest.yml
--- applications: - name: payments-dashboard memory: 128MB disk_quota: 1GB random-route: true buildpacks: ["python_buildpack"]
Pushing app to SAP BTP..
App is successfully pushed to BTP with Portal Link for accessing the Dashboard
Running setup.py install for pathlib: started Running setup.py install for pathlib: finished with status 'done' Successfully installed Flask-2.1.1 Flask-Caching-1.10.1 Jinja2-3.1.1 MarkupSafe-2.1.1 Werkzeug-2.1.1 brotli-1.0.9 click-8.1.2 dash-2.3.1 dash-core-components-2.0.0 dash-extensions-0.0.71 dash-html-components-2.0.0 dash-table-5.0.0 editorconfig-0.12.3 flask-compress-1.11 importlib-metadata-4.11.3 itsdangerous-2.1.2 jsbeautifier-1.14.3 more-itertools-8.12.0 numpy-1.22.3 pandas-1.4.2 pathlib-1.0.1 plotly-5.7.0 python-dateutil-2.8.2 pytz-2022.1 six-1.16.0 tenacity-8.0.1 zipp-3.8.0 Exit status 0 Uploading droplet, build artifacts cache... Uploading droplet... Uploading build artifacts cache... Uploaded build artifacts cache (66.8M) Uploaded droplet (131.9M) Uploading complete Cell c2098343-8d23-46ae-9e87-7d29bf794c68 stopping instance 4e49eb21-24ba-44ff-aa34-94362f49bb19 Cell c2098343-8d23-46ae-9e87-7d29bf794c68 destroying container for instance 4e49eb21-24ba-44ff-aa34-94362f49bb19 Cell c2098343-8d23-46ae-9e87-7d29bf794c68 successfully destroyed container for instance 4e49eb21-24ba-44ff-aa34-94362f49bb19 Waiting for app payments-dashboard to start... Instances starting... Instances starting... Instances starting... Instances starting... Instances starting... name: payments-dashboard requested state: started isolation segment: trial routes: payments-dashboard.cfapps.us10.hana.ondemand.com last uploaded: Wed 13 Apr 13:43:12 CEST 2022 stack: cflinuxfs3 buildpacks: isolation segment: trial name version detect output buildpack name python_buildpack 1.7.48 python python type: web sidecars: instances: 1/1 memory usage: 128M start command: python index.py state since cpu memory disk details #0 running 2022-04-13T11:43:34Z 0.0% 0 of 0 0 of 0
Application is now available in BTP with instance running and as you can see python buildpack
Finally, the portal is available globally and Admins can access the dashboard at anytime and anyplace to see how Salesreps doing their business.
News, updates, and best practices for running SAP environments on Google Cloud.
Getting Started with Google Cloud Platform – by the SAP HANA Academy
SAP BTP – perfect match for SAP + Google Cloud customers