Connector for SAP Gateway - Appendix

Connectors SAP Gateway

1. Troubleshooting

1.1. Error messages

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

1.2. Request tracing and error logging

When Request Tracing is activated, both the OData requests and the responses are written in detail to the Intrexx portal log file. For requests, an entry consists of the HTTP action, the URL, the query option, the request headers and XML body. For responses, the HTTP headers and XML body of the response will be recorded.
  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.
The request details of any OData action will now be logged in the "portal.log" file. Example of a Request/Response Tracing entry:
DEBUG 2012-07-02 11:45:26,173 - 
OData request: 
GET http://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="http://GW.ESWORKPLACE.SAP.COM:80/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<id>http://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>http://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="http://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>
...

1.3. Unsupported OData functions

While Intrexx offers support for all major functions of the OData specification version 2.0, there may be circumstances when a service does not support certain features. 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. Using the corresponding Expert settings, problematic OData features can be deactivated. If certain filter definitions are not supported, the filter must be adjusted accordingly in Intrexx, or simplified.

2. Appendix

2.1. SSL connections

For SSL connections between the Intrexx portal server and an OData service, the certificate of the Certificate Authority that issued the service certificate, must have been added to the certificate store of the Intrexx Portal server. An exception applies to self-signed certificates, which were not issued by a recognized Certificate Authority. To enable SSL connections to services with self-signed certificates, the testing of the "Certificate Chain" in the Intrexx server must be disabled in this case. This is possible at service level through a system property. Open the "portal.cfg" file in the portal directory /internal/cfg/ with a text editor, and in the <environment> section, add a new <systemProperty> entry, as follows:
<systemProperty name = "de.uplanet.lucy.server.odata.consumer.ssl.allowSelfSignedCerts.<SERVICE_GUID>;" value="true"/>
The placeholder <SERVICE_GUID> should be replaced with the GUID of the OData services. The GUID can be found in the service configuration file portal directory internal/cfg/odata. After saving the "portal.cfg" file, the Intrexx portal service must be restarted for the changes to take effect.

2.2. OData specification

A description of the OData protocol and the OData specification is available at the following URL:
http://www.odata.org/

2.3. OData tools

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

3. More information

General
System requirements
Consume SAP Gateway data
Integrate SAP Gateway data into applications
Export / Import