cancel
Showing results for 
Search instead for 
Did you mean: 

BLS transaction as WS and creditential

olivier_thiry
Participant
0 Kudos

Hello,

We created a BLS transaction exposed as webservice. We have issue regarding the authentification.

First, as test, we wanted to use the Runner with a call which will be like this :

http://<server>:<port>XMII/Runner?Transaction=OurTransaction&message=<?xml%20version="1.0"%20encodin...

If we copy/paste this url in a browser, it's working fine... But the external system try to call it, it receives as response the HTML logon page...

As test, we tried also using MII workbench with a HTTP post action, same result...

How can we handle this ? Is there some settings which should be set at NW level ? Or in MII ? Another way to authentificate than passing loging info into URL (not really safe) ?

We are using MII 12.1.5.

Thanks

Edited by: Olivier Thiry on Mar 18, 2011 9:48 AM

Accepted Solutions (0)

Answers (1)

Answers (1)

olivier_thiry
Participant
0 Kudos

I think I found the solution, changing the url with this :

http://<server>:<port>XMII/Runner?Transaction=OurTransaction&message=<?xml%20version="1.0"%20encodin...

so using j_user and j_password...

But second question, how can we avoid to pass user/password in URL ? Knowing this webservice will be called by an external non SAP system...

Thanks

jcgood25
Active Contributor
0 Kudos

If your TRX is to be consumed as a web service, then why not call it that way? Without a valid user session, calling the TRX using the Runner servlet will need the user/pwd in the URL, so calling it with WSDLGen should be the preferred method.

http://help.sap.com/saphelp_mii121/helpdata/en/44/847b251e4355cee10000000a1553f6/frameset.htm

olivier_thiry
Participant
0 Kudos

Hi Jeremy,

The reason is simple, the parameters (in and out) are xml messages with different structures... And for this kind of WS, we can only use the Runner, not the "normal" approach.

Anyway, it's working passing the creditentials in the URL, but we still looking for a safer way... So if somebody knows how to achieve that, comments are welcome.

former_member4529
Active Contributor
0 Kudos

Hi,

You can actually use XML in Input or Output of BLS and can call it as a webservice. To enable the XML structure of BLS properties available in the generated WSDL you need to specify the XSD providing the XML structure while defining the XML property in BLS.

However you can also call BLS using Runner by HTTP GET or POST from any programming languages where you can use BASIC authentication. In that way you don't need to pass the credentials in the Runner URL but use that while creating the session using BASIC authentication just before the HTTP call to Runner.

Thanks,

Dipankar

jcgood25
Active Contributor
0 Kudos

There is no 'free pass' or way to bypass the authentication, so in the absence of a valid NW session you will need to continue using credentials, but you should also add &Session=false to the URL so you do not fill up the user session allocations.

Former Member
0 Kudos

Hi Olivier,

it seems like you are also having problems with calling a transaction that has XML inputs as a WebService.

Dipankar is giving me some help on how to do this, but I'm still strugling to get it to work properly.

Please check this thread:

From what I've looked around, it seems that having XML inputs in a transaction to be called as a web service is something that a lot of people avoid or just find ways around it. To me, this should be a very straight forward solution since this is just basic XML structure, but it seems that MII still needs some improvements in that matter...