Discover how a bimodal integration strategy can address the major data management challenges facing your organization today.
Get the Report →LINQ to SAP Netweaver Gateway Data
LINQ offers versatile querying capabilities within the .NET Framework (v3.0+), offering a straightforward method for programmatic data access through CData ADO.NET Data Providers. In this article, we demonstrate the use of LINQ to retrieve information from the SAP Netweaver Gateway Data Provider.
This article illustrates using LINQ to access tables within the SAP Netweaver Gateway via the CData ADO.NET Data Provider for SAP Netweaver Gateway. To achieve this, we will use LINQ to Entity Framework, which facilitates the generation of connections and can be seamlessly employed with any CData ADO.NET Data Providers to access data through LINQ.
See the help documentation for a guide to setting up an EF 6 project to use the provider.
- In a new project in Visual Studio, right-click on the project and choose to add a new item. Add an ADO.NET Entity Data Model.
- Choose EF Designer from Database and click Next.
- Add a new Data Connection, and change your data source type to "CData SAP Netweaver Gateway Data Source".
Enter your data source connection information.
SAP Gateway allows both basic and OAuth 2.0 authentication. You can use basic authentication to connect to your own account, or you can use OAuth to enable other users to retrieve data from your service with their accounts. In addition to authenticating, set the following connection properties to access SAP Gateway tables.
- Url: Set this to the URL of your environment, or to the full URL of the service. For example, the full URL might appear as: https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/. In this example, the environment URL would just be: https://sapes5.sapdevcenter.com.
- Namespace: Set the appropriate Service Namespace. In the example above, IWBEP is the namespace. It is optional if the full URL to the service is specified.
- Service: Set this to the service you want to retrieve data from. In the example above, the service is GWSAMPLE_BASIC. It is not required if the full URL is specified.
Authenticate via Basic Authentication
In basic authentication, you use your login credentials to connect. Set the following properties:
- User: This is the username you use to log in to SAP Gateway.
- Password: This is the password you use to log in to SAP Gateway.
Authenticate via OAuth Authentication
You can connect to SAP Gateway using the embedded OAuth connectivity (without setting any additional authentication connection properties). When you connect, the OAuth endpoint opens in your browser. Log in and grant permissions to complete the OAuth process. See the OAuth section in the online Help documentation for more information on other OAuth authentication flows.
Below is a typical connection string:
User=user;Password=password;URL=https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/;InitiateOAuth=GETANDREFRESH
- If saving your entity connection to App.Config, set an entity name. In this example we are setting SAPGatewayEntities as our entity connection in App.Config.
- Enter a model name and select any tables or views you would like to include in the model.
Using the entity you created, you can now perform select , update, delete, and insert commands. For example:
SAPGatewayEntities context = new SAPGatewayEntities();
var salesorderlineitemsQuery = from salesorderlineitems in context.SalesOrderLineItems
select salesorderlineitems;
foreach (var result in salesorderlineitemsQuery) {
Console.WriteLine("{0} {1} ", result.Id, result.ProductID);
}
See "LINQ and Entity Framework" chapter in the help documentation for example queries of the supported LINQ.