Consumer Webservice Alias for different Urls

Hello.

i have the same webservice on different SAP Systems. The binder Url is generated by SAP so i can’t change it.

http://qca.sap.jenoptik.corp:8026/sap/bc/srt/rfc/sap/zsanctionedpartylistupdatein/101/sanctionedpartylistupdatein/sanctionedpartylistupdatein_binding

http://dca.sap.jenoptik.corp:8027/sap/bc/srt/rfc/sap/zsanctionedpartylistupdatein/200/sanctionedpartylistupdatein/sanctionedpartylistupdatein_binding

Working with Webservices Aliases on IS Admin Page let me only set Host and Port. But i need to change the Url path which is different.

Passing the binder url to _url Parameter of Webservice Descriptor in a flow service does not work either. It gives me back a “[ISC.0064.9314] Authorization Required: Unauthorized”.

So now i wonder what to do:

  1. Add more binders in the wsdl manually. But how to identity or call the right one in the flow ?
  2. Pass correct binder url to Webservice Descriptor ? Can i use this together with Webservice alias for auth details ?
  3. other option ?

Thanks a lot for your input and ideas.

BR,
Sebastian

Did you try generating two consumer web service descriptor for two sap systems?

Hello.

yes. if i generate 2 ws descriptors it works.

But in this case i have to use different ws descriptors in my flow service.
They only differ in hostname, port and slightly in Url. In Url Path the client
is set.

So i thought just to have one WS descriptor and only change url at runtime.
But then i have to set Authentication manually. Software AG told me that is
not possible to use _url Parameter and webservice alias together.

Are there any workaround for dynamic url and auth at runtime for a WS descriptor ?

BR.
Sebastian

Hi Sebastian,

how do you determine on which SAP-System the WebService will be called?

Or is one of them for development and the other one for QA?

We are using property files where the complete connectivity information (URL, user, password, timeout, retry info).

Deriving from your error message most likely the two services have different user/password values.
If it is possible you can try to get these to be the same.

Which version of wM are you using?

Regards,
Holger

Hello.

i determine the type of SAP System and client called in the following manner.

Host,Port,Path,Client.

http://:/sap/bc/srt/rfc/sap/zsanctionedpartylistupdatein//sanctionedpartylistupdatein/sanctionedpartylistupdatein_binding

example:
http://qca.sap.jenoptik.corp:8026/sap/bc/srt/rfc/sap/zsanctionedpartylistupdatein/101/sanctionedpartylistupdatein/sanctionedpartylistupdatein_binding

We are using wm IS 9.6. Using property files sounds quite good.

Can you give me an example or hint how to define and how to use them in a flow service ?

BR,
Sebastian

Hi Sebastian,

the format of the URL is clear to me (even we do not use WebServices for SAP in this direction).

I meant:
In your business data there should be a criteria which identifies if message should be sent to dca or qca SAP system.

We have placed the properties files under IntegrationServer/config//properties.
This has the benefit, that IS takes a backup of these files together with its own configurations automatically on each restart to IntegrationServer/config/backup//properties.

Specify the path to the propertiesfile in WmPublic/config/fileAccessControl.cnf as readAllowPath and reload WmPublic afterwards.

After that you can load them by using pub.file:getFile and convert it to a document containing the Key/Value-Pairs from the properties file.

Assign the properties to the matching fields on the consumer call in your flow service.

Regards,
Holger

Sebastian, I did pass the URL dynamically to the binder in one of my project’s, it worked well. Make sure you are using the right credentials while passing the URL to binder.

Thanks,