Professional Documents
Culture Documents
Guide
SAP GATEWAY FOUNDATION
Gonsior, Jochen
SAP | 2-15-2019
[Type here]
Troubleshooting Guide
SAP Gateway Foundation
Contents
General ................................................................................................................................. 1
Launch SAP Gateway Error Log with the ABAP Development Tools (ADT) ....................... 1
Launch SAP Gateway Error Log with SAP GUI.................................................................. 3
Replay the Error in SAP Gateway Client ........................................................................ 4
SAP Gateway Client .......................................................................................................... 6
HTTP Requests and Responses .................................................................................... 6
Database Integration: Working with Test Cases ............................................................. 7
How to Create a Gateway Client Test Case for a Failed OData Request ....................... 8
How to Create a Gateway Client Test Case for a Successful OData Request ................ 9
Interpreting the Test Results .........................................................................................10
HTML Status Codes..........................................................................................................11
Successful 2xx ..............................................................................................................11
Client Error 4xx .............................................................................................................11
Server Error 5xx ............................................................................................................13
Solution Approaches .........................................................................................................14
Error Resolution with Application Log/IMG and Replay..................................................14
Error Resolution in the Service Registry and Replay .....................................................15
Error Resolution in the Coding and Replay ....................................................................16
Error Localization and Replay........................................................................................17
Request XML in a Problem Ticket for Error Resolution at SAP ......................................18
Error Resolution in the Backend Coding and Replay .....................................................19
Tracing Tools ....................................................................................................................20
Configuring Tracing Tools .............................................................................................20
Performance Trace........................................................................................................20
Payload Trace ...............................................................................................................20
Related Information...........................................................................................................21
General
You can find information on the cause of an error by checking the SAP Gateway Error Log
(error log). To access the error log, use one of the following options:
• ABAP Development Tools (ADT). For more information, see chapter Launch SAP
Gateway Error Log with ADT.
• SAP GUI – several transactions are available to access the error log. For more
information, see chapter Launch SAP Gateway Error Log with SAP GUI.
Launch SAP Gateway Error Log with the ABAP Development Tools (ADT)
To enable the ADT Feed Reader for the error log, proceed as follows:
2. In the project explorer, right-click the project in which the error log should be shown
and choose Add Feed Query from the context menu.
3. Double-click the SAP Gateway Error Log feed query or highlight it and press next to
open the Feed Query Configuration dialog box.
You can customize the feed query by
• Displaying notification messages and refreshing the interval (time in which the
error log information is updated)
• Paging with size (number of logs displayed)
• Applying the filters
4. Click Finish to save your entries.
1
Error Log
On the Feed Reader view, you can see the error log and the error information. See details of
error entries on the right-hand side. Within the error log, you can find frontend and backend
errors. To differentiate between frontend and backend errors a Frontend Error and Backend
Error prefix was introduced.
2
Launch SAP Gateway Error Log with SAP GUI
Open the error log using transaction /IWFND/ERROR_LOG. The SAP Gateway Error Log
overview opens:
The Error Text field contains a short description of the error. To proceed, check the line of an
error and choose one of the following options from the menu bar:
• Error Context
• Active Source
• Download to PC
• Upload from PC
If the error occurred in the SAP Business Suite backend system, select the Backend Error
checkbox. For more information, see the following chapters.
Error Context
The Error Context provides detailed information about the error that occurred.
Active Source
The Active Source button enables you to navigate to the source code in which the error
occurred and the exception appeared.
3
You can check if the error is caused by your source code or if it was implemented by another
user. Furthermore, you can set a breakpoint to retrace the error.
If you cannot solve the problem, you can download the error description by choosing the
Download to PC button. You can then create a customer message for SAP and attach the
error description.
Note: Use the error description instead of a screenshot of the error log entry. Alternatively,
you can upload the error description to another system.
Backend Monitor
If the error occurred in the SAP Business Suite backend system, you can view the error log
there choosing Backend Monitor.
The error log in the backend system is similar in the error log in the SAP Gateway hub
system, but includes some additional information concerning the error context.
Configuration
Use the Configuration button to solve service-related problems. Two different errors might
occur:
If the service has not been implemented, choose the Service Implementation option on the
Configuration button. You will then be redirected to the according transaction in the SAP
Business Suite backend system.
If the service has already been implemented but contains an error or is not active, choose
the Maintain Service option on the Configuration button.
The HTTP method, request URI, and headers are filled in the SAP Gateway Client.
Execute the request choosing Execute. The HTTP response is displayed in the HTTP
Response pane. If the error has been resolved, a successful response is displayed. If an
error occurs, you have the following options to solve it, as described in the Configuration
chapter:
• If the problem is service-related, you can maintain the service of the URI by clicking
the Configuration button and then choosing Maintain Service.
4
• You can check and correct the Service Implementation by clicking the corresponding
button
Although the SAP Gateway Client already provides some information about the error, you
can navigate to the error log again directly to get more information. To do so, choose Error
Log.
The SAP Gateway Client returns a status code and the corresponding status reason.
The SAP Gateway Client enables you to check whether the changes you have implemented
in the source code have been successful.
5
SAP Gateway Client
The SAP Gateway Client (transaction /IWFND/GW_CLIENT) for SAP Gateway enhances the
existing error log. The error log provides an overview of detailed context information about
errors that have occurred at runtime and enables you to navigate easily to the affected
source code. The SAP Gateway Client allows you to reproduce the exact runtime situation
that led to an error.
In such cases, you can launch the SAP Gateway Client from the error log context screen to
replay the steps that led to the error. In addition, the SAP Gateway Client enables you to test
a service before runtime errors appear. You can test your service pro-actively and run a
quality assurance test before a service is used, for example, by a mobile application.
• reproduce (replay) runtime situations that led to an error (reactive error resolution).
• simulate a service at runtime to identify and resolve potential issues before a critical
showdown appears (pro-active error prevention).
1. Select the HTTP method (GET, POST, PUT, PATCH, MERGE, DELETE, HEAD).
2. Enter the request URI you want to test in the Request URI input field or upload the
service data you want to test from a local file. To upload a file, choose Add File in the
HTTP Request frame on the left-hand side of the screen. The header name and value
(file type, for example, .xml, .pdf, .jpg) of the HTTP request is displayed in a table
and, below this, you can see a preview of the HTTP request file itself. To remove the
file from the HTTP request, choose Remove File.
Note: If you have uploaded an XML file, you can check the request XML for accuracy before
you run the test and see the HTTP response.
3. Choose Execute.
4. The SAP Gateway Client displays the HTTP response in the HTTP Response frame
on the right-hand side of the screen. If an error arises as result of the test, the HTTP
status and value is displayed in a table above the preview field. You can display
details of the HTTP response, display the response in an additional browser window,
or navigate to the error log to correct the error.
For better usability, the SAP Gateway Client enables you to download XML requests from
the SAP Gateway Client to your local PC or vice versa to upload an XML request from your
local PC.
6
Database Integration: Working with Test Cases
The SAP Gateway Client is integrated with an underlying database, thereby providing you
with increased flexibility to access request data already stored in the database for ongoing
testing or save your own test cases to the database as required. This can save time and
effort if you want to execute test cases more than once.
• To save your request to the database, choose Save. In the Save Request to
Database dialog box, enter a test group and a name for the new test case.
• To select an existing test case from the database, choose Select. In the Select Test
Cases dialog box, you can enter the namespace in which the service you want to test
resides, for example, /IWBEP/, and an existing service name, an existing test group,
or test case. Choose Enter.
Note: If the test case you entered does not yet exist in the database, you can choose to
create a default test case.
If more than one test case exists based on the criteria you entered in the Select Test Cases
dialog box, the test cases are displayed on the SAP Gateway Client - Select from Database
screen. The SAP Gateway Client lists test cases found in the database together with the
name of the test group, test case name, HTTP method, request URI, and the user who last
modified the test case. Select the line in which the relevant test case is displayed and choose
7
Request Data to display the HTTP request or choose Execute to run the test. If required, you
can select more than one test case and run the test in parallel.
If you want to enter new criteria to search for test cases, choose Re-Select.
How to Create a Gateway Client Test Case for a Failed OData Request
1. Make sure that the Gateway Error Log is active in your system. For more information,
see How to make sure that failed OData requests are logged in a system.
2. Execute the relevant OData request (e.g. using a Fiori app)
3. Start transaction /n/iwfnd/error_log:
8
6. Click the Save Test Case button and choose a name for the test case and test case
group
How to Create a Gateway Client Test Case for a Successful OData Request
1. Make sure that the Gateway trace is active in your system. For more information,
see How to enable the HTTP trace for OData requests.
2. Execute the relevant OData request (e.g. using a Fiori app)
3. Start transaction /n/iwfnd/traces and execute the following steps:
a. Open the Payload Trace tab
b. Select the relevant OData request from the list by double-clicking
c. Select the entry with Call Type Request and click the Replay button
4. Select the relevant entry from the list
5. Click the Replay button and choose SAP Gateway Client
6. Click the Save Test Case button and choose a name for the test case and test case
group
Note: The Payload Trace is done within the SAP Gateway framework and the response payload
of a batch response is done outside the SAP Gateway framework. Therefore, the response
payload of a batch request doesn’t contain the complete payload to be sent to the consumer.
9
Interpreting the Test Results
Once you have run the test for one or more test cases, the results are displayed in a table on
the SAP Gateway Client - Multiple Test screen. The status of the test indicated by a traffic
light icon together with the date and time the test was run, the HTTP status code, and the
corresponding status text are displayed. On this screen, you can choose to display the
request or response data for more context information.
If errors arose, you can select the affected test case and choose Error Log to correct the
issue. You can also test the test case again by choosing Re-Test.
10
HTML Status Codes
Successful 2xx
This class of status code indicates that the client's request was successfully received,
understood, and accepted.
• 200 OK
o The request has succeeded. The information returned with the response is
dependent on the method used in the request, for example:
▪ GET an entity corresponding to the requested resource is sent in the
response;
▪ HEAD the entity-header fields corresponding to the requested
resource are sent in the response without any message-body;
▪ POST an entity describing or containing the result of the action
• 201 Created
o The request has been fulfilled and resulted in a new resource being created.
The newly created resource can be referenced by the URI(s) returned in the
entity of the response, with the most specific URI for the resource given by the
Location header field.
• 202 Accepted
o The request has been accepted for processing, but the processing has not
been completed. The request might or might not eventually be acted upon, as
it might not be allowed when processing takes place. There is no facility for re-
sending a status code from an asynchronous operation such as this.
o The 202 response is intentionally non-committal. Its purpose is to allow a
server to accept a request for some other process (perhaps a batch-oriented
process that is only run once per day) without requiring that the user agent's
connection to the server persist until the process is completed.
• 204 No Content
o The server has fulfilled the request but does not need to return an entity-body
and might want to return updated meta information.
11
requested resource. The client may repeat the request with a suitable
Authorization header field. If the request already included authorization
credentials, then the 401 response indicates that authorization has been
refused for those credentials.
o Example:
▪ GET: Logon failed
• If this error occurs, either the provided user name or password
is invalid, therefore the login failed. Check your login
credentials.
• 403 Forbidden
o The server understood the request but is refusing to fulfill it. The user does not
have the authorization and the request should not be repeated.
o Example:
▪ GET: No authorization to access service
• If this error occurs, the user does not have the necessary
authorization to execute the request. Request authorization at
user administration.
• 404 Not Found
o The server has not found anything matching the Request URI. No indication is
given of whether the condition is temporary or permanent.
o Examples:
▪ GET: Resource not found
• If this error occurs, the request has been sent with an invalid
data key. The data you wanted to receive does not exist in the
database.
▪ PUT: Resource not found
• If this error occurs, the request has been sent with an invalid
data key. The data you wanted to update does not exist in the
database.
• 405 Method Not Allowed
o The method specified in the Request-Line is not allowed for the resource
identified by the Request-URI. The response must include an Allow header
containing a list of valid methods for the requested resource.
• 408 Request Timeout
o The client did not produce a request within the time that the server was
prepared to wait. The client may repeat the request without modifications at
any later time.
• 412 Precondition Failed
o The precondition given in one or more of the request-header fields evaluated
to be false when it was tested on the server. This response code allows the
client to place preconditions on the current resource metainformation (header
field data) and thus prevent the requested method from being applied to a
resource other than the one intended.
o Example:
▪ GET: User is not authorized to read business document
• If this error occurs, the user is not allowed to process the
request, because the RequestID is assigned to another user.
Use another RequestID to solve this problem.
12
• 415 Unsupported Media Type
o The server is refusing to service the request because the entity of the request
is in a format not supported by the requested resource for the requested
method.
13
Solution Approaches
Error Resolution with Application Log/IMG and Replay
14
Error Resolution in the Service Registry and Replay
15
Error Resolution in the Coding and Replay
16
Error Localization and Replay
17
Request XML in a Problem Ticket for Error Resolution at SAP
18
Error Resolution in the Backend Coding and Replay
To resolve an error in the backend coding, the following options are available:
1. Execute the request in the SAP Gateway Client in the hub system
2. Find the error message in the error log in the hub system
3. Find the error message in the error log in the backend system
4. Choose the following options:
a. Open the service implementation in service MPC/DPC in the backend system
→ Open the active coding in the backend system
→ Correct the coding/create breakpoints in the backend system
b. Find the error location in the call stack in the backend system
→ Open the active coding in the backend system
→ Correct the coding/create breakpoints in the backend system
c. Find the error location in the shortdumps (transaction st22)
→ Create breakpoints
5. Replay the request with SAP Gateway Client in the backend system
6. Check response
19
Tracing Tools
Configuring Tracing Tools
The support utilities for SAP Gateway include the Performance Trace and Payload Trace
tools. The Performance Trace tool enables you to monitor system performance at service call
level for backend and hub systems. The Payload Trace tool enables you to monitor data sent
and received and replay service calls. Before you can use these tools, you need to make
general configuration settings and activate the tools as they are required.
Note: The Payload Trace tool is available also for OData version 4 (V4) services, while the
Performance Trace tool is only available for OData version 2 (V2) services.
Performance Trace
The Performance Trace tool enables developers, administrators, support consultants, and
end users to monitor system performance at service call level. You can trace the
performance of both the SAP Business Suite backend system (SAP Gateway: Backend
Tracing Tools, transaction /IWBEP/TRACES) and the SAP Gateway hub system (SAP
Gateway: Tracing Tools, transaction /IWFND/TRACES).
Note: At present, the performance trace is not available for OData version 4 (V4) services.
Payload Trace
You can use the Payload Trace tool to check the exact content of HTTP header and body
data sent and received.
The Payload Trace tool enables developers, administrators, support consultants, and end
users to monitor the flow of data sent as part of service requests and responses. The tool is
particularly helpful if you want to check the exact content of HTTP header and body data sent
and received. In some cases, for example, unexpected data might be contained in the
response that did not lead to an actual system error that would be displayed in the Error Log,
but that nevertheless needs to be investigated.
To facilitate support in cases where unexpected data might have been returned, a replay
function is available that enables you to trigger the service call again and replicate the
circumstances in which the data was initially returned. In this way, the replay function saves
time and effort as the user who triggered the original service request does not have to
replicate the service call in their system. The same data is returned in the response body and
enable further analysis.
Note: The payload trace is available both for OData version 2 (V2) and OData version 4 (V4)
services
20
Related Information
Error Log
Notification Monitor
IMG
Performance Trace
Payload Trace
21