diff --git a/.vitepress/config.js b/.vitepress/config.js index 540ba5d6b2..00aa5d5a95 100644 --- a/.vitepress/config.js +++ b/.vitepress/config.js @@ -164,7 +164,7 @@ config.themeConfig.search = { tokenize: text => text.split( /[\n\r #%*,=/:;?[\]{}()&]+/u ), // simplified charset: removed [-_.@] and non-english chars (diacritics etc.) processTerm: (term, fieldName) => { term = term.trim().toLowerCase().replace(/^\.+/, '').replace(/\.+$/, '') - const stopWords = ['frontmatter', '$frontmatter.synopsis', 'and', 'about', 'but', 'now', 'the', 'with', 'you'] + const stopWords = ['frontmatter', '$frontmatter.description', 'and', 'about', 'but', 'now', 'the', 'with', 'you'] if (term.length < 2 || stopWords.includes(term)) return false if (fieldName === 'text') { diff --git a/.vitepress/theme/components/IndexList.vue b/.vitepress/theme/components/IndexList.vue index 9ad27c66b7..dea64e8b64 100644 --- a/.vitepress/theme/components/IndexList.vue +++ b/.vitepress/theme/components/IndexList.vue @@ -11,7 +11,7 @@
diff --git a/.vitepress/theme/components/indexFilter.ts b/.vitepress/theme/components/indexFilter.ts index fd2328c211..c268ee1629 100644 --- a/.vitepress/theme/components/indexFilter.ts +++ b/.vitepress/theme/components/indexFilter.ts @@ -31,7 +31,7 @@ export default (pages:ContentDataCustom[], basePath:string):ContentDataCustom[] url: p.url, title: p.title, frontmatter: { - synopsis: p.frontmatter.synopsis + description: p.frontmatter.description }, // this data is inlined in each index page, so omit unnecessary data src:undefined, html:undefined, excerpt:undefined diff --git a/cds/annotations.md b/cds/annotations.md index c1b56e2bcd..6d6d5afdc1 100644 --- a/cds/annotations.md +++ b/cds/annotations.md @@ -1,15 +1,12 @@ --- -# layout: cds-ref -shorty: Annotations -synopsis: > +description: > Find here a reference and glossary of common annotations intrinsically supported by the CDS compiler and runtimes. -status: released uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/855e00bd559742a3b8276fbed4af1008.html --- # Common Annotations -{{ $frontmatter.synopsis }} +{{ $frontmatter.description }} [Learn more about the syntax of annotations.](./cdl#annotations){.learn-more} diff --git a/cds/aspects.md b/cds/aspects.md index 96868685cd..966c5f75db 100644 --- a/cds/aspects.md +++ b/cds/aspects.md @@ -1,7 +1,6 @@ --- -synopsis: > +description: > Discusses the differences of the mixin-based approach of Aspects to inheritance as known from languages like Java. -status: released --- # Aspect-Oriented Modeling diff --git a/cds/cdl.md b/cds/cdl.md index 0f117c6edb..9487f78260 100644 --- a/cds/cdl.md +++ b/cds/cdl.md @@ -1,7 +1,6 @@ --- -# shorty: Definition Language -synopsis: > - Specification of the definition language used to model data models and services in an easy and user-centric syntax. Includes a reference and overview of all CDS concepts and features with compact examples. +description: > + Specification of the definition language used to model data models and services in an easy, user-centric syntax, including a reference and overview of all CDS concepts and features with compact examples. #permalink: /cds/cdl/ uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/855e00bd559742a3b8276fbed4af1008.html --- @@ -285,7 +284,7 @@ CDL supports line-end, block comments, and *doc* comments as in Java and JavaScr /** doc comment */ ``` -#### Doc Comments +#### Doc Comments A multi-line comment of the form `/** … */` at an [annotation position](#annotation-targets) is considered a *doc comment*: @@ -451,7 +450,7 @@ type EmailAddress : { kind:String; address:String; } > Keywords `many` and `array of` are mere syntax variants with identical semantics and implementations. -When deployed to SQL databases, such fields are mapped to [LargeString](./types) columns and the data is stored denormalized as JSON array. +When deployed to SQL databases, such fields are mapped to [LargeString](./types) columns and the data is stored denormalized as JSON array. With OData V4, arrayed types are rendered as `Collection` in the EDM(X). @@ -858,7 +857,7 @@ Result result = service.run(Select.from("UsingView"), params); ### Runtime Views { #runtimeviews } -To add or update CDS views without redeploying the database schema, annotate them with [@cds.persistence.skip](../guides/databases/cdl-to-ddl#cdspersistenceskip). This advises the CDS compiler to skip generating database views for these CDS views. Instead, CAP resolves them *at runtime* on each request. +To add or update CDS views without redeploying the database schema, annotate them with [@cds.persistence.skip](../guides/databases/cdl-to-ddl#cdspersistenceskip). This advises the CDS compiler to skip generating database views for these CDS views. Instead, CAP resolves them *at runtime* on each request. Runtime views must be simple [projections](#as-projection-on), not using *aggregations*, *join*, *union* or *subqueries* in the *from* clause, but may have a *where* condition if they are only used to read. @@ -934,7 +933,7 @@ entity Addresses { ``` -### Managed (To-One) Associations +### Managed (To-One) Associations ###### managed-associations For to-one associations, CDS can automatically resolve and add requisite foreign key elements from the target's primary keys and implicitly add respective join conditions. diff --git a/cds/common.md b/cds/common.md index ffba589a54..f3ad9fac11 100644 --- a/cds/common.md +++ b/cds/common.md @@ -1,6 +1,5 @@ --- -# layout: cds-ref -synopsis: > +description: > Introduces @sap/cds/common, a prebuilt CDS model shipped with @sap/cds that provides common types and aspects. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/855e00bd559742a3b8276fbed4af1008.html --- diff --git a/cds/compiler/hdbcds-to-hdbtable.md b/cds/compiler/hdbcds-to-hdbtable.md index c0863a4913..35e8ff6536 100644 --- a/cds/compiler/hdbcds-to-hdbtable.md +++ b/cds/compiler/hdbcds-to-hdbtable.md @@ -1,6 +1,6 @@ --- -# layout: cds-ref -status: released +description: > + Step-by-step instructions for migrating SAP HANA database deployments from the deprecated `hdbcds` format to `hdbtable`. --- # Moving From _.hdbcds_ To _.hdbtable_ diff --git a/cds/compiler/v2.md b/cds/compiler/v2.md index d85e5f5916..24138db706 100644 --- a/cds/compiler/v2.md +++ b/cds/compiler/v2.md @@ -1,18 +1,13 @@ --- -shorty: Compiler v2 -synopsis: > - This document describes the upgrade to compiler version 2, released March 2021. As both compiler version 1 and version 2 are out of maintenance by now, - we expect that all projects have already upgraded. If in doubt, run `cds v` to find out which version of the CAP modules you have in use. - -# layout: cds-ref -status: released +description: > + Describes the upgrade to CDS compiler version 2 (released March 2021), which is now out of maintenance and expected to already be in use by all projects. --- # Upgrade to Compiler v2 -{{ $frontmatter.synopsis }} +{{ $frontmatter.description }} CDS compiler version 2 brings numerous improvements, which allow us to significantly streamline model processing going forward. Changes mostly affect internal implementations of the compiler and nonpublic parts of the artifacts produced by the compiler (CSN, EDMX, ...), hence are unlikely to be observed by users of CDS. @@ -636,7 +631,7 @@ CAP Java supports using CDS models that have been compiled with the CDS complier For every entity that has *localized* elements the CDS compiler [behind the scenes](../../guides/uis/localized-data#behind-the-scenes) generates a corresponding "texts" entity that holds the translated texts. The name of this entity changes with CDS compiler v2. -::: warning +::: warning With compiler v1 the "texts" entity is generated with the suffix `_texts`, while the compiler v2 uses the suffix `.texts`! ::: @@ -711,7 +706,7 @@ CAP Java allows to [provide initial data](../../guides/databases/initial-data) t mv bookshop-Books_texts.csv bookshop-Books.texts.csv ``` -::: warning +::: warning If a CSV file has already been deployed to a productive SAP HANA schema it can't be renamed any longer. To support this situation cds deploy as well as the CSV data loader in CAP Java still suppport CSV files with a `_texts` suffix. ::: @@ -754,7 +749,7 @@ In this example, the return type of the `cancel` function is automatically expos With compiler v1 this change was also reflected in the CSN. With compiler v2 this is not the case any longer. -::: warning +::: warning If types are used in a service that are defined outside of the service the [generated accessor interface](../../java/cds-data#generated-accessor-interfaces) will change when upgrading from compiler v1 to v2! ::: @@ -838,7 +833,7 @@ OData, however, does not support anonymous types. Hence, the compiler will autom In this example the compiler generated the type `Person_emails` in the OData service `hr`. -::: warning +::: warning If an inline defined type is used in a service the [generated accessor interface](../../java/cds-data#generated-accessor-interfaces) will change (an inner interface is generated) when upgrading from compiler v1 to v2! ::: diff --git a/cds/cql.md b/cds/cql.md index dfe91df2b4..bf8d5154fd 100644 --- a/cds/cql.md +++ b/cds/cql.md @@ -1,7 +1,5 @@ --- -# layout: cds-ref -shorty: Query Language -synopsis: > +description: > Specification of the CDS Query Language (aka CQL) which is an extension of the standard SQL SELECT statement. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/855e00bd559742a3b8276fbed4af1008.html --- @@ -422,14 +420,14 @@ where the corresponding type can be deduced: type Status : String enum { open; closed; in_progress; }; entity OpenOrder as projection on Order { - + case status when #open then 0 when #in_progress then 1 end as status_int : Integer, (status = #in_progress ? 'is in progress' : 'is open') - as status_txt : String, - + as status_txt : String, + } where status = #open or status = #in_progress; ``` diff --git a/cds/cqn.md b/cds/cqn.md index 1a0ee89cf4..28e30176b8 100644 --- a/cds/cqn.md +++ b/cds/cqn.md @@ -1,9 +1,6 @@ --- -# layout: cds-ref -shorty: Query Notation -synopsis: > +description: > Specification of the Core Query Notation (CQN) format that is used to capture queries as plain JavaScript objects. -status: released --- # Query Notation (CQN) diff --git a/cds/csn.md b/cds/csn.md index 27384f77bd..291549766a 100644 --- a/cds/csn.md +++ b/cds/csn.md @@ -1,7 +1,5 @@ --- -# layout: cds-ref -shorty: Schema Notation -synopsis: > +description: > Specification of CSN, CDS' canonical format for representing CDS models as plain JavaScript objects, similar to JSON Schema. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/855e00bd559742a3b8276fbed4af1008.html --- diff --git a/cds/cxl.md b/cds/cxl.md index d54d551014..41936fe71e 100644 --- a/cds/cxl.md +++ b/cds/cxl.md @@ -1,5 +1,5 @@ --- -synopsis: > +description: > Specification of the CDS Expression Language (CXL) used to capture expressions in CDS. --- @@ -121,7 +121,7 @@ This syntax diagram describes the possible expressions: > [Operators](#xpr), > [Literals](#val), > [Functions](#func), -> +> > Used in: > [Calculated Elements](#in-calculated-elements), > [Annotations](#in-annotations), @@ -249,8 +249,8 @@ Compared to the previous example, we now use the expression directly in the quer to calculate the total value of all books in stock. -## Path Expressions (`ref`) -###### ref +## Path Expressions (`ref`) +###### ref A `ref` (short for reference) is used to refer to an element within the model. It can be used to navigate along path segments. Such a navigation is often @@ -260,7 +260,7 @@ referred to as a **path expression**. > Using: > [Infix Filters](#infix-filters) -> +> > Used in: > [Expressions](#expr) @@ -400,7 +400,7 @@ This allows you to specify conditions on subsets of associated entities, enablin An infix in linguistics refers to a letter or group of letters that are added in the middle of a word to make a new word. -If we apply this terminology to path expressions, an infix filter condition is an expression +If we apply this terminology to path expressions, an infix filter condition is an expression that is applied to a path segment of a path expression. This allows you to filter the target of an association based on certain criteria. @@ -408,7 +408,7 @@ This allows you to filter the target of an association based on certain criteria > Using: > [Expressions](#expr) -> +> > Used in: > [Path Expressions](#ref) @@ -554,7 +554,7 @@ As depicted in below excerpt of the syntax diagram for `expr`, CXL supports all > Using: > [Expressions](#expr) -> +> > Used in: > [Expressions](#expr) @@ -578,7 +578,7 @@ Following table gives an overview of the guaranteed supported operators in CXL: > [!tip] Bivalent `==` and `!=` Operators > In addition to standard SQL's `=` and `<>` operators, CXL also supports `==` and `!=` as bivalent variants as opposed to the trivalent semantics of `=` and `<>` when it comes to null handling. Learn more about this in the [_Bivalent `==` and `!=` Operators_](../guides/databases/cap-level-dbs#bivalent--and--operators) section of the databases documentation. -> [!tip] Ternary `?:` Operator +> [!tip] Ternary `?:` Operator > In addition to the standard SQL `case when then` expression, CXL also supports the ternary `?:` operator as a more concise syntax for simple case expressions. Learn more about this in the [_Ternary `?:` Operator_](../guides/databases/cap-level-dbs#ternary--operator) section of the databases documentation. @@ -590,7 +590,7 @@ Following table gives an overview of the guaranteed supported operators in CXL: > Using: > [Expressions](#expr) -> +> > Used in: > [Expressions](#expr) diff --git a/cds/cxn.md b/cds/cxn.md index 9fd2814fb9..1dec06d2da 100644 --- a/cds/cxn.md +++ b/cds/cxn.md @@ -1,7 +1,5 @@ --- -# layout: cds-ref -shorty: Expressions -synopsis: > +description: > Specification of the Core Expression Notation (CXN) used to capture expressions as plain JavaScript objects. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/855e00bd559742a3b8276fbed4af1008.html --- @@ -137,10 +135,10 @@ Examples: ```js [dev] cds repl -> cds.parse.expr(`x<9`) == +> cds.parse.expr(`x<9`) == {xpr:[ {ref:['x']}, '<', {val:9} ]} -> cds.parse.expr(`x<9 and (y=1 or z=2)`) == +> cds.parse.expr(`x<9 and (y=1 or z=2)`) == {xpr:[ {ref:['x']}, '<', {val:9}, 'and', {xpr:[ {ref:['y']}, '=', {val:1}, 'or', {ref:['z']}, '=', {val:2} diff --git a/cds/index.md b/cds/index.md index 25daf6972d..2462f843e0 100644 --- a/cds/index.md +++ b/cds/index.md @@ -1,5 +1,6 @@ --- -status: released +description: > + Core Data Services (CDS) is CAP's modeling language for declaratively capturing service definitions, data models, queries, and expressions. --- # Core Data Services (CDS) diff --git a/cds/models.md b/cds/models.md index d0cdd739c0..39393ec308 100644 --- a/cds/models.md +++ b/cds/models.md @@ -1,14 +1,12 @@ --- -# layout: cds-ref -synopsis: > +description: > Introduces the fundamental principles of CDS models. -status: released --- # On The Nature of Models -{{ $frontmatter.synopsis }} +{{ $frontmatter.description }} ## Metaphysics of Languages @@ -20,17 +18,17 @@ For example, a *data model describes the type structure (commonly also called *' ### Representations -Models can come in different *representations*, which follow different *syntaxes*. For example, we use the *CDL* syntax for *human-readable* representations of CDS models, while CSN is an *object notation*, that is a special form of *syntax*, used for *machine-readable* representations of CDS models. +Models can come in different *representations*, which follow different *syntaxes*. For example, we use the *CDL* syntax for *human-readable* representations of CDS models, while CSN is an *object notation*, that is a special form of *syntax*, used for *machine-readable* representations of CDS models. -::: details On CSN representations... +::: details On CSN representations... -We can go one meta-level further and distinguish between different representations of CSN representations: in a Node.js process at runtime they are just native in-memory JavaScript objects, when shared they are serialized to JSON format, which can in turn be translated to YAML, and so forth. When we create CSN objects at runtime, they could be plain JavaScript code. +We can go one meta-level further and distinguish between different representations of CSN representations: in a Node.js process at runtime they are just native in-memory JavaScript objects, when shared they are serialized to JSON format, which can in turn be translated to YAML, and so forth. When we create CSN objects at runtime, they could be plain JavaScript code. ::: ### Reflections -CDS models can be compiled to other languages, that play in the same fields, yet not covering the same information, but rather with some loss of information — we call these '*reflections*'. +CDS models can be compiled to other languages, that play in the same fields, yet not covering the same information, but rather with some loss of information — we call these '*reflections*'. Examples are: diff --git a/cds/types.md b/cds/types.md index 748431d5e7..c324ead13e 100644 --- a/cds/types.md +++ b/cds/types.md @@ -1,9 +1,6 @@ --- -# layout: cds-ref -shorty: Built-in Types -synopsis: > +description: > Find here a brief overview of the predefined types shipped with CDS. -status: released --- diff --git a/get-started/bookshop.md b/get-started/bookshop.md index 2d9baedc93..d8747cf8ee 100644 --- a/get-started/bookshop.md +++ b/get-started/bookshop.md @@ -1,5 +1,6 @@ --- -notebook: true +description: > + A step-by-step walkthrough building a simple bookshop application to gain hands-on experience with core CAP concepts and best practices. uacp: This page is linked from the Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/29c25e504fdb4752b0383d3c407f52a6.html --- diff --git a/get-started/concepts.md b/get-started/concepts.md index 6f87b036b5..ac3530c288 100644 --- a/get-started/concepts.md +++ b/get-started/concepts.md @@ -1,5 +1,6 @@ --- -status: released +description: > + An overview of CAP's primary building blocks and core concepts, such as domain-driven modeling, service-centric runtimes, and querying. --- # Core Concepts of CAP @@ -704,7 +705,7 @@ Your application models are your services, also served automatically by generic Behind the scene - that is, in the **outer hexagon** containing stuff, you as an application developer should not see - the CAP runtime employs Protocol Adapters, which translate requests from (and to) low-level protocols like HTTP, REST, OData, GraphQL, ... to protocol-agnostic CAP requests and queries for inbound and outbound communication. ---> ***Inbound*** Communication +--> ***Inbound*** Communication : Requests your application *receives*. --> ***Outbound*** Communication diff --git a/get-started/feature-matrix.md b/get-started/feature-matrix.md index 8ac01c90c2..d5751c8490 100644 --- a/get-started/feature-matrix.md +++ b/get-started/feature-matrix.md @@ -1,5 +1,6 @@ --- -status: released +description: > + An index of CAP features, with their status and availability across Node.js and Java, including what's planned or in development. --- -{{ $frontmatter.synopsis }} +{{ $frontmatter.description }} CAP Java offers a [variety of plugins that integrate with SAP BTP services](../plugins/) and keep your application free of hard-coded service dependencies. In the CAP ecosystem, this approach is called [Calesi (CAP level service integration)](../get-started/concepts#the-calesi-pattern). Most Calesi plugins expose a CAP service that you can inject as a Spring Boot component. As the CAP runtime can run alongside a Spring Boot application without a CDS model, this lets you use proven service integration through CAP plugins with a growing set of SAP BTP services. diff --git a/java/cds-data.md b/java/cds-data.md index 761289f163..f5920fad80 100644 --- a/java/cds-data.md +++ b/java/cds-data.md @@ -1,5 +1,5 @@ --- -synopsis: > +description: > This section describes how CDS data is represented and used in CAP Java. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/9186ed9ab00842e1a31309ff1be38792.html --- @@ -12,7 +12,7 @@ uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/ } -{{ $frontmatter.synopsis }} +{{ $frontmatter.description }} diff --git a/java/change-tracking.md b/java/change-tracking.md index 6a20ad44dd..4aec34bfe4 100644 --- a/java/change-tracking.md +++ b/java/change-tracking.md @@ -1,7 +1,6 @@ --- -synopsis: > +description: > Find here information about the change tracking feature in CAP Java. -status: released --- # Change Tracking @@ -165,7 +164,7 @@ For example, for a book you can store an author name if you have an association For compositions, no special annotations are required. The identifiers of the target entity are used instead. -For example, given the following model: +For example, given the following model: ```cds entity Orders : cuid { @@ -194,11 +193,11 @@ annotate OrderItems with @changelog: [ ]; ``` -Changes for `Orders` and `OrderItems` will have their own respective target or root identifiers filled. +Changes for `Orders` and `OrderItems` will have their own respective target or root identifiers filled. ### Human-readable values for associations -For associations, the value of the foreign key is stored in the changelog by default. You can change this and store the values of the associated entity instead. +For associations, the value of the foreign key is stored in the changelog by default. You can change this and store the values of the associated entity instead. This kind of identifier changes the values stored in the changelog, while [entity identifiers](#identifiers-for-entities) annotate changed values. You annotate your entity like this: @@ -218,12 +217,12 @@ such cases in the custom code or use annotations, for example, [`@assert.target` ### Caveats of Identifiers -Consider the following important points that are relevant for all kinds of identifiers and human-readable values: +Consider the following important points that are relevant for all kinds of identifiers and human-readable values: - When you define the identifier for an entity, keep in mind that the projections of the annotated entity inherit the annotation `@changelog`. If you change the structure of the projection, for example, exclude or rename the elements that are used in the identifier, you must annotate the projection again -to provide updated element names in the identifier. This is one additional benefit of annotating the top-most projection for change tracking. +to provide updated element names in the identifier. This is one additional benefit of annotating the top-most projection for change tracking. - The values of the identifier are stored together with the change log as-is. They are not translated and some data types might not be formatted per user locale or some requirements, for example, different units of measurement or currencies. @@ -391,7 +390,7 @@ Changes are correctly referenced to the root if the following conditions are tru Avoid Direct modifications of composition items, they aren't supported by change tracking. ::: -In the following example, the item's updated changelog entry _won't_ be associated with an order: +In the following example, the item's updated changelog entry _won't_ be associated with an order: ```java OrderItems item = OrderItems.create("..."); @@ -440,10 +439,10 @@ You can query the change log entries via CQN statements, as usual. ### Advanced Identifiers for Associated Entities -By default, the identifier is read from the association when the feature captures images of the data. +By default, the identifier is read from the association when the feature captures images of the data. Additional joins might be expensive or impossible under some circumstances. -:::warning Configuration change required! +:::warning Configuration change required! Enable [optimization for path expressions](/releases/2025/aug25#optimized-path-expressions). ::: @@ -463,7 +462,7 @@ entity Entity { Let's assume that `User` is impossible to join with the standard identifier or requires an identifier depending on the context of the user who reads the change log. -You model the association like this: +You model the association like this: ```cds entity Entity { @@ -474,9 +473,9 @@ entity Entity { The change log will contain one entry for the field `user` just like the other associations with [human-readable values](#human-readable-values-for-associations), but the identifier will be its primary key. -You need a custom handler to fetch your own custom identifier. +You need a custom handler to fetch your own custom identifier. -Here's the sketch for the handler to adapt the change log after read: +Here's the sketch for the handler to adapt the change log after read: ```java @Component diff --git a/java/cqn-services/application-services.md b/java/cqn-services/application-services.md index 73c6753493..f5292de3be 100644 --- a/java/cqn-services/application-services.md +++ b/java/cqn-services/application-services.md @@ -1,6 +1,6 @@ --- -synopsis: > - Application Services define the APIs that a CAP application exposes to its clients, for example through OData. This section describes how to add business logic to these services, by extending CRUD events and implementing actions and functions. +description: > + How to add business logic to Application Services — the APIs a CAP application exposes to its clients, for example through OData — by extending CRUD events and implementing actions and functions. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/9186ed9ab00842e1a31309ff1be38792.html --- @@ -11,7 +11,7 @@ uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/ } -{{ $frontmatter.synopsis }} +{{ $frontmatter.description }} ## Handling CRUD Events { #crudevents} diff --git a/java/cqn-services/index.md b/java/cqn-services/index.md index 8be621f3e4..2a4bf24ff5 100644 --- a/java/cqn-services/index.md +++ b/java/cqn-services/index.md @@ -1,5 +1,6 @@ --- -synopsis: CQN Services are the core services of CAP that deal with CDS data. One of the key APIs provided by these services is the uniform query API based on CQN statements. +description: > + Introduces CQN Services, the core services of CAP that deal with CDS data, providing a uniform query API based on CQN statements. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/9186ed9ab00842e1a31309ff1be38792.html --- diff --git a/java/cqn-services/persistence-services.md b/java/cqn-services/persistence-services.md index f087445657..6756355484 100644 --- a/java/cqn-services/persistence-services.md +++ b/java/cqn-services/persistence-services.md @@ -1,6 +1,6 @@ --- -synopsis: > - Persistence Services are CQN-based database clients. This section describes which database types are supported, how datasources to these databases are created and how they are turned into Persistence Services. +description: > + How CQN-based Persistence Services are created from datasources to supported database types and used as database clients. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/9186ed9ab00842e1a31309ff1be38792.html --- @@ -11,7 +11,7 @@ uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/ } -{{ $frontmatter.synopsis }} +{{ $frontmatter.description }} ## Database Support { #database-support} @@ -570,7 +570,7 @@ See [Class JdbcTemplate](https://docs.spring.io/spring-framework/docs/current/ja The static model and accessor interfaces can be generated using the [CDS Maven Plugin](../developing-applications/building#cds-maven-plugin). -::: warning +::: warning Currently, the generator doesn't support using reserved [Java keywords](https://docs.oracle.com/javase/specs/jls/se13/html/jls-3.html#jls-3.9) as identifiers in the CDS model. Conflicting element names can be renamed in Java using the [@cds.java.name](../cds-data#renaming-elements-in-java) annotation. For entities it is recommended to use [@cds.java.this.name](../cds-data#renaming-types-in-java). ::: diff --git a/java/cqn-services/remote-services.md b/java/cqn-services/remote-services.md index 7c408e4eb9..1388ed4234 100644 --- a/java/cqn-services/remote-services.md +++ b/java/cqn-services/remote-services.md @@ -1,5 +1,5 @@ --- -synopsis: > +description: > Remote Services are CQN-based clients to remote APIs that a CAP application consumes. This section describes how to configure and use these services. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/9186ed9ab00842e1a31309ff1be38792.html --- @@ -11,7 +11,7 @@ uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/ } -{{ $frontmatter.synopsis }} +{{ $frontmatter.description }} The CAP Java SDK supports _Remote Services_ for OData V2 and V4 APIs out of the box. The CQN query APIs enable [late-cut microservices](../../get-started/features#late-cut-microservices) with simplified mocking capabilities. Regarding multitenant applications, these APIs keep you extensible, even towards remote APIs. In addition, they free developers from having to map CQN to OData themselves. diff --git a/java/developing-applications/building.md b/java/developing-applications/building.md index a6f1e8c5b6..94d553d9f7 100644 --- a/java/developing-applications/building.md +++ b/java/developing-applications/building.md @@ -1,7 +1,6 @@ --- -synopsis: > - This section describes various options to create a CAP Java project from scratch, to build your application with Maven, and to modify an existing project with the CDS Maven plugin. - +description: > + How to create a CAP Java project from scratch, build it with Maven, and modify an existing project using the CDS Maven plugin. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/9186ed9ab00842e1a31309ff1be38792.html --- diff --git a/java/developing-applications/configuring.md b/java/developing-applications/configuring.md index f7e74a7007..057f82e187 100644 --- a/java/developing-applications/configuring.md +++ b/java/developing-applications/configuring.md @@ -1,5 +1,5 @@ --- -synopsis: > +description: > This section describes how to configure CAP Java applications. uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/9186ed9ab00842e1a31309ff1be38792.html @@ -42,7 +42,7 @@ Property defaults adjusted with the production profile are the following: Note, that explicit configuration in the application takes precedence over property defaults from the production profile. -::: warning +::: warning **Do not manually enable features for production that are disabled by the production profile**, as this could introduce serious security vulnerabilities. ::: diff --git a/java/developing-applications/index.md b/java/developing-applications/index.md index 2eacbb2286..b9f2b6c1eb 100644 --- a/java/developing-applications/index.md +++ b/java/developing-applications/index.md @@ -1,13 +1,12 @@ --- -synopsis: > +description: > Learn here about developing a CAP Java application. -status: released --- # Developing CAP Java Applications -{{ $frontmatter.synopsis }} +{{ $frontmatter.description }}