HC450SHC Application Development Flashcards

1
Q

SAP BTP account types are

A

enterprise and trial.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is entitlement

A

is the right to provision and consume resources such as the amount of memory.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is Quotas

A

this is the numeric quantity defining the maximum allowed consumption of a resource.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the components of an environment

A
  1. Runtime
  2. Services
  3. tools
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Sub account environment provides the atmosphere for creating CAPM applications such as

A
  1. Services
  2. Applications
  3. Tools
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the visual overview representation of SAP BTP

A
  1. Persistency
  2. Domain model
  3. Access
  4. Application development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the visual process followed for the application development for SAP Hana Cloud

A
  1. SAP BTP
  2. SAP Hana Cloud
  3. SAP BAS
  4. CAP project
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the scenario overview – visual representation

A
  1. Application Development – SAP FIORI.
  2. Access – Odata Services + custom Handlers.
  3. Domain model – CDS Models.
  4. Persistency – SAP Hana Cloud – Tables.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the personas for SAP Hana Cloud Application Development:

A
  1. DB developer
  2. Application developer
  3. Client UI developer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Within DB development, what are the main areas:

A
  1. Data Persistency
  2. Analytical modelling
  3. Data Processing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is SAP Cloud Foundry?

A

is an open Platform-as-a-Service (PaaS) targeted at microservice development and orchestration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Can the Cloud Foundry reduce cost, and complexity associated with configuring, managing, and securing infrastructure for your applications?

A

True.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the Cloud Foundry significant benefits to developers and organizations:

A
  • Language independent
    choose any language runtime, and add new languages as needed.
  • Admin separation
    administrators and developers can work in parallel.
  • Standard Command Line Interface
    the same CLI is used by all CF providers, not just SAP.
  • Open Source
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Can the Cloud Foundry be accessed via URL?

A

True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

The application can provide various types of content via the URL, such as the following:

A
  1. A set of HTML5 pages that you can access from a web browser
  2. A REST service to be read by a client application
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Applications are deployed to the target platform by using the push operation of the platform API. Is it true these applications are pushed to the platform?

A

True.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Pushing an application works as follows:

A
  1. The application files are uploaded to the platform.
  2. Programs called buildpacks are executed to create archives that create the self-contained and ready-to-run executable applications.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are buildpacks:

A

programs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

The following functions are accessible as services:

A
  1. The SAP HANA database
  2. The XSUAA identity provider
  3. The SAPUI5 core library
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Which of the following is the correct sequence when using Business Technology Platform and its components for Application development?

A

Create SAP BTP Trial Account,
Create SAP HANA Cloud Trial Account,
Subscribe to Business Application Studio Trial,
Create CAP Project using SAP Business Application Studio

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Which of the Personas are involved in Application development in SAP HANA Cloud?

A

DB developer and application programmer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is SAP Cloud Application Programming Model” (CAPM)

A

It is an open and opinionated, framework of languages, libraries, and tools for building enterprise-grade services and applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What are the environments in SAP BTP

A
  1. Cloud foundry
  2. Kubernetes
  3. XSA
  4. Local
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What are the datasources feeding CAPM

