Overview
Following check list of items available under this topic
- BTP Day 0 - Overview and account creation
- BTP Account layout overview for understanding
- BTP Day 1 v1 - Commands for application handling in BTP
- BTP Day 1 v2 - Commands for application handling in BTP
- BTP SAP HANA DB creation
- BTP SAP HDI schema establishment
- BTP SAP Authorization and Trust Management Service - XSUAA (WIP)
(Pre-requisite- VSCode and Node JS should be installed in the system)
- JS Concepts Promise / Callback
- NODE JS BASIC 1- preparing node JS basic program
- NODE JS BASIC 2- preparing node JS program with some essential concepts for CAPM app
- NODE Micro services - deploying a small node JS app to BTP
- CAPM Day 1 - First CAP App
- CAPM Day 2 - Aspects and Reuse Tables
- CAPM Day 3 - EPM DB and CDS Views
- CAPM Day 4 - Generic Handlers
- CAPM Day 5 - Fiori Elements
- CAPM Day 6 - Fiori App Draft
- CAPM Day 7 - HANA and Deployment
- CAPM Day 8 - CAPM Security XSUAA
- CAPM Day 9 - Serverless Fiori App
- SAP Cloud Connector
- CAPM Day 10 - S/4 HANA Side by Side Extension 1.0
- CAPM Day 11 - S/4 HANA Side by Side Extension 2.0 - WORK IN PROGRESS
- BAS Git Integration
- CAPM Day 12 - CI/CD Pipeline
Things to remember for CAP deployment
VSCode Set terminal as default for debug
BAS Shortcut keys
Command Key combination | Command Description |
---|---|
F1 |
Access command palette |
F11 |
Fullscreen mode |
Ctrl + / |
Line comment |
Shift + Alt + A |
Toggle Block comment |
Ctrl + Shift + E |
Explorer |
Ctrl + Shift + F |
Search |
Ctrl + Shift + G |
Source control |
Ctrl + Shift + D |
Run |
Ctrl + Shift + X |
Extensions |
Ctrl + Shift + M |
Problems |
Ctrl + Shift + U |
Output |
Ctrl + Shift + Y |
Debug Console |
Ctrl + ` |
Terminal |
Ctrl + Shift + ` |
New Terminal |
Ctrl + Shift + P |
Show All commands |
Ctrl + K N |
New text File |
Ctrl + K Shift + N |
New Window |
Ctrl + Alt + Windows + N |
New file |
Ctrl + O |
open file |
Ctrl + K Ctrl + O |
New Folder |
Ctrl + S |
Save |
Ctrl + Shift + S |
Save as... |
Ctrl + F4 |
Close editor |
Ctrl + B |
Primary Side Bar |
Ctrl + Alt + B |
Secondary Side Bar |
BTP CAP analytical app tutroial
Maven Repository : https://mvnrepository.com/
Ui5 Library : https://sapui5.hana.ondemand.com/#/controls
NPM Js Repository : https://npmjs.com
JSON structure validator : https://jsonlint.com
Spring framework reference documentation : https://docs.spring.io/spring-framework/docs/4.3.x/spring-framework-reference/htmlsingle/
Maven is a dependency manger for JAVA programming
NPM -node package manager is a dependency manger for Node JS
Ctrl + Shift + F -- Code Alignment
Ctrl + Shift + C -- Code comments
Ctrl + Shift + T -- Open Type window
Ctrl + Shift + L -- Show key assist
SAP UI5 is a framework to develop responsive web application for SAP.
- Framework - A collection if libraries
- Library - A collection of classes
- Class - A collection of attributes, events, functions and aggregations
https://sapui5.hana.ondemand.com/
XMLNS - XML namespace
- It is a Node JS Application
- It is used to automate the process of authentication, authorization with XSUAA to do token exchange
- It sits in the middle of IDP (identity provider) and XSUAA, it will redirect the request to our microservice to XSUAA and eventually to IDP.
- IDP sends the login screen to the user, user authenticates, which is taken to XSUAA, XSUAA issues JWT token (JSON web token), this JWT token is presented to API end points.
- App router takes the JWT token from XSUAA and give iT To our microservices and even exchange this token to multiple microservices inside.
- It serves as a single entry point for entire app.
- To tell app router about our multiple microservices so that it can re-direct, we need to create a configuration file named as xs-app.json which contains the details.
App router is an application which does internal communications between micro services to give single entry point for user it communicates to XSUAA to get access tokens.
Extensibility services for user access authorizations which is responsible for authorization to access the BTP services
Node JS is an open source, cross platform Java Script runtime environment and used for executing Java Script code out side the web browser. Java and JavaScript are different by their nature, design and use case, Java Script was dominantly used as a web programming language. All the browsers directly understand Java Script.
Node JS is also a great web framework for beginners because it works great with data-intensive applications like streaming real-time apps. it is free and easy to learn.
Build Business logic on server side, DB lookups, send emails, write validations, create microservices, add automations, show output, build servers, host web apps, make excel/pdf more.
- It is dependency manager tool which gets installed along with node js in our system.
- Just like for java we had maven, we have npm for node js.
- we can find millions of reusable node modules free on internet, which helps us avoid rebuilding everything/ reinvent the wheel.
- world largest reusable code repository NPM Js repository : https://npmjs.com
-
Globally at computer level, all projects can reuse, option used to install CLI
npm install -g module
-
With in the project - @local project level, only single project can use
npm install module
-
when we build java project we saw pom.xml which contains dependencies. we have the package.json file in the node project which contains details about the entire project and its dependencies to create this we use.
npm init
- Approuter implementation was difficult -> lot f effort is required as a developer to setup project.
- What is the best-practice/ gold-standard to build SAP BTP applications, recommendation by SAP.
- Are there any existing sample apps which we can follow to build our app
- Many times, as a developer it is hard to add each part of app like files, dependencies, deploy descriptor, lot of code, how can this process be simplified ?
- How can we have reusability of the code to speed up my development and use sap provided tools to generate the skeleton of the apps.
- As a developer we want to focus more on functional aspect implementation rather initial project setup.
- Our apps are something tightly coupled with DB technology develop DB agnostic apps.
- No matter what is the area we belong FIN, SD, MM, PP, PM, APO, CRM, HR etc. eventually as a developer we all do same work. Design tables, write logic, build UI
- How to develop software in BTP, Which does not require too much time in handovers
- It's a SAP provided framework to develop SAAS apps in BTP.
- If the developer wants to use open source technologies like Node and java.
- Great cost saving and freedom of choice of technology and consultants available easily in market.
- It is based on ABAP on cloud. we can build extension and SAAS application using this framework.
- The skill required will be ABAP and CDS knowledge.
- The Deployment is very costly as compared to open source technologies used in CAP
Software As A Service - SAAS
Platform As A Service - PAAS
Infrastructure As A Service - IAAS
MTA Build Tool - MBT
Multitarget Application - MTA
Entity Data Model XML - EDMX
CDS Query language - CQL
Core data services - CDS
Core Schema Notation - CSN
CDS Query Notation - CQN
Yet another Markup language - YAML
REST Stands for Representational State Transfer
What is it?
REST is an architecture style for designing communication interfaces.
Design
REST API exposes the data.
Transport Protocol
REST works only with HTTPS.
Data format
REST supports XML, JSON, plain text, HTML.
Performance
REST has faster performance due to smaller messages and caching support.
Scalability
REST is easy to scale. It’s stateless, so every message is processed independently of previous messages.
Security
REST supports encryption without affecting performance.
Use case
REST is useful in modern applications and public APIs.
YAML definition : It is a human-readable data serialization language. It is commonly used for configuration file.
package.json - installed dependency list (development / runtime )
package-lock.json - contains sub dependencies of a dependency item and
- path details of the dependency item present in the app directory
xs-app.json - App router details
xs-security.json - XSUAA - security setting definition
manifest.json - App Ui metadata
SAP Git hub Repo 1 - more content samples here