Connector for SAP Gateway – Appendix
Troubleshooting
Error messages
If errors occur during an OData request, Intrexx attempts to detect the error messages from within the reply from the service and to 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, the 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:
-
Open the "log4.properties" file from the portal directory /internal/cfg with your chosen text editor.
-
Navigate to the section "logging for OData" and change the value 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
-
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="https://www.w3.org/2005/Atom" 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. 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.
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. 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 on the service level by using a system property. To do so, 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 "<SERVICE_GUID>" placeholder must be replaced with the OData service GUID. 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 as well as 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
Click here for more information.
-
Silverlight OData Explorer
A further tool for running and analyzing OData requests in the browser (requires Microsoft Silverlight Plugin), which you can download here.
-
SAP Gateway
For more information about SAP Gateway, test environments, documentation and how-tos, please see visit 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 this here.