While creating Odata services, I had gone through multiple blogs post and found that there are few steps which are not self explanatory and hence at the end of creating an odata service we get bad HTTP response . This is mainly due to missing explanation for how to load meta data and how to test the entity set data .
In this blog post, I am going to tell you step by step process to create Odata services for SAP /SAP HANA system and how to test it.
I tried to explain the whole process in 4 steps.
Step 1. Go to transaction code - SEGW .
Click on Icon Create. A pop window will appear , Fill the details as per below mention in screen shot and click on check icon or enter.
Below screen will appear where you can see below folder in project. In Folder data model, we can see three sub folders. Entity Type - it acts as work area , Entity Sets -It act as internal table and associations.
Now we are going to define structure of work area and internal table , Right click on Data model select import and select DDIC structure .
Here give the details of structure and structure name as per below screen below.
Select radio button Entity type and and click on check box entity set. fill ABAP structure as VBAK and click on next
Now you will get the pop up screen with VBAK table fields name. Select fields for your structure and click on next.
Other window will appear where we have to select the key field. tick on Vbeln as key field and click on finish. You may get warning message , it can be totally ignored.
Now expand folder entity type and fill the below parameters in properties , Please don't tick Null check box for VBELN as it is key field.
Similarly Create Structure for SD Item following same steps
click on Save button at the top of menu bar
Now click on generate Icon, A pop up window will appear with class details , click on tick icon and proceed further. It will ask for package , give details and proceed further . These are also knowns as runtime artifacts.
Step 2. Go to transaction code /IWFND/MAINT_SERVICE .
Click on push button Add services .
Next screen will appear, give the alias name and execute , Search you for your project .
Now double click on your project name . A pop up window will appear , enter the package details and click on tick icon. An Information message will be shown where it will confirm about the service is created and metadata loaded successfully
Now click back and go to main screen of transaction /IWFND/MAINT_SERVICE and find your service.
Click on SAP Gateway Client
A new screen will come, Execute the transaction and check the response .
Now we will write code to get data.
Step 3. Go to transaction code SEGW and expand folder service Implementation .
Under service implementation - Expand SDheaderSet. you will find different options. Right click on GetEntitySet and select GO to ABAP work Bench . It will redirect to the class
Now expand the method drop down and select method for GetEntitySet for Header data and right click and select redefine.
Write below code in method. Save and activate all related objects for classes.
Similarly , Write code for GetEntitySet for Item and activate .
Go to transaction /IWFND/MAINT_SERVICE and find out you service , select your service and click on load metadata.
Information message will pop up - Metadata has been loaded successfully.
Now Click on SAP Gateway Client .
Now Click on Entity set.
Select entity for header and enter
Click and execute and you will get the header data in response
Similarly, Select entity set for item and execute . You will get data for item
Here , We had completed our Odata service creation with a Service Builder Project with two entities and two entity-sets. We have generated the runtime artifacts and registered and activated our OData service. We had redefined methods of header and item entity set , load metadata and test the entity set with for test data.