cancel
Showing results for 
Search instead for 
Did you mean: 

Exporting and importing web service end points

monika_eggers
Active Participant
0 Kudos

We want to be able to export and import web service end points.

Use cases, in case you are interested:

  • We have web service end points in client 100. They get called from a Visual Composer application. We make a full client copy from 100 to 101 as a back-up. We test some stuff that cannot be undone in client 100. It goes wrong. We copy back client 101 to 100. All data is back to the previous state ... except the web service end points. Apparently they are simply not copied in client copies at all, which probably makes sense. So we need to export them before and import them again in the end. Having to manually recreate them is effort, and worse it requires adjusting the callers.
  • We have several identical copies of a landscape, running in fenced virtual machines as linked clones, which means they also have the same host names. We try something in one landscape that involves the creation of web service end points. We can copy most content from one landscape to the other, e.g. enterprise service defintions from the ESR can be exported as files, the implementation (ABAP coding) of enterprise services can be taken over as transport requests (K and R files) and for Visual Composer applications we can upload export the workspace and upload it to a different server. Just the web service end points can only be taken over by manual recreation.

Search in SCN and on help.sap.com brings up nothing, I guess that there simply is no way of exporting web service end points, because our use cases are not so typical, and in most landscapes it does not make sense to transfer web service end points to another server, as it would have a different host name.

So we want to code our own export/import mechanism. Can someone give me some clues how to start? In which table (or across which tables) are web service end points stored? Which functions or class methods exist for reading or writing web service end points?

Monika.

Accepted Solutions (1)

Accepted Solutions (1)

ttrapp
Active Contributor

Hi Monika,

what is your problem? Either that web service endpoints are copied in a client copy or are web service endpoints destroyed after you copied them back?

Why do you work with client copy? If you have a virtualized landscape I would just take a snapshot of a system and simply restore the snapshot.

Which NetWeaver release are you using? Did you try to use mass maintenance functions of SOAMANAGER?

Best Regards

Tobias

monika_eggers
Active Participant
0 Kudos

The problem was that the end points were destroyed after copying back.

The client copy solution was in a different landscape. We are not using that approach much anymore, it's just where I ran into the problem first.

NetWeaver release: Various, we have systems with NW 7.02, NW 7.11 and NW 7.31. Currently the problem at hand is on NW 7.11.

I have not used the mass maintenance function. Does this provide similar functionalities? I have to try this, thanks.

Monika.

ttrapp
Active Contributor
0 Kudos

Hi Monika,

here is the link to SAP Library: http://help.sap.com/saphelp_nwpi71/helpdata/en/55/6a6530058242db80bbf98d4e5618f1/frameset.htm Hope this helps.

Best Regards,
Tobias

P.S.: I try to avoid these problems by working with a service registry (f.e. PI) although I never tested the behaviour after a client transfer: http://help.sap.com/saphelp_nwpi71/helpdata/EN/25/683fbe7e01407cb20995d10d71c895/frameset.htm

Former Member
0 Kudos

Hi Monika,

Unless I've misunderstood your issue...I personally can't understand how using a services registry would resolve your issue.

The most important thing to understand that service endpoints are client-dependant & are not transportable by design. One of the main reasons is as you've mentioned, the change in host names and a lot of the times the clients are different in the different environments too...Endpoints have to always be re-configured & one way to do that quickly is using the Mass Configuration option.

So, a client copy from 100 to 101 equates to zero endpoints in client 101 while the endpoints would still exist in 100, that is until you do a client copy from 101 back to 100. Then client 100 would have zero endpoints.

And that would also explain why the callers need to be adjusted all the time (the change between clients).

Regards, Trevor

ttrapp
Active Contributor
0 Kudos

Hi Trevor,

I agree with you - the SR wouldn't help in this case but mass configuration does and this is why I posted the link to the SAP docu.

I only wanted to say that virtualized landscapes are great but then you should try to use their advantages:

  • You can perform a snapshot of a system and restore it after a test.
  • Another option are virtualized test landscapes - SR can make the gouvernace easier.

Another option are existing test clients. IMHO tests with lots of client transfers are not the best solution. But in fact this is hard to decide without more information about the scenario.

