Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Get the XML/SOAP request created by an ABAP Web Service ConsumerProxy Class

Former Member
3,957

Hi,

In order to debug calls made to an external web service I'd like to find a way to get the request (XML data) that is being sent to the ws. I've created an ABAP web service consumer, by creating a ProxyClass from the web service WSDL via SE80.

Is there a way to get back the XML data that is being sent when the execute method of the proxy class instance is called?

Thank you,

Pietro

1 ACCEPTED SOLUTION

jitendra_it
Active Contributor
0 Kudos
536

Hi ,

Use transaction SRT_UTIL for monitoring of webservices.

It can monitored by user id Or by Path.

Thanks

Jitendra Soni

6 REPLIES 6

jitendra_it
Active Contributor
0 Kudos
537

Hi ,

Use transaction SRT_UTIL for monitoring of webservices.

It can monitored by user id Or by Path.

Thanks

Jitendra Soni

0 Kudos
536

Hi Jitendra,

I've launched the SRTUTIL transaction but I'm only able to see the function modules that are called.

The only other thing that I've got is a Message ID. Is there a transaction to get the message given its ID?

Thank you,

Pietro

0 Kudos
536

Hi Pietro,

just double click on that message id.

u will see there are 4 lines

1. first shows request passed to interface.

2. second shows the req passed to FM.

3. third shows response passed by FM.

4. fourth shows response passed by interface.

If u want to see the XML data just select 1 Or 4 then click on button " Original XML ".

Thanks

Jitendra Soni

0 Kudos
536

Hi Jitendra,

thank you for your reply.

Unfortunately I can't follow your instructions because double clicking on the Message ID does not show anything.

When I launch SRTUTIL I get a screen divided in two: on the left there is a tree of users and on the right there is the details panel.

I've added the user that I want to monitor and checked "Monitor performance" (don't know if this is the correct english name, I'm seeing a translated interface). On the "Performance data" tab (the second tab) I have a table showing the columns "Component", "Action", "Date", "Time", "Expiration date" and "Status".

If I double click on one row, the details table is displayed:

1	1	1	Sector 1: WS-Consumer		CL_WS_PROXY_RUNTIME_OUTBOUND	Create_Proxy	15	2
2	2	2			CL_SRT_LP_MAINTENANCE	Create_Client_Application	13	3
					>>Proxy_Class	ZAG_EDA_CO_WS_AFDYANDGCL_00_0P		
					>>Logical_Port	TEST_WEBSERVICE		
3		3			CL_SRT_LP_MAINTENANCE	Create_Config_Client		2
4	1	3			CL_SRT_LP_MAINTENANCE	Initialize_Client	8	1
5	1	4			CL_SOAP_APPLICATION_CLIENT	Initialize_Context	7	
6	3	5			CL_SRT_WSP_RT_CONFIG	Initialize	7	2
7		6			CL_SRT_WSP_RT_CONFIG	Get_Global_Properties		
8		6			CL_SRT_WSP_RT_CONFIG	Create_Protocols		1
9	6	6			CL_SRT_WSP_RT_CONFIG	Initialize_Protocols	4	1
10		7			CL_SRT_WSP_RT_CONFIG	CL_SOAP_RUNTIME_PROTOCOL		
11		7			CL_SRT_WSP_RT_CONFIG	CL_WS_SECURITY_PROTOCOL		1
12		7			CL_SRT_WSP_RT_CONFIG	CL_SOAP_SESSION_PROTOCOL		1
13		7			CL_SRT_WSP_RT_CONFIG	CL_SOAP_MSGID_PROTOCOL		
14		7			CL_SRT_WSP_RT_CONFIG	CL_SOAP_WSADDR_PROTOCOL		
15		7			CL_SRT_WSP_RT_CONFIG	CL_SOAP_WSRM_PROTOCOL		1
16	1	1	Sector 1: WS-Consumer		CL_WS_PROXY_RUNTIME_OUTBOUND	Execute: remoteInvoke	272	1
17	1	2			CL_WS_PROXY_RUNTIME_OUTBOUND	Process_Call	271	1
18	1	3			CL_SOAP_RUNTIME_CLIENT	Execute_Processing	270	2
19	5	4			CL_SOAP_RUNTIME_CLIENT	Exec_Processing	268	2
20		5			CL_SOAP_RUNTIME_ROOT	Pre_Process_Protocols		1
21	3	5			CL_SOAP_HTTP_TPBND_ROOT	Transport_Binding_Send	8	4
					>>SOAP_Action	""		
22		6			CL_SOAP_HTTP_TPBND_ROOT	Create_HTTP_Client_By_URL		1
					>>URL	http://sarch0.syssede.systest.sanpaoloimi.com:8023/scriptArch0/webservices/WS_AFDYANDGCL_00_0		
23	1	6			CL_SOAP_HTTP_TPBND_ROOT	Serialize_Message		2
24		7			CL_SOAP_MESSAGE_NEW	Write_HTTP_Body		
					>>HTTP_Body_size	3155		
25		6			CL_SOAP_HTTP_TPBND_ROOT	HTTP_Send		1
26	3	5			CL_SOAP_HTTP_TPBND_ROOT	Transport_Binding_Receive	256	4
27		6			CL_SOAP_HTTP_TPBND_ROOT	HTTP_Receive		251
28		6			CL_SOAP_HTTP_TPBND_ROOT	Create_Message		
29	2	6			CL_SOAP_HTTP_TPBND_ROOT	Get_Method		1
					>>Method	remoteInvokeResponse		
30		7			CL_SOAP_MESSAGE_NEW	Create_XML_Reader		
31		7			CL_SOAP_MESSAGE_NEW	Parse_XML		
32		5			CL_SOAP_RUNTIME_ROOT	Post_Process_Protocols		
33		5			CL_SOAP_HTTP_TPBND_ROOT	Deserialize_Body		1

This is where I'm stuck. Getting the details of one row does not get me the XML nor it displays an "Original XML" button.

Maybe I have a different version of yours.

Thank you.

Pietro

0 Kudos
536

Hi,

I've made further investigations and it seems that XML messages are not monitored on my system.

Do you know how to activate/enable XML message monitoring?

Thank you,

Pietro

0 Kudos
536

Hi Pietro,

First , pls use Tcode SRT_UTIL.

On the left tree click on "Add user" and enter user name.

Now in right side click on "configuration" tab and made the "Payload Trace" active .

now click on "Save Configuration" button , below on screen.

Now Run ur webservice. Click on "Payload Trace" Tab and u will see all the calls. Now double click on any of these and

follow steps of my earlier reply.

Thanks

Jitendra soni