cancel
Showing results for 
Search instead for 
Did you mean: 

Call Sharepoint Web Service

Former Member
0 Kudos

I am attempting to consume a Microsoft Sharepoint 2007 web service from within SAP (NW04)

The suggested method for consuming a web service that is external to SAP is to use SE80 and then Create->Enterprise Service/Web Servic->Proxy Object

however when I try to do this, I get an error:

<b>Proxy generation terminated: "mixed content" not supported</b>

The long text gives the additional:

<b>You used so-called "mixed content" in the interface description.

This means that the attribute mixed="true" was set for <complexType> or <complexContent>.

...

A feature of this type cannot be mapped by the proxy generation.</b>

How do I execute a web service that has complex types in its definition?

The web service that I am trying to execute will return an xml file, which I will then parse to get the values that I need, but at the moment, I can't work out how to execute the web service.

Any assistance on this would be appreciated.

Thanks in advance

Richard

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi l

Here is another challenge to consume a sharepoint webservice from abap side:

Im planning to consume the sharepoint web service UpdateListItems with own adjusted wsdl for proxy usage, using the complex WSDL provided from sharepoint isn't possible because of type complex.

After checking wsdl structure with abap RSSIDL_DESERIALIZE_DEMO this error occured:

- <soap:Fault>

<faultcode>soap:Server</faultcode>

<faultstring>SIDL/SLIB Exception</faultstring>

- <detail xmlns:slibfault="http://xml.sap.com/2005/11/esi/slib/fault/">

<slibfault:timestamp>Thu, 23 Sep 2010 16:17:50 GMT</slibfault:timestamp>

- <slibfault:exception>

<slibfault:text>Incorrect value: Unknown Namespace http://microsoft.com/wsdl/types/</slibfault:text>;

<slibfault:position program="CL_SXSDS_DESERIALIZER=========CP" include="CL_SXSDS_DESERIALIZER=========CM00G" line="53" />

</slibfault:exception>

</detail>

Any Ideas how to fix namespace problem with microsoft.com/wsdl/types ?

Thanks a lot for help.

Steffen

former_member954801
Participant
0 Kudos

Hi Steffen,

Did you figured out the solution for your issue, currently I am facing similar one. Greatly appreciated your inputs.

Cheers,

Bob

Former Member
0 Kudos

Hi bobby,

To take data from sharepoint into sap , i have to create web service consumer proxy along with logical port , right ?

former_member38077
Participant
0 Kudos

Hi there,

did anybody succeed in getting sharepoint lists into SAP?

Some details would be nice.

Regards, Thomas

Former Member
0 Kudos

Hi Richard

reg: CALL WEBSERVICE IN SHAREPOINT FROM ABAP PROXY

I am trying to call an Web service from ABAP (through the SE80 proxy). The webservice comes from Sharepoint

but is prompting be for a username and password ?

Where comes this user from ? - I have tryed my Windows/sharepoint and SAP username and password - but nothing works.

Did any have this kind of issue ??

best regards

Lars

Former Member
0 Kudos

Hi lara,

Please can you breif what exactly you are doing?

Are you using ES Explorer for .net webservice to publish in CE 7.1 Service Registry?If not you can check this...you publish in CE Service Registry and test the service from Service Registry?

Thanks

Ravi

Former Member
0 Kudos

Hi Ravirana

I am consuming a SHAREPOINT webservice from ABAP.

So all I get is a WSDL file from the sharepoint developer, at from this I try to create a abap proxy through SE80.

But when I do thsi I get the promt for a user-name...

plz help

Lars

Former Member
0 Kudos

Hi Lars,

You need to do some logical port config work using Tcode SOAMANAGER thereafter, please refer to the guide below (in the Create the Consumer Application Section), you will see where the user & pass is applicable:

[http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d06b6392-cde7-2c10-8f8b-bdea5d781dd9?quicklink=index&overridelayout=true]

Regards, Trevor

Former Member
0 Kudos

Hi Trevor

Thanks for your help so far!

I have read the document about the SOAMANAGER - and i get an error when I do the "thing" on that is mention on page 27 in the document :

"On the newly created bottom portion of the screen, enter the authorized user to execute

the provider service, and save the configuration:"

It says :

SRT Framework exception: Error in WSDL access: Exception occurred in communication framework:Error in HTTP Framework:401Unauthorizedhttp://site/systems/accountingtreasury/segregation/_vti_bin/name/SODWebService.asmx

Is this SHAREPOINT that give this or what ?

I can see the wsdl file in my browser without any problems.

hope you can help me...

thx

Lars

Former Member
0 Kudos

Hi Lars,

It's a SharePoint issue. I'm assuming you received that user/password from someone on the SharePoint side? Speak to the person/s that provided you with the user/password & check that they have assigned that user sufficient permissions to execute the webservice.

Regards, Trevor

Former Member
0 Kudos

Thanks Trevor!

