cancel
Showing results for 
Search instead for 
Did you mean: 

External WS Consumption Issue

Former Member
0 Kudos

Dear,

I’m trying to call an external webservice in an ABAP system (ECC 6.0). I created a Client Proxy using the WSDL file of the webservice, and then made a function module to test it. Unfortunately there is an error message.

The error message from “testing function module”:

"Unexpected element -el=HEAD ns="

No error from “SMICM”.

The error message from “SM21”:

"SOAP Runtime: SOAP Runtime exception: 14 occurred in method GET_METHOD of class CL_SOAP_MESSAGE_11 at p osition 1"

"SOAP Runtime: Exception message: Unexpected element -el=HEAD ns="

BUT this webservice works very well in our Java test environment "J2EE Engine Start Page"/"Web Service Navigator".

Do you have any idea about this error? (We think that this error may be due to the limitation of ABAP, because it works in JAVA. E.g. maybe the structures that have been generated on the ABAP side to not have the correct data type, as we got the warning message "The XSD type long does not exactly correspond to the ABAP type INT4", "The XSD type decimal does not exactly correspond to the ABAP type STRING")

Thanks in advance!

Sincerely yours,

Lisu

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi,

This is a system exception

As I got earlier: system exception occured Unallowed RFC-XML Tag (SOAP_EINVALDOC)

It happens when in ur RFC destination, on Logon Security Tab, you select "No Logon".

OR

The user id or pwd is wrong.

You can resolve this issue by selecting "Basic Authentication" radio button and by providing correct user id & pwd.

Regards

Pushkar

Message was edited by:

Pushkar Anand

Former Member
0 Kudos

Hi Pushkar,

I have select "basic authentication" and set the logon user id&pwd there. I got a success msg when I test the RFC destination, but when I test the Client Proxy, the error msg "Unallowed RFC-XML Tag (SOAP_EINVALDOC)" is still there.

BTW, this is the logon to our local system, not the destination system, right?

Thanks!

Lisu

nilayghosh
Active Participant
0 Kudos

Hi Lisu,

Please check the thread It talks about a similar kind of error that you are facing. You might get some clue.

You can also refer to http://help.sap.com/saphelp_nw04/helpdata/en/de/705c3c3806af06e10000000a11402f/content.htm for relevant mapping between XSD and ABAP.

Also please check the SAP help section "Consuming Web Service" subsection in the link http://help.sap.com/saphelp_erp2005/helpdata/en/d6/f9bc3d52f39d33e10000000a11405a/frameset.htm.

Regards

Nilay

Former Member
0 Kudos

Hi Nilay,

Thanks for you links. But we try not to use either XI or JAVA development. We try to create a Client Proxy (under Enterprise Service) to call an external webservice in pure ABAP system (ECC 6.0).

Do you have any idea about error "Unexpected element -el=HEAD ns="? is it due to the wrong Client Proxy Setting (in trx "SICF") ?

Thanks!

Lisu

Former Member
0 Kudos

hi lisu,

it can be solved by not configuring the URL of the service in LPCONFIG directly but instead by creating a SM59 destination (type G) and setting this SM59 destination as 'HTTP destination' in LPCONFIG.

regards, anton

Former Member
0 Kudos

Hi, Anton,

It helps !!

Now the error message changes to "Unallowed RFC-XML Tag (SOAP_EINVALDOC)". Do you have any idea about this?

Thanks!

Lisu

Former Member
0 Kudos

some are fast but not always right.

the authentication problem can only occur if the service requires authentication at all...

anyway, there's a SAP note, 919886, which explains possible causes.

one cause, often occuring, are wrong path prefix settings in SM59.

try different combinations of target machine & path prefix

in your example I'd expect

target machine: 158.166.45.177

service no.:7001

path prefix: /abacService/GetCommitments

to work.

regards, anton

Message was edited by:

Anton Wenzelhuemer

Former Member
0 Kudos

Hi Anton,

With prefix "/abacService/GetCommitments", it failed in the RFC destination connection test, error msg is "status http response: 404", "status text: not found". I also tried prefix "ping", and got the same error msg.

In the note your mentioned, the other possibilities of error "Unallowed RFC-XML Tag" are both from the provider side, but I don't think there is anything wrong with my WSDL provider, because if I test the WS directly through URL(http://158.166.45.177:7001/abacService/GetCommitments), it works well.

Thanks!

Lisu

Former Member
0 Kudos

Hi Lisu,

I have created a similar scenario.

But, I did not provide any thing in path prefix.

Well, when we create a logical port using LPCONFIG, in call parameters, you can specify the http destination as ur RFC destination and below that you provide

"/abacService/GetCommitments" as path suffix.

Regards

Pushkar

Message was edited by:

Pushkar Anand

Former Member
0 Kudos

Hi all,

Thanks for your replies.

There is some change, and we decide not to use Proxy Settings. And I opened a new thread talking about the current error message "ICF error: http communication failure".

Grz,

Lisu

Former Member
0 Kudos

Hi Lisu,

could you please paste the WSDL content over here.

Regards

Pushkar

Former Member
0 Kudos

Hi Pushkar,

the WSDL content is:

<?xml version="1.0" encoding="UTF-8" ?>

- <definitions name="CommitmentServiceDefinitions" targetNamespace="http://cec/budg/webservices" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:s0="java:cec.budg.webservices" xmlns:s1="http://cec/budg/webservices" xmlns:s2="http://schemas.xmlsoap.org/wsdl/soap/">

- <types>

- <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="java:cec.budg.webservices" xmlns:s0="java:cec.budg.webservices" xmlns:s1="http://cec/budg/webservices" xmlns:s2="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema">

