{"id":7428,"date":"2025-08-06T00:48:13","date_gmt":"2025-08-05T19:18:13","guid":{"rendered":"https:\/\/www.sapewmhelp.com\/?question=rap"},"modified":"2025-08-06T00:49:03","modified_gmt":"2025-08-05T19:19:03","slug":"rap-architecture","status":"publish","type":"question","link":"https:\/\/www.sapewmhelp.com\/?question=rap-architecture","title":{"rendered":"RAP Architecture"},"content":{"rendered":"<p>RAP is structured in <strong>3 layers<\/strong>: 1. <strong>Data Modeling &amp; Definition Layer<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>Component<\/th>\n<th>Purpose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>CDS Data Model<\/strong><\/td>\n<td>Defines entities and relationships (tables, views)<\/td>\n<\/tr>\n<tr>\n<td><strong>CDS View Entities<\/strong><\/td>\n<td>Provides the foundation for business objects<\/td>\n<\/tr>\n<tr>\n<td><strong>Associations<\/strong><\/td>\n<td>Represent relationships between entities<\/td>\n<\/tr>\n<tr>\n<td><strong>Annotations<\/strong><\/td>\n<td>Define metadata (UI, OData, behavior, etc.)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>2. Business Service Provisioning Layer<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>Component<\/th>\n<th>Purpose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Behavior Definition (<code>.behavior<\/code>)<\/strong><\/td>\n<td>Defines allowed operations like <code>create<\/code>, <code>update<\/code>, <code>delete<\/code>, custom <code>actions<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Behavior Implementation (<code>.abap<\/code> class)<\/strong><\/td>\n<td>Implements the logic for those operations<\/td>\n<\/tr>\n<tr>\n<td><strong>Validation\/Determination<\/strong><\/td>\n<td>Hook methods to enforce rules or calculate field values<\/td>\n<\/tr>\n<tr>\n<td><strong>Draft Handling<\/strong><\/td>\n<td>Optional support for draft versions of data<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>3. <strong>Service Consumption Layer<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>Component<\/th>\n<th>Purpose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Service Definition<\/strong><\/td>\n<td>Groups entities to be exposed<\/td>\n<\/tr>\n<tr>\n<td><strong>Service Binding<\/strong><\/td>\n<td>Publishes the service as an OData endpoint<\/td>\n<\/tr>\n<tr>\n<td><strong>UI Consumption (Fiori)<\/strong><\/td>\n<td>Used in Smart\/Fiori Elements apps<\/td>\n<\/tr>\n<tr>\n<td><strong>OData V2\/V4 Support<\/strong><\/td>\n<td>RAP supports both protocols (preferably V4)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" class=\"content-img\" src=\"https:\/\/www.sapewmhelp.com\/wp-content\/uploads\/2025\/08\/rap2.jpg\" \/><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","question-category":[175],"question_tags":[178,201,208,200,177],"class_list":["post-7428","question","type-question","status-publish","hentry","question-category-rap","question_tags-abap","question_tags-btp","question_tags-hana","question_tags-rap","question_tags-sap"],"_links":{"self":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question\/7428","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question"}],"about":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/types\/question"}],"author":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7428"}],"wp:attachment":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7428"}],"wp:term":[{"taxonomy":"question-category","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion-category&post=7428"},{"taxonomy":"question_tags","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion_tags&post=7428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}