Learn to Create and Use SAP® CAPM Apps with SAP® BAS!
Hey there, SAP® Tech Masterminds! We’re thrilled to bring you a fun and easy two-part blog series. We’ll guide you through creating and using SAP® CAPM Services in SAP® BAS for your SAP® Fiori® Element Apps.
Whether you’re new to coding or a seasoned expert, these blogs are for you. Let’s get started!
Now that you’ve built your SAP® CAPM app, it’s time to put it to work. In the second part of our series, we’ll show you how to:
Connect your CAPM services to SAP® Fiori® Elements apps.
Turn your services into awesome, user-friendly apps using SAP® Fiori® Elements.
Follow simple, clear instructions to make everything work smoothly.
So grab your favorite snack, get comfy, and join us on this coding adventure. Stay tuned for the first part – it’s going to be amazing!
Also, to Learn Fiori® Elements using SAP® CAPM and SAP® RAP you can enroll in the course Learn SAP® Fiori® Elements where we will learn in a Step-by-Step Fashion the development of Apps Using Fiori® Elements.
For the best offers on the course check the Offer Page.
The final result will look similar to the screenshot below in the Navigation Details Screen. Based on the Nesting of Navigation the Final Result will differ.
Good practice is:
1. Not do the nesting more than 3 levels.
2. Not referencing more than 1 Reference Facets per collection or you will face rendering issues.
1. Create a SAP® CAPM Project to generate sample files and structure. In the BAS CLI you can write:
cds init sample-project
Some of the files created in the project like the data CSV file and the app folder will be added in the coming steps:
2. Go to the db folder and create a file data-models.cds to add the schema:
namespace sampleProject;
entity Products {
key ID: UUID;
productName: String;
category : String;
price : Decimal;
description : String; // New field for product description
image : String; // New field for image URL
}
3. Add sample data values inside the data folder in a CSV file and name it project-Products.csv:
ID;productName;category;price;description;image
"e3b0c442-98fc-1c14-9fb0-c4e9b3c77c63";"Laptop";"Electronics";999.99;"High-performance laptop for professionals";"https://i.ibb.co/WWfNSgp/openui5.png"
"fe3a9ec0-93d6-2f3b-ad7c-c8f330b7606c";"Smartphone";"Electronics";599.99;"Latest model with advanced features";"https://i.ibb.co/WWfNSgp/openui5.png"
"b4e9b3c7-7c63-4e3b-0c44-29fc1c149fb0";"Coffee Maker";"Home Appliances";49.99;"Brews perfect coffee every time";"https://i.ibb.co/WWfNSgp/openui5.png"
4. Create a basic service inside the srv folder in the file catalog-service.cds :
using sampleProject from '../db/data-model';
service CatalogService {
entity Products as projection on sampleProject.Products;
}
5. We have created a SAP® CAPM App to explore which can be used in a Fiori® Element Template, so let’s start making that. Note, that this SAP® CAPM App will be used in the Fiori® Element Template, so we need to keep the App running and create a new Project From Template which we will do next.
To run the App we can use the Start Script of the App from the package.json file:
In this 7 blog series, we are going to provide a small end-to-end scenario to work with SAP® CAPM. Here the usecase we are going to use is of Learning Management System(LMS) and build a Student List App and Deploy it to SCF.
Link to Master(or Main) Blog from which all the other blogs can be reached is Here.
If you wanted to check out the detailed course on SAP® CAPM the link is Here.
If you want to get learn SAP® Cloud Platform Development in Detailed then we have a 35hrs hands-on course Here.
For current offers and discounts check offer page Here.
In this section we are going to deploy our App to SAP® Cloud Foundry(SCF) in SAP® Cloud Platform(SCP)
Step 1: Building DB Artifacts
Till now, we were using sqlite3 Database in the local environment to test. Now we will use HANA® DB in Cloud or HDI Container(which comes with Free Trial of SCF).
To deploy our database artifacts i.e the cds which describe the structure and csv data. We need to first convert it to SQL, in which the HDI container/HANA® DB can process the creation of the table and loading of data.
For this we need to build our db artifacts, this we do by opening .cdsrc.json and adding the content as shown below
Note: In this case, we are telling the CAPM to create a build inside folder gen(which will get created once we run cds build/all command). And inside the gen folder, we will get db, srv and app build code.
For our purpose, we only need db artifacts so the above .cdsrc.json code can be just for db build as shown below
Now let’s start the build process which will read the .cdsrc.json file and create a gen folder and add all the build artifacts inside it
cds build/all
Step 3: Create the HDI Container in SCF
Now lets, create the HDI container in the cloud. We can do it manually with Cockpit UI or with CLI. Below us CLI Code which you can execute after you are logged in to your SCF account from CLI
cf create-servicehanatrial hdi-shared somedbname
In this case, the SAP® Cloud Foundry service is hanatrail, the plan is hdi-shared and somedbname is your HDI container name.
Step 4: Change package.json DB
Open the package.json file from the project directory and update the place we have sqlite to hana i.e. from "kind": "sqlite", to "kind": "hana",.
Here, we are telling CAPM App to use HANA® DB(or HDI) connection setting
Note: You can also run command to uninstall sqlite3 from the project if you face exit status 14 error while deploying the app to SCF with below command
npm uninstall sqlite3
or Just remove the sqlite3dependencies from package.json.
Step 5: Create YML
To deploy our App in cloud we can either use mta.yml or manifest.yml.
Note: .yml and .yaml are both extensions of YML descriptor file and are same. But mta.yml and manifest.yml are both different kinds.
You can think mta.yml as an advanced version of manifest.yml where you have more features like adding resource bundles, also when an app is deployed with mta.yml file then in client-side a compressed zip file is created with all Apps artifacts and then this zip file is deployed to Cloud. In the case of using manifest.yml file while deploying, all files are uploaded sequentially and no zip file is created locally as in the previous case.
In our case, we use manifest.yml file in the root of the project for simplicity as shown below
Create a new file named manifest.yml
touchmanifest.yml
Add Deployment information to manifest.yml file as below:
Here, we are first deploying the db artifacts which will create the tables in HDI container(or HANA® DB) and Add data. After that, we deploy the newApp, which will deploy our CAPM App.
Step 6: cf push and Test
For deploying App in Cloud you can use the command
cfpush
Which needs to be done in the root of the Project, where you see your manifest.yml file you created.
Output of the application will be
Fiori Launchpad:
Data of Students:
🙂 Congratulations! You have completed this series.
Before we end!
In this 7 blog series, we are going to provide a small end-to-end scenario to work with SAP® CAPM. Here the usecase we are going to use is of Learning Management System(LMS).
Link to Master(or Main) Blog from which all the other blogs can be reached is Here.
If you wanted to check out the detailed course on SAP® CAPM the link is Here.
If you want to get learn SAP® Cloud Platform Development in Detailed then we have a 35hrs hands-on course Here.
For current offers and discounts check offer page Here.
In this 7 blog series, we are going to provide a small end-to-end scenario to work with SAP® CAPM. Here the usecase we are going to use is of Learning Management System(LMS) and build a Student List App and Deploy it to SCF.
Link to Master(or Main) Blog from which all the other blogs can be reached is Here.
If you wanted to check out the detailed course on SAP® CAPM the link is Here.
If you want to get learn SAP® Cloud Platform Development in Detailed then we have a 35hrs hands-on course Here.
For current offers and discounts check offer page Here.
In this part, we are going to make a UI5 App. This will allow us to separate View Code From Data Definition, i.e. the Annotations we have written in CDS view, we can separate it in UI5 App.
We can also provide our user with a Fiori® Launchpad experience and customize further the UI components.
Step 1: File structures
Create an app folder inside the project root. This will hold all our UI codes
mkdirapp
Create the UI Project Structure as below, here we have app as root for UI project, inside this we have index.cds, index.html and studentsDetails folder. studentsDetails Folder contains webapp folder which has Component.js, manifest.json and fiori-service.cds
In index.cds we are going to add reference to file where our CDS UI Annotations are defined. In this file, we can give one or more cds file path. This also brings modular structure to our app as well.
Code of index.cds is
usingfrom'./studentsDetails/fiori-service';
Step 4: component.js Code
Inside webapp we will add a file named component.js which will basically describe about UI5/Fiori App. This also, includes the manifest.json information, which we are going to define in next step
You will see now a Fiori® Launchpad with you App placed as a Tile. If you go inside you will see List based elements showing Students details.
Fiori Launchpad:
Data of Students:
Before we end!
In this 7 blog series, we are going to provide a small end-to-end scenario to work with SAP® CAPM. Here the usecase we are going to use is of Learning Management System(LMS).
Link to Master(or Main) Blog from which all the other blogs can be reached is Here.
If you wanted to check out the detailed course on SAP® CAPM the link is Here.
If you want to get learn SAP® Cloud Platform Development in Detailed then we have a 35hrs hands-on course Here.
For current offers and discounts check offer page Here.