CAPM Flashcards

1
Q

What is CAPM

A

The SAP Cloud Application Programming Model (CAP) is a framework of languages, libraries, and tools for building enterprise-grade services and applications. It guides developers along a ‘golden path’ of proven best practices and a great wealth of out-of-the-box solutions to recurring tasks.

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

CAP places primary focus on domain, by

A

capturing domain knowledge and intent instead of imperative coding — that means, What, not How — thereby promoting:

Close collaboration of developers and domain experts in domain modeling.
Out-of-the-box implementations for best practices and recurring tasks.
Platform-agnostic approach to avoid lock-ins, hence protecting investments.

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

What is the backbone of language of CAPM

A

CDS

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

What does Domain Models capture?

A

static aspects of problem domains as well-known entity-relationship models.

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

What are Associations

A

capture relationships.

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

What are Compositions

A

extend that to easily model document structures.

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

What are Annotations

A

allow enriching models with additional metadata, such as for UIs, Validations, Input Validation or Authorization.

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

What are Aspects

A

allow to flexibly extend models in same or separate modules, packages, or projects; at design time or dynamically at runtime.

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

What is an example of separation concerns

A

// Separation of Concerns
extend Books with @restrict: [
{ grant:’WRITE’, to:’admin’ }
];

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

What is an example of Verticalization

A

// Verticalization
extend Books with {
ISBN : String
};

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

/What is an example of Customization

A

// Customization
extend Orders with {
customer_specific : String
};

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

What is Core Query Language (CQL)

A

CQL is CDS’s advanced query language. It enhances standard SQL with elements to easily query deeply nested object graphs and document structures.

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

What is an example of CQN in JavaScript language

A

// In JavaScript code
orders = await SELECT.from (Orders, o=>{
o.ID, o.descr, o.Items (oi=>{
oi.book.title, oi.quantity
})
})

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

All behavioral aspects in CAP are based on ubiquitous notions of Services and Events, as expressed in this manifest:

A
  1. All active things are Services — local ones, remote ones, as well as databases
  2. Services are declared in CDS — reflected and used in generic service providers
  3. Services provide uniform APIs — consumed by other services or frontends
    4.Services react on Events — covering synchronous and asynchronous APIs
  4. Services consume other Services — in event handler implementations
  5. All data is passive — that is, without its own behavior, adhering to REST
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Are Services in CAPM stateless

A

True

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

Where are services declare

A

in CDS models, used to serve requests automatically. They embody the behavioral aspects of a domain in terms of exposed entities, actions, and events.

17
Q

Provide an example of service definition

A

// Service Definition in CDS
service OrdersService {
entity Orders as projection on my.Orders;
action cancelOrder (ID:Orders.ID);
event orderCanceled : { ID:Orders.ID }
}

18
Q

Every active thing in CAP is a service, including local services or remote ones — even databases are represented as services. provide an example

A

// Consumption in JavaScript
let srv = cds.connect.to(‘OrdersService’)
let { Orders } = srv.entities
order = await SELECT.one.from (Orders)
.where({ ID:4711 })
srv.cancelOrder (order.ID)

19
Q

What is domain modelling

A

Most projects start with capturing the essential objects of their domain in a respective domain model. Find here an introduction to the basics of domain modeling with CDS, complemented with recommended best practices.

20
Q

What is providing servicdes

A

This guide introduces how to define and implement services, leveraging generic implementations provided by the CAP runtimes, complemented by domain-specific custom logic.

21
Q

What is consuming services

A

Learn how to use uniform APIs to consume local or remote services.

22
Q

What is the capture intent philosophy

A

Capture Intent — What, not How!

23
Q

What is ERM

A

Entity Relationship Model

24
Q

What are the uses of the domain models

A

They serve as the sources for persistence models, deployed to databases, as well as the underlying model for services acting as API facades to access data.

25
Q

What is Node.Js

A

It is a JavaScript runtime, or an environment that allows us to execute JavaScript code outside of the browser. A “runtime” converts code written in a high-level, human-readable, programming language and compiles it down to code the computer can execute.