Regards,

Tobias

monika_eggers
Active Participant
0 Kudos

I have read the linked documentation, but I must say I don't get it.

How I work now with single-service administration:

I want to be able to call from the CE system to the Banking Services system or from a channel application (in our case a .NET application) to the Banking Services system.

I start SOAMANAGER on the Banking Services system.

I go the single-service administration and create an end point for each relevant web service.

I copy this end point URLs and use them in CE or in a config file in the .NET application.

When the end points are lost in Banking Services due to any reason (client copies, replacing just this VM without replacing the other, ...) I go into SOAMANAGER on Banking Services again and create the end points again, then I adjust the receiver side to use the new end points.

What I would like: Being able to export the end points and import them again.

What I gather from the multiple service adminstration instructions (I use the Banking Services 8.0 version of the link, it's only slightly different

http://help.sap.com/saphelp_banking80/helpdata/en/55/6a6530058242db80bbf98d4e5618f1/frameset.htm )

I need a configuration scenario, which consists of a service group and several end points, the end points being generated automatically by applying configuration profiles to web services.

The service group is a design time object created in se80 and groups the consumer proxies.

I can't make sense of this. My consumer is not on the Banking Services. What would I put into a service gorup here?

It sounds like the configuration scenario can not only consist of the end points (provider) part, as it says "If a service definition is not active in any configuration scenario, the corresponding endpoint is deleted."

Or is it possible to configure configuration scenarios in SOAMANAGER without service group(s)?

Also, if it's possible - how does it solve my problem? Can the configuration scenario be exported and imported? Does it contain the end points? Only the service defintions and their association to the profiles? How can other systems like CE or channel applications like the .NET application call the web services - they still need to know the end points? And those would still change if the configuration scenario is reimported?

It's pretty confusing.

ttrapp
Active Contributor
0 Kudos

A Service Group is an instrument to maintain destinations of a set of client proxies - so this is exactly what you need for mass maintenance of these kinds of proxies. A Service Group is in fact a design time object but can be configured at runtime: http://help.sap.com/saphelp_nwpi71/helpdata/en/fc/3617373a02476fa25d7e58f9d3303d/content.htm

Best Regards,

Tobias

monika_eggers
Active Participant
0 Kudos

This can't be right. The instructions for the service group start with: "Prerequisite ...

At least one generated consumer proxy must be available in your ABAP system."

But the ABAP system is not consuming anything. It's only providing web services. The consumers are elsewhere, in non-ABAP systems.

(Of course there happen to be also ABAP consumer proxies in Banking Services, but none that is in any way relevant to our scenario.)

ttrapp
Active Contributor
0 Kudos

Hi Monika,

please let me quote what you have written:

I need a configuration scenario, which consists of a service group and several end points,

You started to about service groups and I concluded that you talking about client proxies this time.

This can't be right. The instructions for the service group start with: "Prerequisite ...

At least one generated consumer proxy must be available in your ABAP system."

Again: you started to write about service consumers (=client proxies). I remarked that service groups are not only design time objects - there is the feature of runtime configuration.

In my answer above I gave you the link to Configuring Multiple Service Providers. It seems to me that you didn't follow the link and started search this information by yourself and found the feature of service groups which is something different. I recommend mass maintenance of service providers.

Best Regards,

Tobias

Best Regards,

Tobias

monika_eggers
Active Participant
0 Kudos

No, see my above post again. I went to the link you provided. It describes mass service maintenance on a PI system. But I use SOA Manager on the ABAP back-end system (which is a Banking Services 8 system), so I called up the equivalent link for banking80 instead of nwpi71: http://help.sap.com/saphelp_banking80/helpdata/en/18/f1ce3164be472385d4aae0bd86e8fd/content.htm It looks very similar, but not 100%. There it mentions service groups as part of the creation of the configuration scenario.

Creating the integration scenario seems to be the same as mass service maintenance? It doesn't show on the picture which part is the "configuration scenario", but it starts to talk about configuration scenarios right away.

Does it make sense to try and create the configuration scenario in SOA Manager (?) on the PI system? Not really, does it? I can't create web service end points on the Banking Service system if I am in the PI system?

/edit: Actually your link http://help.sap.com/saphelp_nwpi71/helpdata/en/18/f1ce3164be472385d4aae0bd86e8fd/content.htm also mentions Service Groups. Are they an optional part?

ttrapp
Active Contributor
0 Kudos

Hi Monika,

it is indeed confusing that AS ABAP and PI share same software components. I made the experience that PI docu is better sometimes. Please remark that the link above shows docu "Application Development in ABAP" is not PI specific. You mentioned a NW 7.11 system and I the document should be appropriate.

I think the following link to NW docu should be the same: http://help.sap.com/saphelp_nw70ehp2/helpdata/EN/c1/54dae3daa84deda5ba3de46425832f/frameset.htm But this is 7.02 which is not exactly 7.11 you mentioned earlier.

Please forget about Service Groups in this scenario cause with service groups you configure client proxy calls.

Best Regards,

Tobias

monika_eggers
Active Participant
0 Kudos

Ah, now I see.

While Banking Services 8 runs on Netweaver 7.11, the link at nwpi71 still did not apply completely. Under "Business Scenario Communication" it described a wizard, which is not there. Apparently this wizard was removed between NW 7.10 and NW 7.11 ... when I change the URL to nwpi711 instead of nwpi71 then it does not speak of the wizard anymore.

Okay, I hope I got this right now: I still do the configuration in SOAMANAGER on the ABAP back-end system. I create a configuration scenario. There I leave the service group configuration parts empty. I just add web service interface definitions and apply configuration profiles to them.

This then creates the end points for all of the service interfaces, right?

Is this configuration scenario exportable/importable?

I guess exporting/importing it will only export/import the web service interface definitions and the configuration profiles, but not the actual web service end points? So when I import it on another system it will create different web service end points?

So this still means I need to adjust the consumer side with all the individual web service end points that it needs to call?

ttrapp
Active Contributor
0 Kudos

This then creates the end points for all of the service interfaces, right?

Yes.

Is this configuration scenario exportable/importable?

Unfortunately there is no export mechanism.

I guess exporting/importing it will only export/import the web service interface definitions and the configuration profiles, but not the actual web service end points? So when I import it on another system it will create different web service end points?

Yes. The mass maintenance can make it simpler but I you'll have to do the configuration again.

So this still means I need to adjust the consumer side with all the individual web service end points that it needs to call?

No necessarily. In case of the client transfer the mass configuration with SOAMANAGER will create some ICF nodes (the same as before) and there are good chances that the web web service endpoint is the same. Just try it out.

But what happens if the client (= the composite app) has to be configured again? In fact for composite apps there is the concept of service groups, too: http://scn.sap.com/docs/DOC-3793 If the composite app is well designed the client configuration should be very easy. So you can use mass maintenance for the server and service groups for the client. But check the prerequistes: it may be possible that service groups at the client side require a Service Registry (in fact they do at the server side).

Former Member
0 Kudos

Hi Tobias, Monika,

note that SOAMANAGER generates GUID into the WSDL URL's, which will differ every time you generate them.

We use scenario configuration to enable the services that are required for a scenario / application without need to maintain them one by one. This makes especially sense for our demo systems with several thousand ectivated and configured services.

Regards - Oliver

monika_eggers
Active Participant
0 Kudos

Okay, while I definitely learned something useful here, I feel it doesn't really solve my problem, so I want to get back to my original question:

* In which table[s] are web service end points stored?

* Which functions or class methods exist for reading or writing web service end points?

Former Member
0 Kudos

Hi Monika,

You find the endpoint URL's created by SOAMANAGER in an XML file, which you can view via http://localhost:port/sap/bc/srt/wsil?sap-client=<xxx>. All SICF Nodes are stored in the table ICFSERVLOC. But this table is not transportable (see http://scn.sap.com/thread/1440131).

Besides SOAMANAGER you can have a look into the depricated TA's WSADMIN and WSCONFIG to see how enpoints are handled.

I hope this helps. Regards,

Oliver

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Monika,

Please  check the documentation that Tobias already pointed out. We use mass configuration of service endpoints with SOAMANAGER  in the ES Workplace systems. We publish them to a Services Registry to have them available at a central location.

Regads,
Oliver