Blog

  • Security in SAP MTA and CAPM

    Preface – This post is part of the SAP Multi-Target Application (MTA) and SAP CAPM series.

    Introduction

    In SAP CAPM and MTA, the security can be taken care using the implementation of best SAP standard practices and using SAP Infrastructure. The entire application is divided into multiple layers such that the user cannot access the database layer or business logic directly from the browser.

    Implementation

    The implementation is an important aspect of security execution. That’s why it has been divided into multiple parts:

    • Development

    The role of the developer is to implement the security aspects wherever required. In case any external API is implemented, he must get it reviewed. Also, in case if a security issue is found, then a proper solution is provided to the developer, and he must implement the same.

    • Review

    The role of the reviewer is to analyze the security of the infrastructure and the services within it. Once the developer completes its development, the entire project is once reviewed and then sent to the tester for further analysis.

    • Penetration Testing

    The penetration testing team performs pen tests using different scenarios and possible ways of intrusion. Based on their analysis, either they mark it passed or come back with issues. These issues are then checked by developers and, once solved, again tested by the tester until the entire application is secure.

     

    Use Case in CAPM and MTA

    Malware check-in Server-Side

    With the help of a malware scanner in Node.js, the documents and files sent to the server are scanned before passing them to the database.

    Encryption & Decryption in Server and Client-side

    The passwords and other important data are encrypted using a standard encryption mechanism

    Destination in Cloud platform

    Destination in Cloud platform not only helps in implementation of CORS services but also hides the visibility of important service location from users

    Role-based access

    The role-based access helps the developer to keep the data safe from unwanted users. The roles are specific to an application, and it is mandatory for the user to have it for access.

  • Service Consumption and Web APIs using SAP ABAP RAP

    Preface – This post is part of the SAP ABAP RAP series.

    Introduction

    In this article, we will see how to create services in SAP RAP (RESTful Application Programming) and consume the same in UI5/Fiori using the given steps:

    1. Create service definition
    2. Expose entities in the Service Definition
    3. Create Service Binding
    4. Publish OData service
    5. Implement OData in UI5/Fiori

    Create Service Definition

    Right-click on Package >> New >> Other Repositories Objects >> Service Definition.
    Provide the details to create a Service Definition.

    SAP RAP Create Service Binding

    Once the Service Definition is created, expose the required entities and activate it.

    expose the required entities

     

    Create Service Binding

    Right-click on Package >> New >> Other Repositories Objects >> Service Binding.
    Provide Package details, Name, Description and Service Definition name. Additionally, select the Binding Type to create Service Binding.

    SAP RAP Create Service Binding

    Verify the information. To expose the service, click on activate.

    You can access the metadata details by following the Service URL provided in Service Binding. To preview the application, click on provided Preview button.

    OData Publish SAP RAP

    How to consume OData create by SAP RAP

    Like any other OData created by CDS or SEGW, the OData of SAP RAP can be used similarly in UI5/Fiori Applications. Read more about OData here.

  • Dealing with Existing Code in SAP RAP

    Preface – This post is part of the SAP ABAP RAP series.

    Introduction

    This article will provide the step-by-step enabling of existing code in RAP. Using the steps below we will learn “Dealing with Existing Code in SAP RAP”.

    Steps:

    1. Create data model with CDS views
    2. Create Behavior Definition
    3. Add transactional behaviour in Behavior Definition
    4. Create Behavior Pool
    5. Implement transactional behavior of the existing application

    Create data model with CDS views

    Click here to follow step 1

    Create Behavior Definition

    Procedure

    1. Right-click on root CDS view
    2. Select New Behavior Definition
    3. Provide the details (Name, Description).
    4. Select implementation type as unmanaged
    5. Click Next and provide the Transport Request number.
    6. Select Finish.

    Create Behavior Definition SAP RAP

    Add transactional behaviour in Behavior Definition

    Add transactional behavior (Create/Update/Delete/Actions) of business objects.

    Add transactional behaviour in Behavior Definition SAP RAP

    Add transactional behaviour in Behavior Definition ABAP RAP

    Create Behavior Pool

    You can assign any number of behavior pools to behavior definition. Within a single global class, you can implement multiple local classes which defines the transactional behavior of the business object.

     

    Procedure

    Behavior Definition >> Right-click >> select New Behavior Implementation >> Provide details >> Finish

    Splitting implementation into different behavior pools

    Figure 1:Splitting implementation into different behavior pools

     

    Behavior Pool

    Figure 2: Behavior Pool

    When you go to Local Types in Behavior Pool, you can see below local classes.

    local classes in Behavioral Pool

    local implementation classes SAP RAP

    Within these local implementation classes, you can implement the business logic of existing behavior objects and test the end-to-end scenario using EML (Entity Manipulation Language) syntax.

  • Enabling the Transactional Behavior of an App in SAP RAP

    Preface – This post is part of the SAP ABAP RAP series.

    Introduction

    This article will provide a step-by-step guide to enable the transactional behaviour of an application in SAP RAP.

    1. Create data model with CDS views
    2. Create Behavior Definition
    3. Add transactional behaviour in Behavior Definition
    4. Create OData service
      1. Create a Service Definition
      2. Expose CDS view
      3. Create Service Binding
      4. Publish OData service
    5. Application preview

    Create data model with CDS views

    Procedure

    1. Launch ADT (ABAP Development Tool).
    2. Select package for your development.
    3. Right-click on package and choose NEW > Other Repository Objects > Core Data Services > Data Definition.
    4. Provide the details (Name, Description).
    5. Select Next and provide the Transport Request number.
    6. Select Finish.
    7. Provide the data source name and add the elements in the CDS views.
    8. Provide the root statement to the top node as shown below.
      data model with CDS views
    9. Similarly, create consumption views and add required annotations.

     

    Result Screen

    Interface view SAP RAP

    Figure 1: Interface view

    Consumption view SAP RAP

    Figure 2: Consumption view

    Create Behavior Definition

    Procedure

    1. Right-click on root CDS view
    2. Select New Behavior Definition
    3. Provide the details (Name, Description).
    4. Select Next and provide the Transport Request number.
    5. Select Finish.

    Create Behavior Definition

    Add transactional behaviour in Behavior Definition

    Add transactional behaviour to Behavior Definition as shown below.

    Add transactional behaviour in Behavior Definition

    Create OData service

    a.       Create Service Definition

    Procedure

    1. Right-click on root CDS view
    2. Select New Service Definition
    3. Provide the details (Name, Description).
    4. Select Next and provide the Transport Request number.
    5. Select Finish.

    Create Service Definition

    b.      Expose CDS view

    Expose CDS view

     

    c.       Create Service Binding

    Procedure

    1. Right-click on Service Definition
    2. Select New Service Binding
    3. Provide the details (Name, Description).
    4. Select Next and provide the Transport Request number.
    5. Select Finish.

    SAP RAP Create Service Binding

    d.      Publish OData Service

    Publish OData Service SAP RAP

    Application Preview

    Fiori App SAP RAP

    Fiori Detail Page SAP RAP

     

  • How to create a SAP ABAP RAP Project

    Preface – This post is part of the SAP ABAP RAP series.

    Introduction

    SAP ABAP RAP provides the intrinsic approach to build SAP Fiori based applications that are optimized for S/4 HANA and can run over on-premise as well as on the cloud. In this article we will learn how to create a SAP ABAP RAP Project.

    Prerequisites

    Before we start with the development of our first project using SAP ABAP RAP, we need a few things ready:

    SAP Cloud Platform ABAP Environment

    You should have access to and an account for SAP Cloud Platform ABAP Environment.

    Development Environment (IDE)

    • Install ABAP Development Toolkit (ADT).

    SAP recommends the latest version of the client installation. The download is available on https://tools.hana.ondemand.com/.

    • Access to and an account for the relevant space in SAP Cloud Platform Cloud Foundry.

    Authorization

    To create development artifacts, you need to have a developer role in the ABAP environment.

    Basic knowledge

    • ABAP Core Data Services (CDS)
    • ABAP Objects
    • ABAP Syntax

    Steps to create a SAP ABAP RAP Project

    1. Create an ABAP CDS View enabled with OData. Follow the steps mentioned here. This ABAP CDS View can be either basic, composite or consumption based upon the use case. The basic view is just a simple view created based upon ABAP table, the composite views are the ones that are created using multiple basic views or existing composite views. The consumption is the one that is consumed by the Fiori Apps (other views too can be consumed, it is created with final annotations such that UI5 has to call just this view and not the others).
    2. The very next thing that we create in ABAP RAP is a behavior definition. You can read the steps here. A behavior definition is an ABAP repository that represents the behavior of business objects in the context of SAP ABAP RAP. This is the place where we define the CRUD operations for the CDS Views.
    3. The last and important step is behavior Implementation. The steps to implement the same is mentioned here. This is the place where business logics are written.

    Thus in above steps we have created an ABAP CDS View, an ABAP OData, behavior definition and behavior Implementation.

    What is SAP RAP

    That’s it, this is how we create a SAP ABAP RAP Project. In our next articles, we will show you the implementation, step by step.

  • Developing Read-Only List Reporting Apps

    Preface – This post is part of the SAP ABAP RAP series.

    Introduction

    Using persistent data sources, we are going to implement a query for the OData service to get an application with the read-only feature. This OData service will be consumed by the Fiori Element application.

    This article will provide the step-by-step guide to build a read-only list reporting application.

    1. Create data model with CDS views.
    2. Add associations to CDS views for navigation purpose.
    3. Add relevant annotations.
    4. Changing UI field labels and description
    5. Create OData service
      1. Create a Service Definition
      2. Expose CDS views
      3. Create Service Binding
      4. Publish OData service
    6. Application preview

    Create data model with CDS views

    Procedure

    1. Launch ADT (ABAP Development Tool).
    2. Select package for your development.
    3. Right-click on package and choose NEW > Other Repository Objects > Core Data Services > Data Definition.
    4. Provide the details (Name, Description).
      Create data model with CDS views
    5. Select Next and provide the Transport Request number.
    6. Select Finish.

    Result Screen

    An inactive version of the data definition is created. You need to provide the data source name and add the elements in the CDS views. Similarly, create all the required CDS views.

    Generated Template code

    Figure 2: Generated Template code

     

    Add associations to CDS views for navigation purpose

    1. Define association and cardinality
      Define association and cardinality
    2. Define mapping condition
      Define mapping condition
    3. Add association element list in CDS view
      Add association element list in CDS view

    Add relevant annotations

    Add required annotations to fields (see the below figure).

    ABAP CDS Annotation

    Changing UI field labels and description

    UI field labels and description allows you to customize your UI application. You can add text annotation (@ObjectModel.text.association:'<_AssocToTextProvider>’),value help (@Consumption.valueHelpDefinition: [{ entity: { name: ‘<target_view>’ , element: ‘<target_element>’ }}]), search capability ( @Search.searchable: true ) and as many functionality to your field element.

    Changing UI field labels and description

    Create OData service

    a.       Create a service definition

    In service definition, we will expose our data models.

    Procedure

    1. Launch ADT (ABAP Development Tool).
    2. Select package for your development.
    3. Right-click on package and choose NEW > Other Repository Objects > Business Service > Service Definition.
    4. Provide the details (Name, Description).
      Create a service definition
    5. Select Next and provide the Transport Request number.
    6. Select Finish.

     

    b.      Expose CDS views

    In service definition, add the CDS view that you want to expose to UI. You can provide an alias also for the same. Once the CDS views are exposed, activate the service definition.

    Expose CDS views

    c.       Create Service Binding

    In service definition, we will expose our data models.

    Procedure

    1. Launch ADT (ABAP Development Tool).
    2. Select package for your development.
    3. Right-click on the package and choose NEW > Other Repository Objects > Business Service > Service Binding.
    4. Provide the details (Name, Description).
      Create Service Binding
    5. Select Next and provide Transport Request number.
    6. Select Finish.

    When you open the created service binding from editor you can see the below screen. As soon as the service binding is created, it is registered in your local system.

    Activate the service binding

    Activate the service binding and it is ready for consumption.

    d.      Publish OData service

    Once you activate the service binding, the OData service is published and is activated in SAP Gateway. Now it can be consumed by UI5 application.

    Publish OData service

    The service URL on the right side will provide the metadata information of OData service. Preview button will navigate you to the resulting UI service.

    Application preview

    The resulting UI5 application will look like this:

    Application preview

  • Introduction to ABAP CDS Views

    Preface – This post is part of the SAP ABAP RAP series.

    Introduction

    SAP ABAP CDS View is used for defining and consuming semantic data models on standard tables or dictionary views. The abbreviation for CDS is Core Data Services. Although SE11 dictionary view and CDS views both create database views at the backend, the ABAP CDS view supersedes the dictionary view in so many ways.

    Difference between dictionary view and CDS View

    Dictionary View CDS View
    Can be created from SAP GUI or Eclipse. Can only be created from Eclipse or SAP HANA Studio.
    Cannot define Annotations. Annotations are provided to enrich metadata.
    Aggregation is not possible. Can provide Aggregation function.
    Grouping is not possible. Grouping can be provided.
    Join can be used. Join and Union both can be used
      Case Expressions can be used.
      Input parameters can be allowed for filtering data and column calculations
      Operators can be used.

    CDS view Types

    There are three different VDM view types:

    • Basic view
    • Composite view
    • Consumption view

    CDS view Types

    Figure 1: CDS view types

    1.      Basic View

    VDM Basic views are created on the top of DDIC tables or views. It is the only view that interacts directly with the database.

    Annotation: @VDM.Viewtype : #BASIC

    Properties for Basic View:

    1. Basic views can directly access the database tables and other basic views.
    2. They have an association with other basic views.
    3. Free of redundancies.
    4. They expose all business data.

     

    2.      Composite view

    The composite view is created on top of the VDM Basic view. It interacts with Basic views for the result set and does not interact with the database directly.

    Annotation: @VDM.Viewtype : #COMPOSITE

    Properties of Composite View:

    1. They can access other Composite views but not database tables.
    2. They can have an association with other composite views and basic views.
    3. Redundancies might be possible.
    4. They should be reusable.

     

    3.      Consumption view

    The consumption views are built on top of Interface views. By the name Consumption, we can assume that this view is meant to be consumed by SAP UI5 through OData, Analytical queries, Transactional service models.

    Annotation: @VDM.Viewtype : #CONSUMPTION

    How to create CDS views in ADT?

    To create a CDS view follow the below steps:

    1. Navigate to New ABAP Repository.
      New ABAP Repository
    2. Select Data Definition.
      Select Data Definition
    3. Provide Package, Name, Description of CDS view.
    4. Now from the given options, select Define View.
      Define View
    5. Define data source name, SQL view name, required annotations and other properties.
      Define data source name
    6. Define data selection Query.
      Define data selection Query
    7. Save and activate.

    How to view the data from CDS Views?

    1. In the DDL source object, navigate to your CDS view.
    2. Right-click and select OPEN DATA PREVIEW. Also, you can open the CDS view and press F8 to view the data.
    3. The output will show you the retrieved data from CDS View.

    Tutorial Video

    You can watch the video below to learn implementation:

    [embedyt] https://www.youtube.com/watch?v=CwWbauSyD4s[/embedyt]
  • SAP ABAP RESTful Application Programming Unmanaged Implementation

    Preface – This post is part of the SAP ABAP RAP series.

    Introduction

    In this section, we will explain the concept of unmanaged implementation and the development tasks required for enabling transactional processing in business objects integrating existing business logic.

    In an unmanaged implementation, it is required to implement all the business operations (Create, Update, Delete) in specified behavior definition before implementing it manually. In the managed scenario, on the other hand, the behavior definition is itself capable to obtain a ready-to run business objects.  We do not need to explicitly implement the CUD operations.

    Architectural Overview

    The underlying scenario reuses the existing business logic which manages business data.

    SAP ABAP RESTful Application Programming Unmanaged Implementation

    Architectural Overview: Integration of Existing Application Logic

    Development Process Overview

    The development of RAP based business services by integrating the transactional behavior of existing business objects requires to perform following steps:

    1. Defining CDS Data Model and Business Object Structure

    The structure of a business object consists of a tree of entities where each entity is linked using associations. The root entity represents the top node of a business object and hence it is a very important part of the business object structure. The root entity is indicated in the source code of the CDS data definition using the keyword ROOT.

    1. Defining and implementing transactional behavior of the business object

    The operations provided by the business object is defined in the Behavior Definition.  It contains all the entities of root and their supported business operations like Create, Update, Delete, Actions with dedicated input and output.

    The class pool referring to behavior definition contains the implementation of all the operations. The implementation is roughly divided into two phases: Interaction and save phase.

    1. Exposing relevant application artifacts for OData service enablement

    The behavior relevant to specific UI services is projected in Projection Behavior Definition. The relevant artifacts must be exposed to OData.  The projection is implemented into two artifacts: service definition and service binding.

    Service definition exposes the relevant data model and behavior and service binding implements specific protocol and service to be offered to the customer.

    1. Testing OData/UI services

    It provides the option to PUBLISH the service. Once you publish it, it can be consumed by the OData client.  To test the application within the ABAP development environment you can use the feature PREVIEW provided by the service binding editor.

     

  • SAP ABAP RESTful Application Programming Managed Scenario

    Preface – This post is part of the SAP ABAP RAP series.

    Introduction

    Let us consider we have been given a green field and asked us to develop a villa from scratch with our own customization. So, what steps will be involved in it? We need to design the floor-plan of the villa, the sections we want to include in the house like pool area, a garden, a jogging track etc. And we will proceed with selecting materials, selecting vendors, enforcing conciliation and orders and many more steps. Similarly, the RAP’s managed scenario provides the greenfield development for our business object.

    In the managed scenario, the implementations of behavioral elements like Create/Update/Delete are managed by the RAP framework itself. However, to implement complex logic like validations, determination or some sort of actions (Submit, Approval, Reject etc) on the business entity, you need to add the ABAP logic for it in implementing classes.

    How to implement managed scenario?

    Pre-requisite: Create CDS views.

    Steps:

    1. Right-click on root CDS view and select NEW BEHAVIOUR DEFINITION.
    2. Add package details, description.
    3. Select implementation type MANAGED. This is most important part of creating the managed implementation.
    4. Click on Next and then click on Finish.

    Points to consider

    1. It is available only on S/4 HANA Cloud.
    2. The framework will handle the CRUD operations by itself.
    3. It is more like BOPF where we are responsible to define what tables should be updated at the end.
    4. You can implement DETERMINATIONS, VALIDATIONS, and ACTIONS by adding logic in implementing class.
    5. The managed scenario does not support LATE NUMBERING. Late numbering refers to the late number assignment of primary key fields. The final value is assigned just before the data is saved to the database. We will learn more about in unmanaged scenario of RAP.
    6. We implement EARLY NUMBERING in the managed scenario. Using early numbering will draw the UUID automatically during the CREATE request by RAP runtime.
      Early numbering is only possible with the key field of type raw(16) (UUID) of the business object.
    1. The early numbering should be defined at BEHAVIOUR DEFINITION level.
    2. Actions: Instance factory actions are not supported.
  • Introduction to Behavior Definition

    Preface – This post is part of the SAP ABAP RAP series.

    Introduction

    In the previous lesson, we discussed creating CDS views. Now, the next artifact to create after CDS View is Behavior Definition. But first, we will understand what is a general understanding of behavior definition from a simple visual.

    Carefully observe the dog clips.

    Introduction to Behavior Definition

    We can clearly see the actions performed by a dog by just observing the clipart. These actions can also be termed as the behavior of a dog which it performs as per the situation. Similarly, for our business objects, we need to decide and define how the CDS view should behave according to requirements.

    Definition

    A behavior definition is an ABAP repository that represents the behavior of business objects in the context of SAP ABAP RAP.

    Properties

    1. The root entity can have at most one Behavior definition defined to it.
    2. The behavior definition specifies the child entities of the root.
    3. The implementation of behavior definition is performed in Behavior Implementation Class.

    How to create a Behavior Definition?

    To create the behavior definition, follow the below steps:

    1. Right-click on Interface view and select New Behavior Definition.

    How to create a Behavior Definition

    1. Provide Description, Package details and Implementation type. The most important part while creating the behavior definition is a selection of the Implementation type. This implementation type will define the scenarios you are working on: Managed or Unmanaged Scenario.
      Here, we have selected the Managed Scenario.

    Managed Scenario

    1. Select Transport Request.
    2. And now our behavior definition is created.

    behavior definition CDS

    Here we have defined the simple operations CREATE, UPDATE, DELETE. We would be making use of these operations in our application.

    As we are working on Managed scenario here, we don’t have to write explicit EML’s (Entity Manipulation Language) to perform these operations. This will be handled by the system. But when an Unmanaged scenario comes into the picture, we need to explicitly handle the business logic in Behavior Implementation.

    We will dig deep into it in later articles.

    1. Save and activate.