In this post, you will learn to Create OData Service using SEGW.
The process involves the creation of a project, entity type, entity set, and association. After that, the project needs to be generated and code implementation is required.
This marks the third installment in our series on constructing OData Services. Previously, we covered an introduction to OData and delved into comprehending the structure of an OData Service.
To generate an OData Service using the traditional approach, the SEGW transaction is utilized. SAP Gateway can be integrated into ECC/S4 System or function as a standalone system.
Prior to commencing the project, it is essential to examine the desired application and determine the appropriate data model. For instance, let us consider a basic application that displays a list of carrier IDs on the initial screen, followed by specific flight details for the selected carrier on the subsequent screen.
In the data model of this application, there will be two entities: Carrier and FlightSchedule / FlightDetails.
Contents
- 1 Creating an OData API: A Step-by-Step Guide
- 2 What Tcode is used to create OData?
- 3 Adding and activating OData service in SAP: A step-by-step guide
- 4 Creating an OData: A Step-by-Step Guide
- 5 Creating an OData server: A step-by-step guide
Creating an OData Service in SAP
Click on the create button and provide the necessary information in the popup window. Choose a package and either a transport request or a local package if you do not want to create a transport request.
Create Entity and add Properties
Click on the entity types node, then right-click and choose the option to create a new entity type.
Enter the name “Carrier” for the Entity Type and “CarrierSet” for the Entity Set, then press Enter. This action will create both the Entity Type and Entity Set simultaneously.
Click on the Properties node within the Carrier entity type to open it.
Next, utilize the buttons that are clearly marked in a box below to include or exclude properties. When including a property, you have the option to assign it a data element or internal type as illustrated below.
Choose the Data Element option for Category and include the name of the data element in the Associated Type field.
You have the option to include additional attributes such as Carrier Name and Currency. Afterwards, designate CarrierID as the primary key.
Create Entity with reference
To simplify the creation of an entity, you can also utilize a dictionary structure or table. By right-clicking on the Data Model and selecting Import > DDIC Structure, you can easily import the required information.
Creatable: This option allows you to assign a value to a property when creating new data. If selected, it is necessary to include a Create operation in the data model.
Updatable: By selecting this option, you can assign a value to a property when updating existing data. Including an Update operation in the data model becomes mandatory if this option is checked.
Sortable: This property can be used for sorting data by including it in $orderby statements.
Nullable: With this option enabled, it is possible to enter a null value for the property during runtime.
Filterable: Enabling this option allows the use of the property in $filter statements for filtering data.
In order to import additional properties in the future, we can verify the structure within the entity. If it is present, we have the option to import more properties from that same structure.
Creating an OData Service within SAP
As demonstrated previously, we can obtain the Entity Set that has been generated along with the corresponding Entity Type.
However, if you have already created the Entity Type and now need to create an Entity Set, follow these steps: select the Entity Set Node, right-click on it, and choose the option to create a new Entity Set.
In your service implementation, you can indicate the supported functionalities by selecting certain checkboxes. The “Creatable” checkbox indicates that creation is supported. The “Updatable” checkbox indicates that updating is supported. The “Deletable” checkbox indicates that deletion is supported. The “Pageable” checkbox indicates that paging is supported. The “Addressable” checkbox indicates that the addressable function is supported. The “Searchable” checkbox indicates that searches are supported. Lastly, the “Subscribable” checkbox indicates that subscriptions are supported. If you select the “Requires Filter” checkbox, it means a filter is required for accessing and querying the entity set directly without a $filter expression.
Create Association
You have successfully created the Entity Types for Carrier and FlightSchedule. Now, in order to establish their relationship, you need to create an association. To do this, go to the Associations node and right-click on it, then select the option to create a new association.
Afterwards, select a suitable name for the association such as “CarrierFlights”, and input the Principal Entity (Carrier) and Dependent Entity (FlightSchedule).
In this scenario, we have a requirement to go from a Carrier entity to its associated Flight Schedules. This means that we need to establish a navigation path from the Carrier entity to the Flight Schedules. As a result, we create a Navigation Property for this purpose.
The relationship between Carrier and FlightSchedule is described as a one-to-many cardinality, which will be further explained.
Cardinality
Typically, the Principal Entity will have a cardinality of one since there is usually only one corresponding Dependent Entity. The Dependent Entities can have different cardinalities: up to one, exactly one, many, or at least one.
In the following pop-up window, we establish a connection between the main and related entities by mapping their keys. This can be compared to an ON condition in a LEFT OUTER JOIN. Proceed by clicking on the Next button.
Enter a suitable name for the Association Set, such as CarrierFlightsSet, and then click on the Finish button.
Creating Function Import in SAP
Initially, establish an entity that will serve as the output type for the function import.
Next, you can perform a right-click on the Data Model option and proceed to select Create. From there, choose Function Import.
Creating OData Service in SAP
Once you have successfully created the Entity Type, Entity Set, Association, Navigation Property, and Association Set, it is time to generate the Project.
The names of the Model Provider Class and Data Provider Class, as well as the Technical Model Name and Technical Service Name, will be automatically filled in. Normally, there is no need to make any changes to these names, but you have the option to modify them according to your own naming preferences.
A project will be created and you can check the log to see that Model Provider Classes and Data Provider Classes have been generated. Our focus should be on class ZCL_ZJP_DEMO_DPC_EXT, which is the Data Provider Extension.
You can access runtime objects through the Runtime Artifacts node, which allows you to navigate to these artifacts.
Implement Code
Before the OData service can be utilized, it is necessary to develop code that will retrieve the data. In the OData / Gateway framework, a method for each operation is created for every entity. The resulting data provider extension class contains five methods for each EntitySet, which correspond to the CRUD-Q operations. Four of these methods deal with individual entities and are responsible for creating, updating, deleting, and retrieving them. The fifth method, GET_ENTITYSET, handles query operations by returning an Entity Set. These methods must be implemented according to specific requirements.
The class is derived from the Data Provider Base class, and we must redefine the necessary methods based on the functionality of the application.
Include the code within the implementation section of the redefined method.
Throw an exception of type /iwbep/cx_mgw_busi_exception.
CASE io_tech_request_context->get_source_entity_type_name( ).
io_tech_request_context->get_converted_source_keys(
WHEN ‘FlightSchedule’. “Called directly – check filters
The code mentioned here is not currently in use, but it will be shown and explained in future posts.
Include the code, save it, and activate the methods. With these steps completed, our project will be prepared. The subsequent action is to register and test the service in the Gateway system.
To discover a range of articles on OData, you can visit the OData Development section in SAP.
Creating an OData API: A Step-by-Step Guide
Follow these steps to create an OData service in SAP:
1. Select Design and then Create.
2. Enter the necessary data for the integration package.
3. In the Artifacts tab, click on Add OData API.
4. In the Add OData API dialog box, choose one of the options provided:
– Enter the details of your OData API as mentioned in the table below.
5. Click on Create.
6. Deploy your OData API.
What Tcode is used to create OData?
To create an OData service in SAP, follow these simple steps:
1. Open the SAP GUI or press Ctrl+6 to access the transaction code (Tcode) SEGW.
2. Once in SEGW, click on “Create Project” to start a new project.
3. Manually enter a name for your project and provide a description if desired.
4. Click on “Local object” to ensure that the project is created as a local object.
Now you have successfully created your OData service project in SAP!
1. Open SAP GUI or use shortcut Ctrl+6
2. Access Tcode SEGW
3. Click on “Create Project”
4. Enter preferred name and description for the project
5. Choose “Local object”
Creating an OData service allows you to expose data from SAP systems as web services, making it easier for other applications to consume and interact with this data.
OData stands for Open Data Protocol, which provides standard methods for accessing and manipulating data over HTTP using RESTful principles.
Overall, creating an OData service in SAP involves using the SEGW transaction code to create a new project with a specific name and description while ensuring it is set as a local object
Adding and activating OData service in SAP: A step-by-step guide
To begin creating an OData service in SAP, you need to access the SAP Fiori server backend using SAP GUI. Once logged in, navigate to the transaction “Activate and Maintain Services” (/N/IWFND/MAINT_SERVICE). In this screen, select “Add Service” to proceed with adding a new service.
In the next step, you will be prompted to enter a System Alias for the service. Utilize the value help option provided to ensure that you select the correct service from the available options. After selecting the appropriate alias, move on to entering the Technical Service Name for your desired service. Once entered, press Enter or click on any relevant confirmation button.
By following these steps carefully and accurately inputting all required information, you can successfully create an OData service in SAP.
Creating an OData: A Step-by-Step Guide
To create an OData service in SAP, follow these steps:
1. Create the Visual Studio project: Open Visual Studio and create a new C# project using the ASP.NET Web Application template.
2. Install the OData packages: In the NuGet Package Manager, install Microsoft.OData.Core and Microsoft.AspNet.OData packages to enable OData functionality in your project.
3. Add a model class: Define your data model by adding a class that represents the entities you want to expose through your OData service. This class will typically include properties that define the attributes of each entity.
4. Add a controller class: Create a controller class that inherits from ApiController and implements methods for handling CRUD operations on your entities. These methods will be responsible for querying, creating, updating, and deleting data through your OData service.
6. Start the OData service: Build and run your application to start hosting the Odata service locally or deploy it to a server so that it can be accessed remotely by clients who want to consume its data via standard HTTP requests following RESTful principles.
In simple terms, creating an SAP odata service involves setting up a Visual Studio project with necessary dependencies, defining models representing entities you want to expose, implementing controllers for handling CRUD operations on those entities, configuring routing for odata endpoints within web configuration files like WebApiConfig.cs or Startup.cs depending upon framework used (MVC/Core) ,and finally starting/hosting this newly created odata service either locally or deploying it onto remote servers making sure it is accessible over HTTP protocols adhering RESTful guidelines.
Creating an OData server: A step-by-step guide
Select an empty template and check Web API. This action will initiate the creation process. After that, proceed by adding the OData NuGet packages to your project. These packages are essential for implementing OData services in SAP.
To further enhance your project, add Entity Framework as well. This framework provides a powerful toolset for working with databases and data models within your application.
Next, you can add a new item to your project. Choose “EF Designer from database” option to easily generate entity classes based on your existing database schema.