
Once you have created a project in the SAP Gateway Service Builder, you can start the data modeling process. Depending on your requirements, you can define a data model in the following ways:
- Define Data Model Declaratively
- You can manually define a new data model within your project — that is, you create the individual data model elements, such as entity types, entity sets, and associations, from scratch.
- Import Data Model (EDMX)
- You can reuse an existing data model by importing an XML-file formatted as EDMX (Entity Data Model Extension). This file can be created by external model editors like Microsoft Visual Studio or you can download the metadata of an existing OData service.
- Import DDIC Structure
- You can import a database view, a transparent table, or any other structure type from the ABAP Data Dictionary (DDIC) to create a new complex or entity type with ease.
We skip the declarative way for now and focus on the other two ways.
Without any service implementation, it is already possible to generate the runtime artifacts and register the service. The only function then provided by the service is to provide the metadata of the data model.

The first development step is to create an SAP Gateway project in the SAP Gateway Service Builder. You open the SAP Gateway Service Builder by using the transaction code SEGW.

A project bundles all artifacts of a service in one central location, helping you to organize the modeling process and service development. Since projects consolidate all related data, you can easily work on multiple projects in parallel and reuse data between projects before generating and activating the actual service. In addition, you can use projects to organize the movement of objects from one system environment to another ensuring that all artifacts remain together at all times.
When creating a project, you must define a name and description and set the project type. The latest and only valid project type today is the Service with SAP Annotations. All other project types are deprecated.
Hint
The name of the project should not exceed 18 characters. The reason is it that the project name is included in the names of the generated runtime artifacts. Longer project names will just be cut replacing the now missing characters by a number. But if the project name is fully readable in the runtime artifacts, it is easier to map these artifacts to the project.As repository object, a project must be assigned to a package and transport request or saved as local object. As responsible person, the creator of the project is automatically set, but can also be changed later.