Skip to Content
Technical Articles
Author's profile photo Rahul Rajagopal

Use Aspects, Association and Convert OData V4 to V2 using Proxy

Welcome back.

Here we will first discuss about the use of Aspects and Associations, we will close with the conversion of OData V4 to OData V2 using OData Proxy.

Aspects

In simple terms Aspects are the reusable models that can be defined ones and can be reused in other entities. It can be easily compare with the ABAP dictionary objects where we define one data element/domain/structure and can be referenced in multiple other places.

You can refer the CAPire for detailed information.

Lets now understand how the standard Aspects can be used in our CAP application.

  • Open the file “data-model.cds”
  • Replace the existing file with the below code
namespace btp.emp;

using {
    cuid,
    managed
} from '@sap/cds/common';

entity Employee : cuid, managed {
    NAME       : String(255);
    EMIL_ID    : String(128);
    DEPARTMENT : String(50)
}
  • Here you can see, I have used “cuid” and “managed“, these are two standard aspects. the “cuid” is used to declare universally unique primary keys to your entity definitions. “managed” is to add four elements to capture created by/at and latest modified by/at management information for records.
  • Once you add the above code and execute command “cds watch“. You can see below fields are added to the entity automatically from the aspects.

 

Association

Associations are the same old concepts we used in ABAP OData build. Below code can be used to add associations in to your data model. You can further visit here to understand more about associations.

  • Replace your “data-model.cds” with the below code.
namespace btp.emp;

using {
    cuid,
    managed
} from '@sap/cds/common';

entity Employee : cuid, managed {
    NAME       : String(255);
    EMIL_ID    : String(128);
    // DEPARTMENT : String(50)
    DEPARTMENT : Association to one DEPARTMENT;
}

entity DEPARTMENT : cuid {
    NAME      : String(50);
    Employees : Association to many Employee
                    on Employees.DEPARTMENT = $self;

}
  • As we have created a new entity, “DEPARTMENT”, we need to make necessary changes to file “Employee-service.cds” as well.
  • Replace the file with the below code
using btp.emp as emp from '../db/data-model';

service EmployeeService {
    entity Employee as select from emp.Employee;
    entity Department as select from emp.DEPARTMENT;
}

Convert OData V4 to V2 using Proxy

From the first hands-on session, it is clear for you that the CAPM application will always create an API in OData V4 format. But there will be many situations where we need to provide the response in OData V2. We can use the Node.js library “@sap/cds-odata-v2-adapter-proxy” for the conversion.

You can find all the necessary Node.js libraries here. Open the main page and search for the package/library you needed. Follow the instructions detailed.

In our case,

  • Run “npm install @sap/cds-odata-v2-adapter-proxy -s in @sap/cds project”
  • Create a new file “server.js” under the folder “srv
  • Add the below code inside the file “server.js
const cds = require("@sap/cds");
const cov2ap = require("@sap/cds-odata-v2-adapter-proxy");
cds.on("bootstrap", (app) => app.use(cov2ap()));
module.exports = cds.server;
  • Execute command “cds watch” to see the output. You can now see, a converted OData V2 as well, shown below.

  • You ca now follow the “Run Configuration” and “Deployment step to push the Database changes and application changes to  “SAP HANA” and “Cloud Foundry“.

 

Conclusion

You are now able to use Aspects and Association in your CAPM application. Moreover, you are also educated to convert your OData V4 to OData V2.

Also, please follow the topic page, post and answer questions and read other posts on the topic

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.