A
  1. SAP Hana
  2. PostgreSQL
  3. Sqlite
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What are the front ends used for CAPM:
1. SAP Fiori 2. Angular 3. React 4. Vue
26
Can CAPM be used partially or totally?
True
27
Can CAP supports both open-source and SAP tools and technologies?
True
28
What are the cloud technologies provided by CAPM to complement native cloud technologies
* CDS also known as Core data Services. Is the data modelling infrastructure also known as Backbone of the Programming Model that provides means to capture service definitions and data models. * Service SDKs SAP Cloud Application Programming Model has libraries available for both Java and Node.js, which you can use to provide and consume services through synchronous and asynchronous APIs. The SDKs include out-of-the-box integration to lower-level platform services, such as authentication and credential-flows or on and off-boarding of SaaS tenants. * (Generic) Service Providers Interpret CDS models to automatically serve metadata and CRUD requests out of the box. * Data Access Layers Use the CDS models to support higher-level data access options. For example, from data models in CDS we generate corresponding sets of JPA classes. * SAP Business Application Studio is our IDE of choice as well as other tools tailored for the new programming model such as CDS Editors, Code Assists, Outline Views, new Project Explorer, etc. can also be used.
29
What is the Purpose of SAP Cloud Application Programming Model
to focus on the domain problems
30
What are the domain problems to be resolve by experts in each area
1. Declaratively capture domain knowledge in CDS models 2. Fuels generic runtimes to serve recurring tasks automatically. 3. Minimizing boilerplate code to real custom logic
31
What is the golden path to create CAPM applications
1. Define your Data Model using CDS 2. Define your Services using CDS 3. Add Custom Logic using Java or Node.js 4. Add Fiori UIs using CDS Annotations 5. Reuse existing Services using CDS Service SDKs
32
Which of the two libraries are available for the Service SDKs?
Java, and Node.JS
33
Which is the IDE of choice when using CAP on SAP Business technology Platform?
SAP BAS
34
You are programming using the . You need to define an OData service. What is the extension of the file that you create?
BAS
35
Once a Development Space is created, its name and kind of application cannot be changed
True
36
What is the cli to include mta.yml file to a project
cds add mta for creating the mta.yaml.
37
What are the business artefacts used in SAP BAS – CAPM project
1. db : For the database level schema model. 2. srv : For the service definition layer 3. app : For UI artifacts
38
What are the folders within a CAPM project
App => Web browser a@ runtime SERV: => application runtime in cloud foundry DB => stored in SAP Hana.
39
When deployed, every module of the project will have
1. Builpack 2. Development language 3. Runtime environment.
40
In BAS there are two ways to create a project type
basic MTA and CAPM
41
MTA contains the following
1. Global Elements 2. Modules 3. Resources 4. Properties 5. Parameters
42
What does the MTA – Global Elements have:
These include the application identifier and version, a description (optional), copyrights, author, and so on.
43
What does the MTA – Modules contain
Modules created in the application, such as the SAP HANA database and the Node.js module, including name, type, path, and requirements on other modules.
44
What does the MTA – Resources contain
Dependent services which are not provided by the application, such as XS (XSUAA), (XSHDI) container, and XSJob-Scheduler.
45
What does the MTA – Parameters contain:
Reserved variables of a module, which can be accessed by other modules, for example, user, app-name, default-host, or default-url using the placeholder notation. Parameters can be read-only or read/write enabled.
46
MTA - Global Elements have mandatory fields which are:
ID and version.
47
MTA - Modules has mandatories fields such as:
Name, Path and Type.
48
MTA - Resources has mandatories fields such as:
Name and Type.
49
We have two options to create the CAPM project:
1. Using Terminal window command cds init 2. Alternatively we can use the wizard to create projects using the Project template either from Welcome page or via the View: Find Command option in the menu bar.
50
The Wizard (MTA) consists of the following user Inputs:
1. Name : Name of the Project is mandatory and unique and is valid across platforms. 2. Runtime : Two runtimes are available from the dropdowns, Node.js and Java. Once a runtime is selected and confirmed, this cannot be changed. In case a change is required a new project need to be created.
51
After a project is created, some capabilities can be added to MTA via the following CLI:
cds add mta
52
What are the list of capabilities currently available:
1. CI/CD Pipeline Integration 2. Configuration of SAP HANA deployment 3. MTA based SAP Business Technology Platform deployment. 4. Multitenancy 5. Cloud
53
What are the two runtime environments:
Node.js and Java.
54
What is YAML:
it is human friendly data serialization language for all programming languages.
55
What are the purposes of MTA model:
1. Define an application composed of multiple (heterogeneous) sub-components (benefit: tools can establish a unique lifecycle of these sub-components) 2. Declare resources the application depends upon at runtime and/or deployment time (benefit: tools can allocate and bind such resources) 3. Define configuration variables (and their relation), whose values distinguish different deployments of the application (benefit: tools can bind sub-components, can automate deployment based on default settings, or request missing mandatory values interactively
56
An administrator optionally augments the MTA model in the deployment descriptor with an extension descriptor(mtaext.yaml),and uses the MTA deployer to orchestrate the actual deployment.
True
57
What is MTAD.YML
Deployment descriptor for mta. The info provided contains instruction to the deploy service.
58
MTAEXT.YML
Deployment extension descriptor, this is used to provide system specific details not known until deployment.
59
What are the MTA development descriptor:
o Global elements o Modules o Resources o Properties o Parameters
60
The MTA development descriptor contains the following parts:
* Global elements These include the application identifier and version, a description (optional), copyrights, author, and so on. * Modules Modules created in the application, such as the SAP HANA database module and the Node.js module, including name, type, path, and requirements on other modules. * Resources Dependent services that are not provided by the application, such as XS Advanced User Account and Authentication (XSUAA), XS Advanced HANA Deployment Infrastructure (XSHDI) container, and XSJob-Scheduler. * Properties These can be specified when the value has to be determined during the deployment, for example, for generated URLs of other services or API keys. * Parameters Reserved variables of a module, which can be accessed by other modules, for example, user, app-name, default-host, or default-uri using the placeholder notation. Parameters can be read-only or read/write enabled.
61
What are the global elements contained in the MTA.YML file:
1. _schema_version 2. ID **** 3. Description 4. Version ***** 5. Provider
62
What is the content of _schema-version:
Specifies the version of the MTA descriptor in the following schema: .. Indicating a major version is enough
63
What does the ID contain:
Mandatory string to identify the application.
64
What does the description contain in MTA?
Optional description text
65
Is the Version compulsory - MTA:
True
66
What does version of MTA.YML contain:
Mandatory version of the application: ..
67
What is the Provider of the MTA.YMLS file:
Optional string to specify the organization providing the application.
68
What is the Copyright of the MTA.YMLS file:
is an Optional copyright information
69
What are the components of modules of the MTA project – file
1. Name **** 2. Type **** 3. Path **** 4. Description 5. Requires 6. Provides 7. Properties 8. parameters
70
What are the mandatory elements of the Modules component of the MTA.yml file
Name, type, and path.
71
Within the MTA development descriptor, the modules element declares the source modules of the MTA project.
1. Name 2. Type 3. Path 4. Description 5. Requires 6. Provides 7. Properties 8. Parameters
72
What does MTA development descriptor Name include:
Mandatory name of the module. Unique in the descriptor file
73
What does MTA development descriptor type include:
Mandatory content of the module, for example, HDB, Node.js, JAVA, HTML5
74
What does MTA development descriptor Path include:
Mandatory file system path starting from the applications root director.
75
What does MTA development descriptor Requires include:
Optional section containing required sources of other modules.
76
What does MTA development descriptor Provides:
Optional section containing configuration data used by other modules.
77
What does MTA development descriptor Parameters include:
Optional named variable to be used by the deployer, for example, the amount of memory for the module.
78
Within the MTA development descriptor, the Resources section of the MTA project, includes:
1. Name 2. Type 3. Description 4. Properties 5. Parameters
79
What is a resource: it is something that is required by a module of the MTA at runtime.
True
80
More precisely, an MTA descriptor declares a resource dependency, not the resource itself. Sometimes they are referred to as Backing Services.
True
81
What are the backing services:
* Name Mandatory name of the module, unique in the descriptor file. * Type Mandatory content of the resource, for example, com.sap.xs.uaa or com.sap.xs.hdi-container * Description Optional description text * Properties Optional named variable containing application-specific configuration data. * Parameters Optional named variable to be used by the deployer, for example, the amount of memory for the module.
82
Within the MTA development descriptor, the Parameters section of the MTA project, includes:
Reserved variables – read only, read or write or write only values Refer to parameters via the placeholder (4) notation ${} Default – URL, memory, disk – quota or service name
83
What are Parameters
Parameters are reserved variables that influence the behavior during the deployment process and/or during runtime.
84
In addition, we refer to the service-name and default-url parameters that are filled by the system, using the placeholder notation ${}. During the deployment, the parameter value is determined, and the placeholder is replaced with the actual value.
True
85
What are the sections of the MTA.yml file on the graphical editor:
1. Modules 2. Resources 3. Basic information
86
What is the origin of the name "Multi-Target Application"?
"? It is an application made of multiple modules running in different runtime environments.
87
Which of the below parameters are mandatory in the Modules section of mta.yaml?
1. Name 2. Type 3. Path
88
Which of the below option is used to Move the staged files to the Local Repository:
commit.
89
What is Git?
A tool for tracking changes in source code during software development.
90
What is the runtime structure:
1. Browser 2. Http 3. Router 4. Node.Js/Java-> 5. Hana Service 6. HDI container
91
What are the SAP Hana DB module containing the design-time definitions of all the objects to be created in the database:
1. Domain Models (Persistence).cds 2. Tables and Views(.hdbtable and .hdbview) 3. Calculation Views(.hdbcalculationview) 4. Procedures (.hdbprocedure)
92
What are the minimum components when creating a CAPM project:
1. An src folder, made to store the design time definitions of the database objects. 2. A package.json file for configuration for the MTA project is required for example, to set the version and the options of the deploy program. In case of CAP projects this file is shared by all three modules.
93
A service of type HANA (technical name com.sap.xs.hdi-container) needs to exist for the HDI container to be accessible from Cloud Foundry.
True
94
.hdiconfig file contains all plug ins name and version for every supported file suffix.
True
95
.hdinamespace contains namespace configuration for the HDB module, including:
1. Name 2. Subfolder 3. Append 4. ígnore
96
What is domain model:
static and data related aspect of a problem domain in terms of entity relationship model. It is the base for persistence models.
97
What is persistence model:
a set of entities mapped from a domain model and deploy to the database.
98
What are Services:
They are exposed interfaces based on domain model.
99
What are consumers:
Other services or UIs which call services via an API.
100
The goal is to keep domain models clean, concise, and comprehensible by factoring out technical aspects separating concerns according to:
1. Fiori markup 2. Authorization 3. Persistence
101
A GIT repository has at least one branch known as:
master
102
What are the names and type of the Remote GIT repository:
private and corporate
103
SAP Cloud Application Programming Model follows two major paradigms:
A declarative paradigm using CDS to capture knowledge about problem domains, and A service-centric paradigm, with widespread usage of Services, Events and Queries.
104
What is our universal modeling language to capture static, as well as behavioral aspects of problem domains in conceptual, concise, and comprehensible ways:
CDS
105
Use namespaces if reusing models:
True
106
Use namespaces over top level context.
True
107
Using enterprise features for:
localized data, authentication and authorization
108
Reusability has several benefits - Repeat of @SAP/CDS/COMMOM
1. Concise and comprehensible models 2. Foster interoperability between all applications 3. Proven best practices captured from real applications 4. Streamlined data models with minimal entry barriers. 5. Optimized implementations and runtime performance
109
What is another name for reusable objects:
aspects
110
Who provides the common types and aspects for applications:
@SAP/CDS/COMMON
111
What are the benefits of using @sap/cds/common:
1. Concise and comprehensible models 2. Foster interoperability between applications 3. Proven best practices captured from real applications. 4. Streamlined data models with minimal entry barriers. 5. Optimized implementations and runtime performance.
112
What are the benefits of reusability:
models are concise and comprehensible by applied classic conceptual modeling methods.
113
@sap/cds/common defines the following aspects for use in your entity definitions:
1. CUID: Use cuid as a convenient shortcut to add canonical, universally unique primary keys to your entity definitions. 2. Managed: used managed to add four elements to capture created by/created at and latest changed by/changed at management information for records. 3. Temporal: use temporal to take advantage of the built-in support that handles date-effective records and time slices, including time travel.
114
The common aspects are declared by:
"using" statement
115
What is Aspect cuid :
it is a shortcut to add a universally unique primary key to your definitions.
116
What is Aspect managed:
it is used to add the four audit dimensions created by, created at data, latest changed by and changed at
117
What is Aspect temporal:
It enables temporal data, which allows maintaining information relating to past, present, and future application time.
118
@sap/cds/common provides predefines easy to use types for:
1. Countries 2. Currency 3. language
119
What is Localization:
it refers to adapting your business application to different languages to cater to specific regional markets.
120
Localization is split into two categories:
1. localization for static content 2. localization for dynamic content
121
How can the localization for static content be achieved:
This is achieved by externalizing all your text literals into separate text bundle files that we call the internationalization files, or in short, i18n files
122
How can localization for dynamic content be achieved by:
marking the attributes that need to support multiple languages with a special keyword called "localized", this then creates a text table for each entity which has attributes defined as "localized"
123
What are Domain models used for:
They are static and data related aspects of problem domain in terms of entity relationship models.
124
What are persistence models:
a set of entities mapped from a domain model and deployed to the database.
125
SAP Cloud Application Programming Model follows two major paradigms
A declarative paradigm using CDS to capture knowledge about problem domains, and A service-centric paradigm, with widespread usage of Services, Events and Queries.
126
What are aspects:
they are the reusable models that can be defined and then reused in other entities. They allow factoring out cross cutting or technical concerns into separate models or files.
127
What is the name of the pre build model delivered in CAPM:
common
128
What are the benefits of using applications provided by @sap/cds/common:
1. Concise and comprehensible models 2. Foster interoperability between all applications 3. Proven best practices captured from real applications 4. Streamlined data models with minimal entry barriers 5. Optimized implementations and runtime performance
129
What are the aspects defined by @sap/cds/common:
1. Cuid 2. Managed 3. Temporal
130
What is cuid:
It is a convenient shortcut to add canonical universally unique primary keys to your entity definitions.
131
What is managed:
this is used for adding four elements to capture created by/created at and latest changed by/changed at management information for records.
132
What is temporal:
this is used to handles date effective records and time slices including time traveling.
133
What is localization for dynamic content:
This is achieved by marking the attributes that need to support multiple languages with a special keyword called "localized", this then creates a text table for each entity which has attributes defined as "localized"
134
What are associations:
They define relationships between entities
135
CDS associations define:
Relationships between entities.
136
Which is the parent folder for the data folder?
DB
137
Which DB Artifact is generated when the CDS entity is deployed to database?
DB table
138
Which folder is required under the db folder as a minimal requirement?
SRC
139
Which category of localization is used to define static content?
I18N
140
When using CAP in the SAP Business Application Studio, you want to use Core Data Services to define the persistence layer. Which extension do you use for the design-time file?
CDS
141
Which of the following are the categories for Localization?
Localized and localization.
142
What are services:
They exposed interfaces based on a domain model.
143
What are aspects:
reusable objects
144
What does CAPM provides:
the means to declaratively capture service definitions and data models, queries, and expressions in plain (JavaScript) object notations. CDS features to parse from a variety of source languages and to compile them into various target languages.
145
What are the source languages used in CAPM:
1. CDS 2. Json 3. YML 4. Code
146
Source languages are parse into CSN then those languages are compiled into the following language as:
1. OData 2. Open API 3. Async API 4. Json and YML 5. SQL DDL 6. Hana DDL
147
Is CSN derived from Json schema:
True
148
What is Definition Language (CDL):
Definition Language (CDL): A reference and overview of all CDS concepts and features with compact examples written in CDS' definition language.
149
What is Schema Notation (CSN):
Specification of CSN, CDS' canonical format for representing CDS models as plain JavaScript objects, similar to JSON Schema.
150
What is Query Language (CQL)
Documents the CDS Query Language (aka CQL) which is an extension of the standard SQL SELECT statement.
151
What is CQN
Specification of the Core Query Notation (CQN) format that is used to capture queries as plain JavaScript objects.
152
What is CXN:
Specification of the Core Expression Notation (CXN) used to capture expressions as plain JavaScript objects.
153
What is built in types:
Find here a brief overview of the predefined types shipped with CDS.
154
What is common types and aspects:
Introduces @sap/cds/common, a prebuilt CDS model shipped with @sap/cds that provides common types and aspects.
155
What is common annotations:
Find here a reference and glossary of common annotations intrinsically supported by the CDS compiler and runtimes.
156
What is Upgrade to Compiler v2:
CDS compiler version 2 (cv2) brings numerous improvements, which allow us to significantly streamline model processing going forward. All projects are recommended to upgrade as soon as possible, as the former version will only receive critical fixes after cv2 is released.
157
What is Nature of Models:
Introduces the fundamental principles of CDS models.
158
What is the “Defining Entity”:
Entities are structured types with named and typed elements, representing sets of (persisted) data that can be read and manipulated using usual CRUD operations.
159
They (defining entity) usually contain one or more designated primary key elements:
define entity Employees { key ID : Integer; name : String; jobTitle : String; }
160
What is the CDS - define type:
You can declare custom types to reuse later on, for example, for elements in entity definitions. Custom-defined types can be simple, that is derived from one of the predefined types, structure types or Associations.
161
How do you declare structure types:
type Amount { value : Decimal(10,3); currency : Currency; } entity Books { price : Amount; }
162
Elements can also be specified with anonymous inline struct types. For example:
entity Books { price : { value : Decimal(10,3); currency : Currency; }; }
163
What are array types:
Prefix a type specification with array of or many to signify array types.
164
What is UUID:
They are auto generated ID’s.
165
What is associations:
capture relationships between entities.
166
What is composition:
They are used to model document structures through contained in relationships. This is like cardinality.
167
During software development the data model is defined via a Data Definition Language within a file with extension
.cds
168
SQLScript is defined as:
The language to write stored procedures and user defined functions in SAP Hana. It is an extension of ANSI-92.
169
SQLScript has many advantages over SQL:
1. Complex logic can be broken down into smaller chunks of code. 2. Support local variables for intermediate results with implicitly defined types. 3. SQLScript has flow control logic such as if-then-else clauses that are not available in SQL. 4. Stored procedures can return multiple results, while a standard SQL query returns only one result set.
170
What is imperative language:
This enables the developer to add very precise control flow logic.
171
What is the cost of using SQLScript imperative language elements:
it can break the automatic optimization by SAP Hana.
172
SQL is a descriptive language and sometimes it is called:
declarative language.
173
Declarative logic is used to declare the data selection via SELECT statements like:
1. The developer defines the what. 2. The engine defines the how and execute accordingly.
174
Imperative logic allows the control flow of the instructions written in SQLScript like:
1. Scalar variable manipulation 2. DDL/DML logic 3. While loops 4. If/else 5. Logic is executed as commanded.
175
What can a procedure return:
scalar and tabular outputs.
176
At design time what is the extension to use for building a procedure:
.hdbprocedure artifact.
177
What can be used as parameters:
simple data types, spatial, in line tables or global types defined by CDS.
178
Default keyword is used for:
setting up the initial value of scalar and table parameters.
179
What default empty values initialises:
IN/OUT parameter.
180
What is the framework for creating a procedure:
1. Procedure in/out 2. Language SQLScript 3. SQL Security Invoker 4. Reads SQL Data As 5. Begin 6. End
181
What is the process for debugging a procedure:
1. Open debug panel 2. Attache debugger 3. Attach target. 4. Open for debugging. 5. Set breaks points. 6. Generate the call statement. 7. Execute 8. Debug (step over)
182
Compared to standard SQL, which of the following are the advantages of SQLScript?
1. One can make use of table variables structure complex SQL statements. 2. It enables complex logic to be broken up into smaller chunks of code that enables modular programming, reuse, and a better understanding by functional abstraction. 3. It has control logic, such as if/else.
183
In SAP HANA, you create a stored procedure. What can you set in the header properties?
1. Security. 2. Programming language. 3. Read/write access.
184
From a Deployment standpoint, SAP Cloud Application Programming Model allows two deployment options:
1. Local 2. Persistence
185
Under persistence, there are two options:
SQLite and SAP Hana Cloud.
186
Define Domain Model, models are store with extension:
CDS
187
Where CSV files be stored under:
DB/Data folder.
188
What does npm install do:
It reads the dependencies from your package.json and download all the specified modules into your project from the internet.
189
Where are the tables stored during the Build phase:
Gen folder.
190
Is the compile step optional:
True
191
In the Deploy step of local deployment, what is the command used:
CDS DEPLOY –TO SQLITE
192
What is the process for local deployment:
1. Define cds model 2. Npm install 3. Build – CDS build/all 4. Compile – cds compile db –to hana (or sqlite) 5. deploy
193
What is the process for deploying CDS file to HDI container(SAP Hana Cloud):
1. Set CF Target 2. Define – cds file under DB folder. 3. Config 4. Npm install. 5. Build – cds build/all 6. Check – Database connection – binding. 7. Create service – optional. 8. Deploy: cds deploy
194
Which Database does SAP CAP automatically bootstraps by default when using Local deployment option?
SQLite in – memory.
195
What is the syntax for declaring the general library:
using {}from@sap/cds/common.
196
Which Database does SAP CAP automatically bootstraps by default when using Local deployment option?
SQLite in-memory.
197
What is Odata:
it is an open Data protocol enabling the creation and consumption of REST APIs. Which allows resources, identified using URLs and defined in a data model, to be published and edited by Web clients using simple HTTP messages. Conceptually, OData is a way of performing database-style create, read, update, and delete operations on resources by using HTTP verbs.
198
What are the OData components:
1. OData model 2. OData services 3. OData protocol 4. OData Client Library
199
One of the main features of Odata is that it uses HTTP verbs such as:
1. Get 2. Put 3. Post 4. Delete
200
What is get:
Get the resource (a collection of entities, a single entity, a structural property, etc.)
201
What is Post:
Create a new resource.
202
What is Put:
Update an existing resource by replacing it with a complete instance.
203
What is Patch:
Update an existing resource by replacing part of its properties with a partial instance.
204
The OData approach to data exchange involves the following elements:
1. OData data model - OData uses the Entity 1 Data Model (EDM). 2. OData protocol - Enables a client to query an OData service. 3. OData client libraries - Enable access to data via the OData protocol. 4. OData services - Exposes an end point that allows access to data in the SAP HANA database.
205
The OData service sends data in either of the following ways:
1. XML-based format defined by Atom/AtomPub 2. JSON
206
There are two types of documents associated with each OData service:
1. the service document. 2. the service metadata document.
207
What does the service document contain:
The service document lists entity sets, functions, and singletons that can be retrieved. Clients can use the service document to navigate the model in a hypermedia-driven fashion. The service document is available at http://://.
208
What does the metadata document describe:
The metadata document describes the types, sets, functions, and actions understood by the OData service. Clients can use the metadata document to understand how to query and interact with entities in the service. The service metadata document is available at http://://$metadata. The URL will return XML metadata of the service (Entity data model). The response of a service metadata document only supports XML.
209
In the .cds file created for exposing database objects, what are those objects:
1. Calculated Views 2. Table 3. Views 4. DB objects
210
In which folder the file .cds should be created:
SRV/folder.
211
What does annotation indicate:
This is used to provide the capability to save a draft version of the record created using our Fiori application(later) before it is written to the database.
212
Which file extension do you use for the definition file for an OData service?
CDS.
213
What is Node.JS:
* Node.js is a server-side runtime environment for JavaScript. * Node.js is built on Google’s V8 JavaScript engine. * Node.js uses an asynchronous, event-driven programming model. * Node.js is single threaded and highly scalable. * Node.js is best suited for web applications. * Node.js is open-source with a huge community * Node.js is has many available libraries (Node Modules) via NPM library.
214
What is Machine code:
It is a low-level code that the computer can run without needing to first interpret it.
215
What does the package.json file contain:
The build, deployment, and runtime dependencies of a JavaScript application.
216
The package.json is made up of the following:
* name The name of the JavaScript application whose package prerequisites and dependencies are defined in this package description. * description A short description of the JavaScript application, whose package prerequisites and dependencies are defined in this package description. * private Use the private property to indicate if access to the package specified in name is restricted. Private packages are not published by npm. * version The version of the JavaScript application, whose package prerequisites and dependencies are defined in this package description. * repository The absolute path to the repository used by the JavaScript application, whose package prerequisites and dependencies are defined in the package description. * dependencies A list of dependencies that apply to the JavaScript application, whose package prerequisites and dependencies are defined in the package description. * engines The runtime engines used by the application specified in the name property. * scripts The script containing the command used to start the JavaScript application, along with any additional (required) options and parameters.
217
Which is the correct sequence for creating the Hello World OData service using the SAP CAP Model?
Define , Implement, Run, Consume.
218
What is Node.js?
It is a server-side runtime environment for JavaScript.
219
Node.JS version is composed of:
Major/Minor/Patch.
220
What does ~1.2.3 indicates:
allows patch level changes >=1.2.3 < 1.3.0.
221
What does ~1.2 indicates:
allows patch level changes equivalent to 1.2.X.
222
What does ~1. indicates:
allows patch level changes equivalent to >=1.0.0 < 2.0.0 equivalent to 1.X.
223
What does ~1.2.3 indicates:
allows version changes with the same most left non zero digit - >=1.2.3 < 2.0.0.
224
What does Ctrl + c 0.0.3 indicates:
allows >=0.0.3 <0.0.4.
225
Applications are deployed to the target platform by using:
the push operation of the platform API.
226
Pushing an application works as follows:
1. The application files are uploaded to the platform. 2. Buildpacks are executed to create archives, that create the self-contained and ready-to-run executable applications (downloading any required libraries and other dependencies, configuring the application). Different buildpacks exist for the different target runtime environments, such as Java or JavaScript/ Node.js. 3. Applications are started as separate processes. At runtime, the applications need the connection information for the service instances to which they are bound. The applications obtain this information from process-specific environment variables, which are resolved by the platform in a process known as service wiring. Bindings can only be created between applications and service instances in the same space.
227
Below are the two methods to run a Node.js module using Business Application Studio:
CDS run and CDS watch.
228
When configuring files, the start scrips will be available for execution and the config are stored in which file:
the launch.json file.
229
In the Run Configurations view, you can see the available dependencies as defined in the package.json file.
True.
230
The following Cloud Foundry service types are supported for binding:
* hana ( managed-hana is not supported) o PSA-based SAP HANA o HaaS (if configured as "Available for all IPs") o SAP HANA Cloud (if configured as "Available for all IPs") * xsuaa * auditlog * application-logs You can also bind directly to a destination.
231
Creation of a simple “hello world” OData service using SAP CAPM Model is performed in 4 simple stages:
1. Define Service using CDS - /srv/say.cds. 2. Implementing using Node.Js express.js handler style - /srv/say.js or using Node.Js es6 classes style /srv/say.js 3. Run using CDS - cds run or cds watch or cds serve world.cds. 4. Consume using local browser – http://localhost:4004/say/hello(to=’world’).
232
Which is the correct sequence for creating the Hello World OData service using the SAP CAP Model?
Define, implement, run and consume.
233
What is Node.js:
It is a server-side runtime environment for JavaScript.
234
To access Sap hana DB content such as tables, procedures and views from Node.js, the module to be used is
@sap/dbtext.
235
What are the general rules of thumb in CAPM?
Declarative and service approach.
236
What is Custom Code logic:
It is the code you can add to the application to express things like input validations, additional calculations, call to other services, to the database and more.
237
We have 4 types of API's:
1. Construct, Reflection API. 2. Querying API. 3. Messaging API. 4. Event Handling.
238
What is Construct, Reflection API:
This deals with constructing and looking things up in services or connecting to other required services. Not commonly used. Usually, you will not be confronted too much with these.
239
What is Querying API:
This is a query API, through which you can send synchronous queries to services, including databases.
240
What is Messaging API :
This is the asynchronous counterpart of the query API, with which services can send messages to one another.
241
Event Handling :
These are used to register custom event handlers.
242
In SAP Cloud Application Programming Model, everything that happens at runtime is an event that is sent to a service.
True.
243
What is an event handler:
it is a method, that is executed when something happens in the application.
244
An event is registered as:
srv. (event>)
245
is of the type:
on, before or after.
246
It is any kind of named event as string (e.g. ‘READ’).
247
How can we send arbitrary events:
Using srv.emit().
248
There are many ways to register JavaScript implementation to the Framework, the most commonly used is :
Option 1: In this method the Javascript file is placed next to the CDS (.cds) file used to define the service, the Javascript file needs to have the same name as the .cds file, this way the framework hooks up the implementation to the service file. Option 2: Here we set the link through the impl annotation in your CDS model file (.cds), where the respective service implementation can be found. This is useful if you have diverging file names or you want to make it very explicit that the two files belong together. Option 3 & 4: These are advanced and used with the CDS serve API to bootstrap your services on your own. Option 5: Is used when dealing with external services.
249
What is CAPM:
it is a set of libraries, Tools, language and framework for building SAP cloud applications.
250
What are the steps for registering the handlers for option 1:
1. Define 2. Build 3. Test 4. Run 5. Send request.
251
Develop try/catch only when it is necessary:
True.
252
Which of the following applies to Custom Event handlers?
1. Multiple Event Handlers can be registered for same event. 2. Registered custom handlers can add Domain logic to application. 3. Single handlers can be registered for multiple events.
253
The UI5 core has the following features and capabilities:
1. ● Includes standards like MVC and various data-binding types 2. ● Choose between different view formats (XML, HTML, JavaScript, JSON) 3. ● Binding with OData, JSON, XML and other data formats 4. ● Built-in support tool for exploring the object tree and binding status
254
UI5 has the following features and capabilities:
1. ● Translation and internationalization support 2. ● Extensibility concepts at code and application level 3. ● High contrast theme to aid visually impaired users
255
What is this annotation used for @odata.draft.enabled:
to enable draft for an entity exposed by a service.
256
What is Annotation Placement:
Although Placement of Annotations can be added to the models with no constraints, it is recommended to place them in the app folder.
257
The set up of Fiori process commence on creating the right file path such as:
/app/resources/index.html file.
258
What is the starting point for creating Fiori applications:
index.html.
259
What is the structure of index.html:
Application – initial construction. Bootstrap – contains configuration including the libraries to be loaded, resource root location and theme. UI- Area: contains primary UI anchor.
260
You are creating the index.html file of an UI5 application. What does the bootstrap contain?
The libraries to be loaded.
261
What is the SAP Fiori List Report Template?
A wizard that generates a UI5 List Report based on an existing OData service.
262
What are the three main areas of application security:
1. Identity management 2. Governance, risk & compliance. 3. Authentication & Single sign on.
263
For accessing the application, authentication and & single sign on uses the following features:
SAP identity authentication and single sign on.
264
Identity management embraces the following:
SAP BTP identity provisioning service and SAP Identity management.
265
Governance, Risk & compliance embraces:
SAP Cloud Identity access governance and SAP access Control.
266
The main reason for creating CAPM is to:
1. Provide a Simple way to Create Cloud-Based Apps 2. The Apps and code which developer created can be made more reusable as modules 3. Advantage of Microservice can be utilized 4. Apps in Cloud can be Easly integrated with Cloud Services(like DB service, message broker service or Auth Provider service) 5. A developer can focus more on the functional side of problem-solving
267
All npm packages are defined in files called package.json.
True
268
The content of package.json must be written in JSON.
True
269
CAP applications use Core Data Services (CDS) to describe:
1. Data structures by using entity definitions 2. How data structures are consumed by using service definitions
270
All active artefacts are named:
services and they are declared in CDs and they provide uniform APIs.
271
Services react on events covering:
synchronous and asynchronous APIs.
272
All data is passive without own behaviour, adhering to:
REST.
273
Services are declared in CDS models, used to:
serve requests automatically. They embody the behavioral aspects of a domain in terms of exposed entities, actions, and events.
274
The default project structure of CAP projects is as follows:
bookshop/ # Your project's root folder ├─ app / # UI-related content goes here ├─ srv/ # Service-related content goes here ├─ db/ # Domain models and database-related content goes here ├─ package.json # Contains configuration for cds-dk └─ readme.md # A readme placeholder
275
What is app for:
# UI-related content goes here.
276
What is srv for:
Service-related content goes here.
277
What is db for:
Domain models and database-related content goes here.
278
What is package.json for:
Contains configuration for cds-dk.
279
How to deploy from VSC to SAP Hana:
cds deploy --to hana
280
What do entities represent:
domain data.
281
Are namespaces compulsory:
False
282
Why UUIDs are important:
that means that they’re unique across every system in the world, while sequences are only unique in the source system's boundaries.
283
Why do we need to use associations:
It is important to capture relationships between entities.
284
Why do we need services – definition file:
It declares the data entities and operations it serves.
285
What is the other name to title exposed views:
projections.
286
What is localized data:
it is used to display books titles and descriptions in the user's preferred language. With CDS we simply use the localized qualifier to tag respective text fields
287
Which folder is used for UI5 development:
App.
288
What can be used in the service file for enabling drafts for an entity to exposed by a service:
@odata.draft.enabled.
289
What is i18n used for:
this is used for translating static text.
290
What does localization commit do:
pushed changes to files to git.
291
Application:
contains the construction of application.
292
What does Bootstrap contains:
configuration including the libraries to be loaded, resource root location, and theme.
293
What does Ui contains:
primarily UI anchor.
294
You are creating the index.html file of an UI5 application. What does the bootstrap contain?
The libraries to be loaded.
295
What is OpenUI5?
An open-source project.
296
What is the SAP Fiori List Report Template?
A wizard that generates a UI5 List Report based on an existing OData service.
297
Authentication & Single Sign-on:
1. SAP Identity Authentication 2. SAP Single Sign-On
298
Identity Management:
1. SAP BTP Identity Provisioning service 2. SAP Identity Management
299
Governance, Risk & Compliance:
1. SAP Cloud Identity Access Governance 2. SAP Access Control
300
IDP identity providers, is it out of the box for SAP BTP:
True.
301
Where is SAML used for:
External authentication provider.
302
What is use for identity in SAP BTP:
authenticated identity.
303
SAML can be change in SAP BTP at:
subaccount level.
304
What are the two users’ model in Sap BTP:
Platform and business users.
305
For platform users, the default is provided by:
SAP ID service.
306
What is approuter:
it is Node JS library that is available in Public NPM. It represents a single entry point to your application.
307
Approuter tasks are:
1. Is the central entry point for our application, it dispatches requests to our back end microservices. 2. It can serve static content such as webpages, SAPUI5 or another client side code. 3. It manages the authentication flows for our entire application.
308
Is approuter a Node.js component:
True.
309
What is the application router’s design time descriptor:
xs-app.json
310
How do we manage authorizations:
via technical roles at the application levels.
311
Main Properties on root level are:
1. authenticationMethod 2. logout 3. destinations 4. services
312
What is JSON Web Token (JWT) A JSON Web Token (JWT)
It is an open standard (RFC 7519) that defines a compact and self\u0002contained way for securely transmitting information between parties as a JSON object.
313
When should you use JSOn Web Tokens:
1. Authorizations 2. Information exchange
314
Where is user assigned to:
Role collection.
315
Role Collection has many Roles:
True.
316
What does Role contain:
Scope.
317
What is Scope
Scopes are arbitrary values that express authorizations / access rights in an application or service. Scopes need to be prefixed with an xsappname to make them uniquely identifiable.
318
What is Roles:
Role-collections contain one or more roles. A role can be used in multiple role-collections. But it is totally fine to have for example a role-collection called Admin that only has an admin role.
319
What is Role-collections:
they are stored as an assignment in the XSUAA and are THE entity that can be assigned to a certain business user.
320
Does XSUAA store data:
False.
321
In security terms, what is Scopes:
Scopes are arbitrary values that express authorizations / access rights in an application or service. Scopes need to be prefixed with an xsappname to make them uniquely identifiable.
322
What is role:
Roles are entities that hold several scopes. Scopes can be put in multiple roles, so you are not limited to have scopes sitting in just one role.
323
What are Role-Collections:
Role-collections contain one or more roles. A role can be used in multiple role-collections. But it is totally fine to have for example a role-collection called Admin that only has an admin role.
324
What is a xs-security.json?
The "declaration of your app’s security".
325
What authorization means:
restricting access to data.
326
What does user role do:
These reflects how the user interact with an application.
327
SAP CAPM supports the following pseudo roles:
1. authenticated-user refers to (named or unnamed) users who have presented a valid authentication claim such as a logon token. 2. system-user denotes an unnamed user used for technical communication. 3. any refers to all users including anonymous ones (that means, public access without authentication).
328
Restrictions can be defined on different CDS resources:
1. Services 2. Entities 3. (un)bound actions and functions
329
The term restriction in CDS is referred:
1. grant one or more events the privilege applies to 2. to:one or more user roles the privilege applies to (optional) 3. where: a filter condition that further restricts access on instance level (optional)
330
To enable authentication support in CAP, a node.js module called passport needs to be installed via npm instruction
npm install --save passport
331
At which SAP BTP level is the role administrator assigned:
Global Account.
332
At which SAP BTP level is the security administrator role assigned:
sub account level.
333
At which SAP BTP level is the organization role assigned:
subaccount level.
334
What is scopes:
Scopes are arbitrary values that express authorizations / access rights in an application or service. Scopes need to be prefixed with an xsappname to make them uniquely identifiable.
335
What is roles:
Roles are entities that hold several scopes. Scopes can be put in multiple roles, so you are not limited to have scopes sitting in just one role.
336
What are role collections:
Role-collections contain one or more roles. A role can be used in multiple role-collections. But it is totally fine to have for example a role-collection called Admin that only has an admin role. Role-collections are stored as an assignment in the XSUAA and are THE entity that can be assigned to a certain business user.
337
Event can be restricted on CDS views by us8ing:
@readonly and @insertonly.
338
@requires is used for:
specifying one or more user roles (as a single string or an array of string) that the current user must be assigned.
339
@restrict is used for:
It enables the user to have fine grained control through an array of privileges given as grant statements in the form of {grant:,operation>,to:,…}
340
What are the properties used with @requires and @restrict:
1. Grant - one or more events the privilege applies to. 2. To - one or more user roles the privilege applies to (optional) 3. Where - a filter condition that further restricts access on instance level (optional).
341
Draft entities can only be edited by the creator user:
True.
342
What does imply if a user has the privilege to update an entity:
the user can put it into draft mode and update, delete, and activate it.
343
What does imply if a user has the privilege to create an entity:
the user has the privilege to create new draft entity and update, delete, and activate it.
344
What is needed for supporting CAPM, and Node.Js:
install a passport – npm install –save passport.
345
What is used for User Authentication?
Identity provider.
346
The current domain model consists of:
Account, Subaccount(s), Spaces
347
What are the service plans:
lite, standard, or service.
348
What is REST point:
an API URL to an app to invoke actions through the job scheduling.
349
What is an instance:
a job scheduling and XSUAA instance has to be bound to app9s).
350
What are the prerequisites for job scheduling:
1. BTP Account 2. BTP access, global account- and subaccount has to be set up appropriately. 3. Role 4. For this kind of Service the Global Account Administrator role is necessary. 5. Quota 6. The contract with SAP has to allow the usage of this service. 7. Space 8. The location of the Job Scheduling Service with all applications is the level Space. 9. Space Role 10. For binding the service instance to your applications you need to have the Space Developer or alternatively-the Space Manager Role. 11. Application 12. The SAP Job Scheduling Service does not take care of applications. This has to be set up before it is possible to use this service. 13. Endpoint 14. Accordingly to applications also its endpoints have to be configured and tested positively before using the Scheduling Service. 15. Location 16. It is compulsory to have Applications and the Job Scheduling Service Instance in the same space. 17. After the subscription to the SAP Job Scheduling Service, what is the next activity: a service instance must be created and bind it to the right to use the service.
351
In CAPM the binding between services and applications can take place in two different places:
1. SAP BTP Cockpit 2. CLI - Cloud Foundry command line interface In this introduction we will use the SAP BTP Cockpit for setting up the SAP Job Scheduling Service.
352
What is the process flow using job scheduling service:
1. Create an instance of the SAP job Scheduling service 2. Create an xsuaa service instance. 3. Deploy the application. 4. Bind the xsuaa service instance to your application.
353
When the scheduler invokes the endpoint, it passes the request with the following asynchronous process:
1. x-sap-job-id- Job ID 2. x-sap-job-schedule-id - Job Schedule ID, 3. x-sap-job-run-id- Job Run ID 4. x-sap-scheduler-host- SAP Job Scheduling service Host URI
354
Cloud Foundry tasks always run asynchronously:
True.
355
Synchronous mode is used for:
sending an Email, checking for currencies. Process with a short span of time.
356
Asynchronous mode is used for:
operations that take more than 15 seconds.
357
Synchronous mode overview:
1. When the scheduler invokes the endpoint, the application must return the response with an appropriate HTTP status code, indicating success or failure. 2. To indicate success, the application must use a suitable standard status code between 200 and 399, except 202-ACCEPTED. 3. To indicate an execution failure, the application must use one of the server error codes as outlined in the HTTP protocol specification.
358
How to create a job:
1. Navigate to the Jobs section. 2. Click Create Job 3. In the next window provide the details * Name- Name of the job. Name must not contain special characters or only numbers. * Description-Provides more details about a job. * Target application- The deployed application. * Action - The fully qualified URL endpoint to be called when the job runs. * HTTP Method- The HTTP method to be used to call the job action endpoint URL. Allowed values are "GET", "POST" , "PUT", and "DELETE". * Start Time- Start time for the job. The scheduler checks if a start time for a schedule is available apart from the start time available for a job. The schedule start time is used for determining the start of the schedule run. If the schedule start time is not available, the start time of the job is used. * End Time- End time for the job. The scheduler checks if an end time for a schedule is available apart from the end time available for a job. The schedule end time is used for determining the end of the schedule run. If the schedule end time is not available, the end time of the job is used. * Active- Activation status of the job (default value is false).
359
There are two types of schedules:
one time and recurring.
360
What are the prerequisites for using the Job Scheduling Service?
1. BTP Account 2. Quota 3. Role
361
When the scheduler invokes the endpoint, the application which HTTP status code is returned to indicate success:
200-201.
362
What is NODE.JS:
it is a runtime environment.
363
What are the parts of a browser:
It takes JS processed by JS engine and produces machine code.
364
Which engine is used in node.js:
V8.
365
What node.js is mode of:
V8 engine inside a C++ environment.
366
Are node.js asynchronous by default:
True.
367
Every file is a module in node.js
True.
368
Global variables must be explicitly made public:
True.
369
Objects defined in a module cannot be accessed outside this module, the objects are called:
Private.
370
Should variables and functions be defined globally:
False.
371
Which parameters are mandatory in the Global Elements section of an mta.yaml file? Note: There are 3 correct answers to this question.
_schema-version ID version