Connector for SAP Gateway – Appendix

Troubleshooting

Error messages

If errors occur during an OData request, Intrexx attempts to determine the error messages from the response of the service and display them in the browser. This is not possible in every single case. For a more detailed error analysis, it is therefore possible to enable OData Request Tracing in the Intrexx Portal Server. This is described below.

Request tracing and error logging

When request tracing is enabled, both the OData requests and responses are written in detail to the Intrexx portal log file. For requests, an entry consists of the HTTP action, the URL, the query options, the request headers and the XML body. For responses, the HTTP header and the response XML will be delivered. Tracing is activated as follows:

  1. Open the ""log4.properties"" file from the portal directory /internal/cfg with your chosen text editor.

  2. Navigate to the "logging for OData" section and change the value from INFO to DEBUG:

                        # logging for OData
    
    log4j.logger.de.uplanet.lucy.server.odata.consumer=DEBUG, File
    

    log4j.additivity.de.uplanet.lucy.server.odata.consumer=false

  3. Restart the portal service.

With every OData action, the request details will now be logged in the file ""portal.log"". Example of a request/response tracing entry:

            DEBUG 2012-07-02 11:45:26,173 - 
OData request: 
GET https://gw.esworkplace.sap.com/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/FlightCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-02-01T00:00:00')/FlightBookings?$orderby=BookingID+asc&$select=FlightDate,Reserved,CustomerID,Title,BookingDate,PassengerDateOfBirth,Smoker,FlightClass,CustomerType,TravelAgencyID,FlightConnectionID,LuggageWeight,AirLineID,PassengerName,BookingID,Cancelled&$top=20&$skip=0
Accept: application/xml
DataServiceVersion: 2.0
User-Agent: intrexx
Authorization: *****

DEBUG 2012-07-02 11:45:26,573 - de.uplanet.lucy.server.odata.consumer.jersey.LoggingBehavior[WebConnectorWorker-localhost:8102-1]
OData response: 
Status: 200
content-type: application/xml; charset=utf-8
etag: version 01
Date: Mon, 02 Jul 2012 09:45:26 GMT
set-cookie: MYSAPSSO2=AjQxM..; path=/; domain=.esworkplace.sap.com
content-length: 29275
Keep-Alive: timeout=15, max=92
dataserviceversion: 2.0
Connection: Keep-Alive
Server: SAP Gateway Application Server / ABAP 702

<feed xml:base="https://GW.ESWORKPLACE.SAP.COM:80/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/"  xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><id>https://GW.ESWORKPLACE.SAP.COM:80/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/BookingCollection</id>	<title type="text">BookingCollection</title>  <updated>2012-07-02T09:45:26Z</updated>	<author>		<name />	</author>	<link href="BookingCollection" rel="self" title="BookingCollection" />	<entry m:etag="W/"datetime'2011-11-13T00%3A00%3A00'"">	<id>https://GW.ESWORKPLACE.SAP.COM:80/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/BookingCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-02-01T00%3A00%3A00',BookingID='00000001')</id>	<title type="text">BookingCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-02-01T00%3A00%3A00',BookingID='00000001')</title>	<updated>2012-07-02T09:45:26Z</updated>	<category scheme="https://schemas.microsoft.com/ado/2007/08/dataservices/scheme" term="RMTSAMPLEFLIGHT_2.Booking" />	<link href="BookingCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-02-01T00%3A00%3A00',BookingID='00000001')" rel="edit" title="Booking" />	<content type="application/xml">		<m:properties>		<d:AirLineID>AA</d:AirLineID>		<d:FlightConnectionID>0017</d:FlightConnectionID>		<d:FlightDate>2012-02-01T00:00:00</d:FlightDate>		<d:BookingID>00000001</d:BookingID>		<d:CustomerID>00001302</d:CustomerID>		<d:CustomerType>P</d:CustomerType>		<d:Smoker>false</d:Smoker>		<d:LuggageWeight>17.4000</d:LuggageWeight>		<d:FlightClass>C</d:FlightClass>		<d:BookingDate>2011-11-13T00:00:00</d:BookingDate>		<d:TravelAgencyID>00000114</d:TravelAgencyID>		<d:Cancelled>false</d:Cancelled>		<d:Reserved>false</d:Reserved>		<d:PassengerName>Dominik Simon</d:PassengerName>		<d:Title />		<d:PassengerDateOfBirth>2012-07-02T00:00:00</d:PassengerDateOfBirth>		</m:properties>	</content></entry>...

        

Unsupported OData functions

Although Intrexx provides support for all significant functions in version 2.0 of the OData specification, it can occur that a service does not support certain functions. In this case, there will either be a failure, or a query will not deliver the expected result. Since the OData specification of the services implemented provides considerable flexibility, in terms of support of features, in such a case, only the Intrexx application can be adjusted so that only the functions supported by the service are used. Examples of such cases are filter definitions, site navigation (pagination) or sorting. Problematic OData features can be deactivated via the corresponding expert settings. If certain filter definitions are not supported, the filter in Intrexx must be adapted or simplified accordingly.

Attachment

SSL connections

For SSL connections between the Intrexx portal server and an OData service, the Certificate Authority that provided the service certificate must be added to the certificate store of the Intrexx portal server. Self-signed certificates, which weren't issued by a known certificate authority, are an exception. In order to enable SSL connections to services with self-signed certificates, the "Certificate chain" check must be deactivated in the Intrexx portal server in this case. This is possible on the service level by using a system property. To do this, open the portal.cfg file in the portal directory internal/cfg with a text editor and add a new <systemProperty> entry to the <environment> section:

            <systemProperty name = "de.uplanet.lucy.server.odata.consumer.ssl.allowSelfSignedCerts.<SERVICE_GUID>;" value="true"/>
        

The placeholder <SERVICE_GUID> must be replaced with the GUID of the OData service. The GUID can be retrieved from the service configuration file in the portal directory internal/cfg/odata. After saving the ""portal.cfg"" file, the Intrexx portal service must be restarted for the changes to take effect.

OData specification

A description of the OData protocol and the OData specification can be found here.

OData tools

The following tools have been found to be helpful for the creation of applications, and problem analysis:

  • Postman API Client

    You can find all the information here.

  • Silverlight OData Explorer

    Another tool for executing and analyzing OData queries in the browser (requires Microsoft Silverlight plugin), which you can download here.

  • SAP Gateway

    Further information on SAP Gateway, test environments, documentation and how-tos can be found in the SAP Community Network.

  • Microsoft Visual Studio 2010

    The Visual Studio 2010 development environment from Microsoft lets custom OData services based on existing databases to be generated and provided over the Microsoft Internet Information Server with little effort. You can download them here.

More information

General

System requirements

Consume data

Integration in applications

Use in processes