Problems consuming a web service in ABAP
We wish to consume an external web service from ABAP but the provided WSDL file contains syntax not supported by SAP - namely "mixed content". A response from Roman Glushkov in forum thread [Call Sharepoint Web Service; seemed to offer a solution.
The WSDL file was edited as suggested by Roman and the Service Consumer proxy was successfully created from this edited version. However, in our SAP release (Basis release 700 support pack SAPKB70018) the "untyped mapping" indicator is not shown anywhere so we are unable to set that for those elements that were set edited in the WSDL.
The problem now is that when calling a method where the return parameters include one of these edited elements we get the error "SOAP:1,001 CX_ST_MATCH_TYPE:XSLT exception.System expected a value for the type g" presumably because SAP is trying to de-serialise the response rather than just return the data as an XML string.
Does anyone know how to get this "untyped mapping" indicator or can anyone suggest another way to solve this mixed content issue?
TIA
Gareth
Hi Tim
I've sort of got further in that I I can now call the web service method without error but structure returned is empty even though I know the SOAP response has data.
What I did was to go back to the WSDL and re-write the type declaration bit to fully describe the response message.
The appropriate portion of the original WSDL was;
<s:element name="getActionListResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getActionListResult">
<s:complexType mixed="true">
<s:sequence>
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
The response SOAP message was;
<getActionListResponse xmlns="http://webcominc.com/">
<getActionListResult>
<RESULT xmlns="">
<RESULT>
OK
</RESULT>
<REASON />
<ACTION>
View
</ACTION>
<ACTION>
Change Status
</ACTION>
</RESULT>
</getActionListResult>
</getActionListResponse>
So I re-wrote the WSDL as follows;
<s:element name="getActionListResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getActionListResult">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RESULT">
<s:complexType>
<s:sequence>
<s:element name="RESULT" type="s:string" minOccurs="1" maxOccurs="1" />
<s:element name="REASON" type="s:string" minOccurs="1" maxOccurs="1" />
<s:element maxOccurs="unbounded" name="ACTION" type="s:string" minOccurs="0" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
Using this new version of the WSDL I recreated the ABAP Proxy but as I said this now returns an ABAP structure that is empty. I'm new to WSDL so its very probable that my attempt at defining the response message is incorrect or maybe it is something to do with the fact that the response message has two elements called RESULT - one being the child of the other?
Regards
Gareth
Similar Messages
-
Hi,
We have a Web Service URL on PI. Run time of this Web Service in a Portal Server.
We need to access the Same URL from ECC using ABAP Programming?
Can any one tell me how we can call the same Web Service?
I need to pass few values to the web service using ABAP Code and I need to get back the result into some variables.
any code available for verify?
Thanks,
Sekhar.JHi,
Steps involved in Consuming a Web Service in ABAP.
1. You will need to create a Service Consumer Proxy in the ECC system.
The procedure for this is available in the documentation link [http://help.sap.com/saphelp_erp60_sp/helpdata/en/46/9743916d1115ece10000000a114a6b/frameset.htm] in the section Consuming a Web Service.. The URL access path of the WSDL can be used to generate the Service Consumer Proxy in ABAP.
2. Using transaction SOAMANAGER create the Logical Port for the Consumer Proxy created in Step 1.
3. Code the Consumer Proxy call in the ABAP program. Check section Consuming a Web Service --> Programming with Client and Server Proxies --> Sending a Message in the link specified above.
The Video link [Consuming Services in ABAP |https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/media/uuid/20eb3174-41ab-2a10-a383-907faf60eed3] will provide good conceptual knowledge, steps involved and Logical port maintenance..
In case you face any problems, shoot your queries.
regards
Nitesh -
Consuming a Web Service with ABAP in WAS 6.40 (SS3)
Hi Everyone,
Has anyone successfully consumed a web service (based on an EJB) that is published to the J2EE engine of their WAS 6.40 server by creating a proxy from the ABAP layer?
We are encountering the following problem: When executing method of the proxy to call the Web Service on the J2EE engine, the CX_AI_SYSTEM_FAULT exception is triggered with the message "Unallowed RFC-XML Tag (SOAP_EINVALDOC)".
This same problem has occurred with multiple web services, even though the proxy generation seems to execute without a problem. Is there some system setting that could cause this? We have run the SOAP Runtime trace, but only receive the same basic information about the problem.
If anyone has any thoughts at all, I'd be grateful to hear them.
Thanks,
--GregHi,
We encountered problems when consuming a foreign WS. It seems to be that RPC style WSDL isn't supported by the WAS 6.4 WS proxy. An interesting reading on this is
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/the difference between rpc and document style wsdl.article
Eddy -
Error while consuming CAF Web Service in ABAP
Hi experts,
I need to consume a CAF Web Service in ABAP 7.0. While trying to generate the Proxy Object in SE80 it is thowing an error "Proxy generation terminated: WSDL error. (<extension> not supported)" and terminating the Proxy generation.
Can anyone please help me out with the solution for this?
Thanks in Advance.
Vaishali.Hi,
waiting for reply..... -
Consuming a web service in ABAP exception and error
Hi experts,
I have succesfully implemented this example web service http://www.webservicex.net/airport.asmx?WSDL from http://www.webservicex.net/airport.asmx and everything works perfect so I know it is possible.
But my requirement is to implement the following web service: http://ws1.webservices.nl/business/soap_doclit?wsdl it is a document/literal soap web service and WS-I Basic Profile 1.0 compliant. When I try to create a proxy object I get the following errors:
- Exception occurred in library handler
- Incorrect value: Unknown Namespace http://schemas.xmlsoap.org/wsdl
I already found that library handler exception might have something to do with http bindings, I found note 1403271 but as my system is running on release 702 level 0008 this note is obsolete.
Now 2nd error, incorrect value I don't really understand.. I also think the web service is SOAP 1.1 and not 1.2 because that should also give problems according to this topic: Proxy object to consume web service - can anyone verify to be sure? I'm not that familiar with WSDL files but does anyone know what I can test and what I can remove from the web service?
The web service documentation is found here: https://webview.webservices.nl/documentation/files/interfaces/soap/soap-txt.html#SOAP_Interface.Differences_between_SOAP_interfaces
There are also other versions such as RPC/Encoded and one without a header but ALL versions give the exact same error.
Thx!check the beginning of your WSDL file
just after the first line <xml> you should have
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsa="http://www.w3.org/2005/08/addressing"
followed by the namespaces related to your web service if required.
SAP does all the job (generate the web service client) but any very little error in the file (or element not recognized) leads to this message "exception occurred in library handler" and it is not easy to know exactly what is the error... -
Consuming stateful web service via ABAP proxy
Hi all,
I´ve got the following scenario. I´ve a ABAP proxy generated based on a WSDL file. The provider is a WebService provided by a tomcat server. (no PI etc. as middleware). The problem i´ve now is that the webservice is stateful so I need a stateful communication between my ABAP report (client) and the Web Service.
I´ve already found the possibiliy to switch on the feature "Session-Oriented Communication" on "Preconfiguration Tab" of the ABAP Proxy Screen. But unfortunately it´s not working.
Anybody knows whether general system settings has to be changed for this. Or anybody has other tips.
I´m currentliy working on the SAP Discovery System v3 which is a Netweaver 7.0.
Many thanks in advance for your answers,
AndyMarcelo Almeida wrote:
> You can use Logial port for it in LPCONFIG ( Transaction). See this examplo Below:
>
> TRY.
>
> CREATE OBJECT my_proxy
> EXPORTING
> logical_port_name = 'LP01'.
> CATCH cx_ai_system_fault.
> ENDTRY.
>
> TRY.
> input-airline_id = p_carrid.
> input-connection_id = p_connid.
> input-flight_date = p_fldate.
>
> CALL METHOD my_proxy->flight_get_detail
> EXPORTING
> input = input
> IMPORTING
> output = output.
> CATCH cx_ai_system_fault.
> CATCH cx_ai_application_fault.
> ENTRY.
>
> Its necessary create a connection in SM59 (type H) and setting in the call parameters logical port (LPCONFIG).
Hi,
thanks for your answer. It´s working!
Cheers,
Andy -
Consume External Web Service from ABAP
Hello All,
I have a Web Service existing on a Non R/3 system.
I want to access this Web Service from my Development system (SAP 6.40).
I created a Client Proxy pointing to this WSDL named "ZUSER_ARS_EXCHANGECO_UPDATE".
I have created an FM to call this Web Service and update the data to it with the following code ->
DATA: lv_proxy TYPE REF TO zuser_ars_exchangeco_update,
ws_header TYPE REF TO if_wsprotocol_ws_header,
sys_fault TYPE REF TO cx_ai_system_fault,
appl_fault TYPE REF TO cx_ai_application_fault,
lv_request TYPE zuser_ars_exchangecreate_soap1,
lv_response TYPE zuser_ars_exchangecreate_soap.
TRY.
CREATE OBJECT lv_proxy
EXPORTING
logical_port_name = 'TO_ARS'
CATCH cx_ai_system_fault .
ENDTRY.
MOVE-CORRESPONDING ip_userdata TO lv_request-parameters.
TRY.
CALL METHOD lv_proxy->create
EXPORTING
input = lv_request
IMPORTING
output = lv_response.
CATCH cx_ai_system_fault INTO sys_fault.
IF sys_fault IS NOT INITIAL.
RAISE proxy_create_system_fault.
ENDIF.
CATCH cx_ai_application_fault INTO appl_fault.
IF appl_fault IS NOT INITIAL.
RAISE proxy_create_appl_fault.
ENDIF.
ENDTRY.
But when I am trying to execute, I am getting the error "cx_ai_system_fault " with the following Error Text -> "ARERR [149] Im Steuerungsdatensatz muss ein Benutzername angegeben werden." When translated to English, using Google, it is "ARERR [149] The control record must be a user name."
The WSDL has a line as follows -> soap:header message="s0:ARAuthenticate"
How do I pass the username and password to this "ARAuthenticate" parameter?
Can someone please help me in getting this fixed?
Thanks and Regards
Gladson JacobI created an HTTP RFC Destination to the WSDL URL and provided the username and password in the RFC Connection. And called the RFC Destination in the Proxy, instead of calling the URL directly in the proxy. But after that, I am getting some new errors, for which I have not received a solution yet. So, still stuck!!!
For steps on creating a Proxy, I need to know the ABAP version your are using. -
Can any help me on consuming rest web services from Abap..
Basically I have an rest based url which i have to call from ABAP, The url has to be passed with some input XML PARSE..How do i do it any idea??
i have tried cl_http_client calls in my case i'm having a problem in passing input xml.Please post to one of the ABAP SCN Spaces. Each SCN Space has an Overview tab and this tells you what products the Space "supports". To find the ABAP Space see:
SCN Site Index
- Ludek
Senior Support Engineer AGS Product Support, Global Support Center Canada
Follow us on Twitter -
Wrong data when consuming web service via ABAP
Dear all,
we tried to consume a web service via ABAP and used one of the various existing how-to papers from the internet in order to develop everything.
The development was not that difficult, but when we now execute our ABAP, we noticed that
- the first 100 returned rows from the webservice are completely correct
- then we receive 10-15 completely incorrect rows (empty fields, redundant lines, etc.)
- the rest of the data (60 records) is correct again
As we nearly all objects have been generated automatically via SE80, I do not really know where this problem might come from. We double checked the original data and there everything is correct.
Any ideas?
Thanks for your feedback,
AndreasMarcelo Almeida wrote:
> You can use Logial port for it in LPCONFIG ( Transaction). See this examplo Below:
>
> TRY.
>
> CREATE OBJECT my_proxy
> EXPORTING
> logical_port_name = 'LP01'.
> CATCH cx_ai_system_fault.
> ENDTRY.
>
> TRY.
> input-airline_id = p_carrid.
> input-connection_id = p_connid.
> input-flight_date = p_fldate.
>
> CALL METHOD my_proxy->flight_get_detail
> EXPORTING
> input = input
> IMPORTING
> output = output.
> CATCH cx_ai_system_fault.
> CATCH cx_ai_application_fault.
> ENTRY.
>
> Its necessary create a connection in SM59 (type H) and setting in the call parameters logical port (LPCONFIG).
Hi,
thanks for your answer. It´s working!
Cheers,
Andy -
Consuming a Web Service with PasswordDigest Authentication in ABAP
Hello,
I need to consume a web service in ABAP from a non-SAP application. The web service uses wsse:UsernameToken with PasswordDigest in the SOAP Header for authentication. However, I havent seen any documentation for using Password Digest in ABAP.
Is it possible to use Password Digest in ABAP?
Thanks
AjayHi Marc,
Here is the ABAP Code to build the SOAP header.
FUNCTION Z_GET_SOAP_REQUEST_HEADER.
*"*"Local Interface:
*" EXPORTING
*" VALUE(ER_SECURITY_ELEMENT) TYPE REF TO IF_IXML_ELEMENT
*date and time data
data: lv_sys_date like sy-datum,
lv_sys_time like sy-uzeit,
lv_year(4) type c,
lv_month(2) type c,
lv_date(2) type c,
lv_hour(2) type c,
lv_min(2) type c,
lv_sec(2) type c.
data : lv_created type string,
lv_snonce type string,
lv_b64nonce type string,
lv_webservice_password type string,
lv_webservice_userid type string,
lv_spassword type string,
lv_xpassword type xstring,
lv_hpassword type hash160x,
lv_b64password(255) type c,
lv_xpasslen type i,
lv_hpasslen type i.
*xml declartions
data : lv_sheader type string,
lv_xheader type xstring,
xml_document TYPE REF TO if_ixml_document,
xml_root TYPE REF TO if_ixml_element,
xml_element TYPE REF TO if_ixml_element,
xml_node TYPE REF TO if_ixml_node.
*get the c-link password.
CALL METHOD ZCL_CDB_SYNC_CFG_READER=>GET_USERID_PASSWORD
IMPORTING
EV_USER_ID = lv_webservice_userid
EV_PASSWORD = lv_webservice_password
*Evaluate created date time
lv_sys_date = sy-datum.
lv_sys_time = sy-uzeit.
lv_year = lv_sys_date(4).
lv_month = lv_sys_date+4(2).
lv_date = lv_sys_date+6(2).
lv_hour = lv_sys_time(2).
lv_min = lv_sys_time+2(2).
lv_sec = lv_sys_time+4(2).
CONCATENATE lv_year '-' lv_month '-' lv_date 'T' lv_hour ':' lv_min ':' lv_sec '.000Z' into lv_created.
*Create and encode the nonce
CALL FUNCTION 'GENERAL_GET_RANDOM_STRING'
EXPORTING
NUMBER_CHARS = 24
IMPORTING
RANDOM_STRING = lv_snonce.
CALL METHOD cl_http_utility=>ENCODE_BASE64
EXPORTING
UNENCODED = lv_snonce
RECEIVING
ENCODED = lv_b64nonce.
*create the password to be sent to web service
CONCATENATE lv_snonce lv_created lv_webservice_password into lv_spassword.
*encode password to xstring
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
TEXT = lv_spassword
IMPORTING
BUFFER = lv_xpassword.
lv_xpasslen = xstrlen( lv_xpassword ).
CALL FUNCTION 'CALCULATE_HASH_FOR_RAW'
EXPORTING
ALG = 'SHA1'
DATA = lv_xpassword
LENGTH = lv_xpasslen
IMPORTING
HASHX = lv_hpassword
HASHXLEN = lv_hpasslen.
CALL FUNCTION 'SCMS_BASE64_ENCODE'
EXPORTING
INPUT = lv_hpassword
INPUT_LENGTH = lv_hpasslen
IMPORTING
OUTPUT = lv_b64password
EXCEPTIONS
OUTPUT_TOO_SMALL = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* build the header
CONCATENATE
'<soap-env:Header xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">'
'<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">'
'<wsse:UsernameToken wsu:Id="########" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">'
'<wsse:Username>'
lv_webservice_userid
'</wsse:Username>'
'<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">'
lv_b64password
'</wsse:Password>'
'<wsse:Nonce>'
lv_b64nonce
'</wsse:Nonce>'
'<wsu:Created>'
lv_created
'</wsu:Created>'
'</wsse:UsernameToken>'
'</wsse:Security>'
'</soap-env:Header>'
INTO lv_sheader.
*Build the xml header element
lv_xheader = cl_proxy_service=>cstring2xstring( lv_sheader ).
TRY.
CALL FUNCTION 'SDIXML_XML_TO_DOM'
EXPORTING
xml = lv_xheader
IMPORTING
document = xml_document
EXCEPTIONS
invalid_input = 1
OTHERS = 2.
IF sy-subrc = 0 AND NOT xml_document IS INITIAL.
xml_root = xml_document->get_root_element( ).
er_security_element ?= xml_root->get_first_child( ).
gr_soap_security_header = er_security_element.
ENDIF.
CATCH cx_ai_system_fault .
ENDTRY.
ENDFUNCTION. -
Consuming Web Service from ABAP Web Dynpro
I have written program to consume KM Web Service through ABAP as well as ABAP Dynpro in SAP R/3 by calling Consumer Proxy.
When I run the program from SE38, it prompts me for user-id & password. If I pass KM Server user-id and password I am able to execute the web service successfully.
However, while I execute the same code through Web Dyn-pro , it does not ask for user-id and password & terminates with CX_AI_SYSTEM_FAULT : SOAP:1,007 SRT: Unsupported xstream found: ("HTTP Code 401 : Unauthorized")
I have created a Logical Port in R/3 & I am using this Logical Port while creating an Object of Consumer Proxy.
Kindly let me know how to resolve this issue.The dialog that is produced by HTTP Destination object of the logical port is designed only for use within Classic Dynpro applications. There is no prompt produced when running in Web Dynpro. If possible assign a generic user within the logical port definition and this will be used automatically by all users.
-
Unallowed RFC-XML Tag (SOAP_EINVALDOC) - Web Service using ABAP Proxy
Hi there
I am trying to consume a Web Service using ABAP Proxies. I have done the following in the system:
I configured the HTTP and HTTPS Proxy settings.
I created a package with package interfaces SAI_TOOLS and SAPPINT included under the Use Access tab.
I created the proxy classes by using the WSDL provided by the system I'm trying to interface with.
I created my HTTP destination RFC via SM59.
I configured a logical port for the proxy.
I developed the ABAP code for calling the proxy.
In the code the exception CX_AI_SYSTEM_FAULT gets raised with error message <b>"Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b> when I call the method for passing data to the destination system in the proxy class.
I had a look at SM21 and the following message was written in the log:
<b>"SOAP Runtime: SOAP Runtime exception: 111 occurred in method XP_READ_TAG of class CL_SOAP_XP at position 1
SOAP Runtime: Exception message: Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b>. I also looked at SAP Note 919886 which states that it can be dumps in the system, missing configuration or the path prefix of the RFC destination that is incorrect. I cannot find any ST22 entries. The trace file looks as follows:
SAP System ID: DGH
Client: 009
User: COLESKG
System time: 072910
System date: 20070531
SAP Release: 700
Host: hd307c
Operating system: AIX
DB System: ORACLE
Program: ZUK_IPA00003
Processing State: 0
Location: Client
Transport Binding: http://schemas.xmlsoap.org/soap/http
SOAP Application: urn:sap-com:soap:runtime:application:client
SOAP Runtime Protocol: http://www.sap.com/webas/630/soap
/runtime/protocol
SOAP Protocols: <initial>
Request Message: <initial>
Response Message: <initial>
Fault: <initial>
Registry: <initial>
SOAP Roles: <initial>
Trace Level: 3
Logging Level: 2
Monitoring Level: 0
Security Profile: <initial>
WS Security Protocol: <initial>
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to create client application for Proxyclass:
ZES_CO_PROCESS_EMPLOYEE_BATCH LP name: DEFAULT
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application created
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to initialize client application
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Try to initialize application
urn:sap-com:soap:runtime:application:client
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new runtime CL_SOAP_RUNTIME_CLIENT
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Try to register application
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Application registered
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Read type of transport binding from
configuration
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new transport binding type
http://schemas.xmlsoap.org/soap/http
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() Try to initialize
http://schemas.xmlsoap.org/soap/http
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() http://schemas.xmlsoap
.org/soap/http initialized
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Try to create request message
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Request message created
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Try to create response message
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Response message
created
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Try to initialize
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Check transport binding
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Create runtime protocol
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Runtime-intrinsic
Protocol as SENDER with Priority 5
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create trace header/part
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Trace header/part created
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create logging header/part
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Logging header/part created
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT()
Initialized
INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
Try to create instance for http://www.sap.com/webas/630/soap
/runtime/session/protocol::http://www.sap.com/webas/630/soap
/runtime/session/protocol/srt640_impl
INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
Instance of CL_SOAP_SESSION_PROTOCOL created for http://www.sap.com/webas/630/soap/runtime/session/protocol::http://www.sap.com/webas/630/soap/runtime/session/protocol/srt640_impl
INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Session Protocol
as SENDER with Priority 5
INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Try to configure features
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() Try to
create ICF Client for DESTINATION = ALSB
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() ICF
Client created by DESTINATION
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_DESTINATION_URL_PATH() Set
DESTINATION PATH = /SapHRSmartIntegrationWeb/processes/ProcessEmployeeBatch.jpd
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Features configured
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Application urn:sap-com:soap
:runtime:application:client initialized
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application initialized
Trace file opened at 20070531 073030 GMT SAP-REL 700,0,95
Error in module XMLParserGetNextElement:773
Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfcpars.c#2 $
Unallowed RFC-XML Tag
Error in module XMLConverterReadTag:3061
Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfccnvrt.c#5 $
Unallowed RFC-XML Tag(24)
Error in module ab_soap:4392
Id @(#) $Id: //bas/700_REL/src/krn/rfc/abxrfccal.c#2 $
failed with return code 1
It then must be something in the config. Has anyone got any idea why this message is encountered?
Kind Regards
Gustav Coleske
Message was edited by:
Gustav ColeskeHi,
I have the same problem as described.
Can you give me a little more information about the error you have solved in the proxy.
Thanks for help
John -
Problem with consuming web service from abap
Hello,
I want to consume this web service VatatWebService Web Service From SAP.
The transaction code soamanager doesn't exist in our system, i'm the only man who use SAP in our company(we don't have BC peoples....).
I find some advice to use "wsadmin" and "lpconfig", but i do not know the step: wish data i have to fill in in tcode "wsadmin" or "lpconfig".
I'm very new in this case...
Is there any doc showing the step to consume a web service?
Thank u very match.
OuailHi,
Have you tried to search using that magical tool called Google? If I search for "SAP LPConfig" I get lots of promising looking answers:
You could also try searching help.sap.com
I appreciate you are new but one of the best skills you can learn in the world of SAP is how to search out and find information, so you aren't dependant upon SCN and/or others to help you when you get stuck.
Cheers,
G. -
Windows authentification while consuming web service from ABAP
Hi All,
We are consuming web service from ABAP, we have created client proxy in SE80 and configured logical port in LPCONFIG.
This one was working fine. Now we have added windows user authentification to access this service.
Now when I'm trying to regenerate this proxy in R/3 it is asking for user and password. When I enter these details this one is not working.
If I access this service direcly from internet explorer and I enter same user and password then I would able to access this service.
Could you please let me know how to handle this.
Regards
VikramThe dialog that is produced by HTTP Destination object of the logical port is designed only for use within Classic Dynpro applications. There is no prompt produced when running in Web Dynpro. If possible assign a generic user within the logical port definition and this will be used automatically by all users.
-
Consume web service in ABAP proxy with SOAP header
Hi Thomas ,
I am trying to consume web service in ABAP . I have followed the procedure from one of your web blog <a href="/people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap a Developer's Journal Part XIV - Consuming WebServices with ABAP</a> . (640 release).
I need to pass SOAP header along with SOAP body. As you mentioned I have used if_wsprotocol_ws_header interface to pass header but it is still failing.
Please see below code and please give some direction to fix the issue.
1.Create ABAP proxy for WSDL (http://ws.strikeiron.com/SwanandMokashi/StockQuotes?WSDL). It has created structures only for SOAP body.
2.Create Logical port
3.Create following program to call proxy
REPORT zproxy.
DATA: ref_stock TYPE REF TO zzco_stock_quotes_soap ,
ws_header TYPE REF TO if_wsprotocol_ws_header,
name TYPE string,
namespace TYPE string.
TRY.
CREATE OBJECT ref_stock
get WS_HEADER protocol
ws_header ?= ref_stock->get_protocol('IF_WSPROTOCOL_WS_HEADER').
set somehow header as iXML-DOM tree
DATA: ixml TYPE REF TO if_ixml,
xml_document TYPE REF TO if_ixml_document,
xml_root TYPE REF TO if_ixml_element,
xml_element TYPE REF TO if_ixml_element,
xml_node TYPE REF TO if_ixml_node.
DATA l_xstring TYPE xstring.
DATA l_string TYPE string.
FIELD-SYMBOLS <fs_xstring> TYPE xstring.
Additional Header:
CONCATENATE
'<soap:Header>'
'<s1:LicenseInfo xmlns:s1="http://ws.strikeiron.com">'
'<s1:RegisteredUser>'
'<s1:UserID>[email protected]</s1:UserID>'
'<s1:Password>aaaaaaaa</s1:Password>'
'</s1:RegisteredUser></s1:LicenseInfo>'
'</soap:Header>' INTO l_string.
convert to xstring
l_xstring = cl_proxy_service=>cstring2xstring( l_string ).
IF NOT l_string IS INITIAL.
create iXML DOM document from XML xstring
CALL FUNCTION 'SDIXML_XML_TO_DOM'
EXPORTING
xml = l_xstring
IMPORTING
document = xml_document
EXCEPTIONS
invalid_input = 1
OTHERS = 2.
IF sy-subrc = 0 AND NOT xml_document IS INITIAL.
xml_root = xml_document->get_root_element( ).
xml_element ?= xml_root->get_first_child( ).
add header element by element to SOAP header
WHILE NOT xml_element IS INITIAL.
name = xml_element->get_name( ).
namespace = 'http://swanandmokashi.com' . "xml_element->get_namespace_uri( ).
IF NOT xml_element IS INITIAL.
ENDIF.
ws_header->set_request_header(
name = name
namespace = namespace
dom = xml_element ).
xml_element ?= xml_element->get_next( ).
ENDWHILE.
ENDIF.
ENDIF.
CATCH cx_ai_system_fault .
ENDTRY.
*Call soap body using abap proxy class.
DATA: get_quotes TYPE zzget_quotes_soap_out .
DATA: get_quotes1 TYPE zzget_quotes_soap_in .
get_quotes1-quote_ticker = 'GE'.
TRY.
CALL METHOD ref_stock->get_stock_quotes
EXPORTING
get_quotes1 = get_quotes1
IMPORTING
get_quotes = get_quotes.
CATCH cx_ai_system_fault .
CATCH cx_ai_application_fault .
ENDTRY.
4.It is throwing cx_ai_system_fault error.
SOAP details:
Input:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding" >
<soap:Header>
<s1:LicenseInfo xmlns:s1="http://ws.strikeiron.com">
<s1:RegisteredUser>
<s1:UserID>[email protected]</s1:UserID>
<s1:Password>aaaaaaaa</s1:Password>
</s1:RegisteredUser>
</s1:LicenseInfo>
</soap:Header>
<soap:Body>
<tns:GetQuotes xmlns:tns="http://swanandmokashi.com">
<tns:QuoteTicker>GE</tns:QuoteTicker>
</tns:GetQuotes>
</soap:Body>
</soap:Envelope>
Thanks,
Kavitha.Hi ,
Thank you for the response. Did you passed user email and password ([email protected] /aaaaaaaa) part of licenseinfo->resisteredUser along with Quoteticker GE in analyzer?
<a href="http://www.strikeiron.com/Analyzer/OnlineAnalyzer.aspx?WSDL=http://ws.strikeiron.com/SwanandMokashi/StockQuotes?WSDL">ANALYZER</a>
Thanks,
Kavitha.
Maybe you are looking for
-
Error on install of 125136-18 and 125137-18 on jdk-6u16 on Solaris 9 and 10
We have jdk-6u16 installed on Solaris 9/10 (sparc and sparcv9). When trying to install the patches to update to 6u17 (125136-18 and 125137-18) the patches error with the following below, and leave SUNWj6cfg and SUNWj6rtx in I-Lock status. Any suggest
-
PSE 6 for Mac: Only have one shape in the Cookie Cutter tool
I just installed PSE 6 for Mac and am getting familiar with it. When I tried to use the Cookie Cutter tool, I have no choices (no black arrow next to the star in the toolbar) and it always is a 'heart' (cute, but was hoping for more choices). Any sug
-
Hard Drive Dead? Help!
Hi, so I recently bought an enclosure for my old HD that died out on me, I suppose? My mac was asleep, then I pressed any button on the computer to wake it up, then I clicked on Mail right away, and it froze for a while.. so I held the power down to
-
Emergency - Clip Disappeared from Drive
I've just had a clip go offline in a project and it seems to have disappeared from the drive. I'm using a G5 2.5Ghz running OSX 10.4.8 and FCStudio 5.1.2. I have FCP on the A drive and use the internal B drive as a capture scratch. Everything was fin
-
How to view an image @ 100% ?
When I do some editing in iPhoto, especially sharpening, I'd like to see it @100%. There is no indication at what % I'm viewing the image. Is there any way to know that ? When clicking "edit" on the bottom, at what size the image opens? Thanks!