3 SIMPLE STEPS TO EXPOSE ANY BOPF BO AS ODATA SERVICE
We constantly look for improving and simplifying the user experience for our customer. In today’s world, making the customers’ business processes available in the multiple devices is one of the essential offering.
Creating services to make the data from BOPF BO’s in devices needs lot of coding and deeper understanding of the BOPF framework. What if there was a way where we can simplify the creation of services to just 3 steps. That’s exactly what I am going to explain in the following blog.
Gateway BOPF Integration (GBI)
GBI (Gateway BOPF Integration) is integration between SAP NetWeaver Gateway and Business Object Processing Framework (BOPF). This is based on REpresentational State Transfer (REST) and OData standards. GBI exposes data and metadata for a relevant service.
SAP NetWeaver Gateway enables you to create and maintain data for consumption by the web (HTML5) and mobile devices (iPhone and Blackberry). The Gateway Service Builder tool allows you to:
- Automatically generate content without having to write any code by using the content generator with Business Object Repository or Remote Function Calls (RFC) as your data source
- Redefine an existing model.
SAP NetWeaver Gateway supports multiple SAP backend systems as providers for OData content. BOPF (Business Object Processing Framework) is a model-based framework. The main focus is on the control of business logic.
Prerequisite:
To use GBI, you must have the software component SAP_BS_FND 7.47
GBI provides the following features:
- Helps in metadata generation for a particular BO.
- Performs CRUD (Create, Read, Update, and Delete) operations on a particular node or entity set.
- Executes a business object action on a particular node.
- Handles the persisting of data.
How to Create a service from Gateway Service Builder using GBI
You use this service to consume business objects in Business Object Processing Framework (BOPF) by using the Gateway BOPF Integration (GBI).
Procedure
Proceed as follows to create the service:
- In an SAP development system, enter the transaction SEGW.
- Choose Create Project. The Create Project dialog box appears.
- Enter the name of the project.
- Enter the description.
- Enter the package name.
- Choose Save.
- Right-click the new project and Choose Change.
- Right-click the Data Model node under the project.
- Choose Redefine BOPF Service. The three-step wizard appears.
First Step
- Enter the business object or the FBI view.
- Enter the default query.
Entering the query is mandatory for business objects. If no query is specified, SELECT_ALL is the default.
Second Step
- Under Transport Attributes enter the package and transport request number.
- Under Gateway Service Attributes the model provider class and data provider class are displayed. These are the GBI generic classes.
- Under Service Registration enter following details:
- The model name, version, and description.
- The service name, version, and description.
Third Step
- Displays the metadata for the business object or the FBI view. You can select the entities and associations you want to generate.
- Choose Finish.
10. Choose Save.
Don’t forget to Share your feedback after using Gateway BOPF Integration (GBI).
Hello Antony,
The content was really helpful. Could you share some service examples.
Enjoyed reading it very useful.
Super. Very nice blog
Hi Antony,
I've heard of major changes to GBI being planned for SP 5. Will the new functionality in SP 5 be backwards compatible? We are planning to use the functionality for a new development based on bopf sapui5 and cordova but we will start with SP 3
Regards,
Kai
Hi Kai,
I am not aware of major changes between SP3 and SP5.
Regards,
Antony
Hi, we have SP8 of Gateway installed, but there is no Bopf-Integration available. Why?
Hi Stefan,
GBI is part of the Software Component SAP_BS_FND 7.47. Could you please check whether this software component is installed in the system?
Regards,
Antony
Hi Anthony,
you're right. But hopefully, this functionality will be downported?!?
Regards, Stefan
Thanks Antony,
It as an useful information
Regards,
Himanshu
Thanks for sharing Antony,.
Good one...
Regards,
Senthil Venugopal
Hi Antony,
As I now got to use GBI, I am wondering how properties (esp. attribute-properties and action properties) are being exposed.
Also I'd like to know whether there are also reusables for the consumer provided (e. g. for the application of attribute properties). Have you got more information on that?
Cheers,
Oliver
Hi Antony,
Excellent Blog. 🙂
Good to know Gateway integrate with BOPF.
Can i know the Which SP of GW will supports BOPF.
Thanks,
Syam
Hi Antony,
i have defined the BusinessObject with ROOT-Node and SubNode.
I have defined the Association betweeen ROOT-Node and SubNode.
I have one new project created in SEGW and i have the Data Model redefined from BOPF Service.
Now i can use /IWFND/MAINT_SERVICE for generate and activate new service.
As result i can use for testing /IWFND/GW_CLIENT.
I can read the Metadata and the ROOT entity but i cannot read the data from Subnote.
I will use the "EXPAND"-Parameter.
Now i have maked one Note in SAP-OSS (566550/2014) and the answer is "The „EXPAND“ feature is currently not supported by GBI." - What a shame!
Now i have maked a Modification in Class /BOFU/CL_GBI_DATA_PROVIDER on Method GET_ENTITYSET.... and this worked fine
I think, this is only a workaround for this moment.
Regards
Thomas
Hi,
In my case, node heirarchy is Root->child1(level2 )->chil2(level 3).I need to access the data completely, how to get it via get_exanded_entity of root from my odata service?
do i need to implement geT_expanded_entity from my odata service or how to trigger this search?
Much appreciated you help.
Hi Antony,
I follow your guide redefined BOPF service EHHHSS_INCIDENT to create a report incident simplify, I import a lot of action from this BO, How can I test those function imports? Because I don't known what the value I have to pass for NODE_ID and ENTITY_NAME, could you please guide me something?
Thanks in advance,
Regards
Chinh Pham.
Hi Antony,
Thanks for the post its really useful.
There is a requirement where we want to consume BO enhanced nodes also through GBI.
When i created the project i gave the main BO so we got only the super nodes and none of the enhanced nodes were exposed.
Could you please let us know how to consume the enhanced BO nodes?