- <xs:complexType name="CommitmentSearchCriteria">

- <xs:sequence>

<xs:element minOccurs="1" name="BlockSize" nillable="false" type="xs:int" />

<xs:element minOccurs="1" name="StartIndex" nillable="false" type="xs:int" />

<xs:element minOccurs="1" name="CentralKey" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="LocalKey" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="UserReference" nillable="true" type="xs:string" />

</xs:sequence>

</xs:complexType>

- <xs:complexType name="CommitmentResultList">

- <xs:sequence>

<xs:element maxOccurs="unbounded" minOccurs="0" name="Commitments" nillable="true" type="java:CommitmentHeader" xmlns:java="java:cec.budg.webservices.model" />

<xs:element minOccurs="1" name="CurrentIndex" nillable="false" type="xs:int" />

<xs:element minOccurs="1" name="FullRowCount" nillable="false" type="xs:int" />

</xs:sequence>

</xs:complexType>

</xs:schema>

- <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="java:cec.budg.webservices.model" xmlns:s0="java:cec.budg.webservices" xmlns:s1="http://cec/budg/webservices" xmlns:s2="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema">

- <xs:complexType name="CommitmentHeader">

- <xs:annotation>

<xs:documentation>Value object for CommitmentHeader.</xs:documentation>

</xs:annotation>

- <xs:sequence>

<xs:element minOccurs="1" name="BudgetManagementTypeCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="CommitmentClassCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="CommitmentTypeCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="ConsumingL1ReasonJustCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="ConsumingL1ReasonRuleCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="CurrencyCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="CurrentTreeCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="Id" nillable="true" type="xs:long" />

<xs:element minOccurs="1" name="LocalObjectForeignId" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="LocalSystemCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="PaymentClassCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="Remarks" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="ResponsibleDgCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="ResponsibleOrganisationId" nillable="true" type="xs:long" />

<xs:element minOccurs="1" name="ResponsibleUnitCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="Title" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="TransactionAreaCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="TransactionTypeCode" nillable="true" type="xs:string" />

<xs:element maxOccurs="unbounded" minOccurs="0" name="Details" nillable="true" type="java:CommitmentDetail" xmlns:java="java:cec.budg.webservices.model" />

</xs:sequence>

</xs:complexType>

- <xs:complexType name="CommitmentDetail">

- <xs:annotation>

<xs:documentation>Value object for CommitmentDetail.</xs:documentation>

</xs:annotation>

- <xs:sequence>

<xs:element minOccurs="1" name="AccountReference" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="AppropriationId" nillable="true" type="xs:long" />

<xs:element minOccurs="1" name="CommitmentAppropriationTypeCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="CommitmentHeaderId" nillable="true" type="xs:long" />

<xs:element minOccurs="1" name="CommitmentHeaderLocalObjectForeignId" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="CommitmentPositionLineNo" nillable="true" type="xs:int" />

<xs:element minOccurs="1" name="DeletedFlag" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="ExchangeRate" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="FutureOpenAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="Id" nillable="true" type="xs:long" />

<xs:element minOccurs="1" name="LocalObjectForeignId" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="LocalSystemCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="LockedFlag" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="OpenTreeFlag" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="PolicyAreaCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="PrecommitmentPositionLocalObjectForeignId" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="ExchangeBaseDate" nillable="true" type="xs:dateTime" />

<xs:element minOccurs="1" name="SpecialExchangeBaseDate" nillable="true" type="xs:dateTime" />

<xs:element minOccurs="1" name="SpecialExchangeRate" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="TotalAcceptedCurrencyAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="TotalAcceptedEcuAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="TotalAvailableCurrencyAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="TotalAvailableEcuAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="TotalConsumedCurrencyAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="TotalConsumedEcuAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="TransactionAreaCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="TransactionTypeCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="TreeCode" nillable="true" type="xs:string" />

<xs:element minOccurs="1" name="WorkflowAcceptedCurrencyAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="WorkflowAcceptedEcuAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="WorkflowConsumedCurrencyAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="WorkflowConsumedEcuAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="WorkflowPostedCurrencyAmount" nillable="true" type="xs:decimal" />

<xs:element minOccurs="1" name="WorkflowPostedEcuAmount" nillable="true" type="xs:decimal" />

</xs:sequence>

</xs:complexType>

</xs:schema>

</types>

- <message name="getCommitmentWithDetails">

<part name="criteria" type="s0:CommitmentSearchCriteria" />

</message>

- <message name="getCommitmentWithDetailsResponse">

<part name="return" type="s0:CommitmentResultList" />

</message>

- <portType name="CommitmentServicePort">

- <operation name="getCommitmentWithDetails" parameterOrder="criteria">

<input message="s1:getCommitmentWithDetails" />

<output message="s1:getCommitmentWithDetailsResponse" />

</operation>

</portType>

- <binding name="CommitmentServiceSoapBinding" type="s1:CommitmentServicePort">

<s2:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />

- <operation name="getCommitmentWithDetails">

<s2:operation soapAction="" style="rpc" />

- <input>

<s2:body namespace="http://cec/budg/webservices" parts="criteria" use="literal" />

</input>

- <output>

<s2:body namespace="http://cec/budg/webservices" parts="return" use="literal" />

</output>

</operation>

</binding>

- <service name="CommitmentService">

- <port binding="s1:CommitmentServiceSoapBinding" name="CommitmentServicePort">

<s2:address location="http://158.166.45.177:7001/abacService/GetCommitments" />

</port>

</service>

</definitions>