I thought so...

but are you aware WHAT kind of Auth. method the Shareport webservice should be activated for (basic, NTML or ??)

(NTLM : http://blogs.msdn.com/cgideon/archive/2006/05/18/601230.aspx)

Thank for all you help !

Lars

Former Member
0 Kudos

Hi Lars,

I'm not too clued up on the Sharepoint Auth Admin but read the thread below, it seems it needs to be set to basic auth on Sharepoint side:

[;

Regards, Trevor

avishek_gorai2
Participant
0 Kudos

Hi Lars,

Please ask the Sharepoint admins to enable Basic authentication and then give the credentials of a valid user in the Logical port that you create for the consumer proxy in SOAMANAGER. There is a 'Consumer Security' tab for logical port details this is where you have to give the user credentials.

Regards,

Avishek.

avishek_gorai2
Participant
0 Kudos

Hi,

We are actually facing a problem with the method suggested above by me for NetWeaver 7.01 SP5 which was recently upgraded to in our environmnet, where the Authentication mechanism seems to be read directly from the WSDL and is not configurable (to give Basic authentication credentials).

However this was not the case earlier or in systems which are on NW 7.0, where the solution suggested is working fine.

Does anyone have any knowledge of SAP switching to a particular version of WSDL in the latest SP's.

Regards,

Avishek.

Former Member
0 Kudos

Hi all again

Now I know what is wrong...

The Webservice in Sharepoint uses the KERBEROS authentication protocol ...

So the question is "How can I access a Sharepoint webservice from ABAP when sharepoint uses Kerberos auth. method" ?

thanks

Best regards

Lars Bregnedal

Former Member
0 Kudos

Hi Lars,

It looks like you have your work cut out for your on this one...I haven't dealt with this and it doesn't look like there is much help on SDN either. Maybe this document below might provide a start:

[http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/9099e9b5-cff9-2b10-b0ab-ca85045b4f6a?quicklink=index&overridelayout=true]

Regards, Trevor

Former Member
0 Kudos

Hi Lars,

Did you manage to get your problem resolved?

We are also working on consuming data from Sharepoint to BI.

Any idea how we can get this done?

Many thanks.

JMY

Former Member
0 Kudos

hi,

mixed content (<a href="http://www.w3schools.com/schema/schema_complex_mixed.asp">see here</a>) is simply not supported by the WSDL parser of ABAP.

It is a construct not often used nowadays and AFAIK other parsers do also have problems understanding it (e.g. java's WSDL2java).

regards, anton

Former Member
0 Kudos

Hi Anton, thanks for getting back to me.

Are you saying that it is impossible to call any web service from SAP that uses a complex type with mixed content? Or is it just that I can't use the WSDL parser?

Whilst this construct may be not as common, it is still used (eg. almost every webservice exposed in sharepoint 2007), so I would think that there must be a way of consuming them from SAP?

Thanks in advance

Former Member
0 Kudos

hi Richard,

you can't use the WSDL parser. after all, as I said before you can't call them 'with wizard support' in java either. actually, I'd wouldn't want to bet on the possibility that you can call such services with microsoft's very own tools from the second to latest generation, e.g with Infopath 2003.

Of course, practically, it is not impossible to call such services, but you have to code it 'manually' from the ground using HTTP client classes, iXML classes and so on to create the SOAP messages and parse the responses. That is - not using the SRT (SOAP runtime). But this is a pain ... for the not so experienced.

anton

PS: though I don't believe it, I might be wrong and the SRT is already able to parse such mixed content types since one of the latest patches. A customer support messages might answer that reliably.

Former Member
0 Kudos

Hi Anton - thanks very much for your reply!

I'll have to dig around and see if I can come up with anything that shows me how to do this manually.

Seems a bit strange that this is not handled by parsers - I would have thought all they would have had to do was return the xml fragment that is returned as the complex type, and then let you process it yourself. Maybe I'm missing something (quite likely I am).

Anyhow, I really appreciate you taking the time to reply!

regards

Richard

0 Kudos

HI Richard,

We have the exact same problem here.

Did you ever receive any resolution on this?

Thanks,

Chris

Former Member
0 Kudos

Hi y'all!

I've the following solution for the problem:

1. Save WSDL file on PC and change element definition from (for example)

<s:element minOccurs="0" maxOccurs="1" name="EnumValutesXMLResult">

<s:complexType mixed="true">

<s:sequence>

<s:any/>

</s:sequence>

</s:complexType>

</s:element>

to <s:element minOccurs="0" maxOccurs="1" name="EnumValutesXMLResult" type="s:string" />

Example is taken from http://cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL

2. Generate the proxy using this file.

3. In the generated service consumer definition goto "external view" tab and

set indicator "untyped mapping" for field EnumValutesXMLResult. This allows

to save XML code without deserialization.

4. Parse the string in program after calling the proxy.

Mit besseren Gruessen,

Roman