In these blog I am going to help you ,

How to create the BOPF Objects automatically using CDS views.

How to Publish Odata Service in the Back End.

Overview of BOPF: https://archive.sap.com/documents/docs/DOC-45425

Overview of CDS: https://blogs.sap.com/2016/09/26/core-data-services-cds-in-sap-s4-hana/

Kindly go through above links to know more about CDS & BOPF

i.e These is the new ABAP Development.

Creating the business object using the cds views to enable ODATA service enabled:

1.Root node creation for example : ZBO_MARA (Root node)

For the root node need to specify the annotation: @ObjectModel.modelCategory: #BUSINESS_OBJECT

Zbo_mara is the Root node and created the associations with zbo_marc and zekpo nodes

@ObjectModel.compositionRoot: true @ObjectModel.modelCategory: #BUSINESS_OBJECT @AbapCatalog.sqlViewName: 'zbo_mara1' @AbapCatalog.compiler.compareFilter: true @AccessControl.authorizationCheck: #CHECK @EndUserText.label: 'marac' @ObjectModel.writeActivePersistence: 'mara' @ObjectModel.transactionalProcessingEnabled: true @ObjectModel.createEnabled: true @ObjectModel.updateEnabled: true @ObjectModel.deleteEnabled: true @OData.publish: true define view Zbo_mara as select from mara as ma association [0..*] to Zbo_marc as mc on $projection.matnr = mc.matnr association [0..*] to Zekpo as ek on $projection.matnr = ek.matnr { ma.mandt, ma.matnr, ma.pstat,; /* Associations */ @ObjectModel.association.type: [#TO_COMPOSITION_CHILD ] mc, ek }

 

After activation, the CDS, there is a new BOPF. You have to generate the classes and activate it.

Then use CRUD Template in Web IDE.

Business object created in the back end,Please find the attached screen shot:

BOPF Creation Using CDS Views & ODATA Publish

Double click on the BO , Popup get opens with information message (Business object is generated from the CDS VIEW)

BOPF Creation Using CDS Views & ODATA Publish

ZBO_MARA  bo got created in the back end:

BOPF Creation Using CDS Views & ODATA Publish

 

 

2.Child node Node creation zbo_marc association with the root node and zekpo

 

@AbapCatalog.sqlViewName: 'Zbo_marc1' @AbapCatalog.compiler.compareFilter: true @AccessControl.authorizationCheck: #NOT_REQUIRED @EndUserText.label: 'material detail data' @Search.searchable: true @ObjectModel.semanticKey: [ 'Matnr', 'Werks' ] @ObjectModel.representativeKey: 'Werks' @ObjectModel.writeActivePersistence: 'marc' @ObjectModel.createEnabled: true @ObjectModel.deleteEnabled: true @ObjectModel.updateEnabled: true @ObjectModel.transactionalProcessingEnabled: true define view Zbo_marc as select from marc association [0..*] to Zbo_mara as _Ma on $projection.matnr = _Ma.matnr association [0..*] to Zekpo as ek on $projection.werks = ek.werks { @Search.defaultSearchElement: true key matnr, key marc.werks, @ObjectModel.association.type: [#TO_COMPOSITION_PARENT,#TO_COMPOSITION_ROOT] _Ma, @ObjectModel.association.type: [#TO_COMPOSITION_CHILD] ek }

Child node ZBO_MARC created in the back end with the associated associations to the root node(ZBO_MARA) & parent node(ZBO_MARA)

BOPF Creation Using CDS Views & ODATA Publish

 

3. Node creation zekpo association with the root node(zbo_mara) and parent node (zbo_marc)

 

@AbapCatalog.sqlViewName: 'zekpo_1' @AbapCatalog.compiler.compareFilter: true @AccessControl.authorizationCheck: #CHECK @EndUserText.label: 'purchase order' @Search.searchable: true @ObjectModel.semanticKey: [ 'matnr' ] @ObjectModel.representativeKey: 'matnr' @ObjectModel.writeActivePersistence: 'ekpo' @ObjectModel.createEnabled: true @ObjectModel.deleteEnabled: true @ObjectModel.updateEnabled: true @ObjectModel.transactionalProcessingEnabled: true define view Zekpo as select from ekpo association [0..*] to Zbo_mara as _Mc on $projection.matnr = _Mc.matnr association [0..*] to Zbo_marc as _mrc on $projection.matnr = _mrc.matnr { ebeln, @Search.defaultSearchElement: true werks, matnr, @ObjectModel.association.type: [#TO_COMPOSITION_ROOT] _Mc, @ObjectModel.association.type: [#TO_COMPOSITION_PARENT] _mrc } 

Child node ZEKPO created in the back end with the associated associations to the root node(ZBO_MARA) & parent node(ZBO_MARC)

BOPF Creation Using CDS Views & ODATA Publish

 

Register the OData service in /iwfnd/maint_service.

 

To register the OData service we need to add the service follow the steps mentioned in the link

https://help.sap.com/saphelp_nw74/helpdata/de/bb/2bfe50645c741ae10000000a423f68/frameset.htm

New NetWeaver Information at SAP.com

Very Helpfull

User Rating: Be the first one !