cancel
Showing results for 
Search instead for 
Did you mean: 

Where are the services?

Former Member
0 Kudos

Good morning.

My landscape is made of ECC 6 with EHP3. I have enabled some communication services (ICM e.g.) and thus I can access some enterprise services from ERP through transaction SOAMANAGER. I also could enable some of those services by creating proxies for them, and even test them. For some of them, I had to activate switches, but once it was done, I could test them through WS Navigator.

My question is the following: when a search for the service create supplier, the service descriptions says:

CREATE SUPPLIER

INBOUND SERVICE OPERATION

Software Component Version SAP APPL 6.04

Technical Name SupplierERPCreateRequest_In

First released with: Shipment Release SAP APPL 6.03

According to it, that service should be listed through SOAMANAGER, shouldn´t it? Or even through SICF(/default_host/sap/bc/srt/xip/sap/) and SE85 (Enterprise Services/Service Definitions)?

How can I list the services I have installed in my landscape, and that are able to be configured to used?

Accepted Solutions (0)

Answers (3)

Answers (3)

MarkusPeter
Explorer
0 Kudos

Hello Marcelo,

I can try to briefly describe how you can "wrap" the SAP Enterprise Service in a custom, WS-RM enabled service, hoping you are a bit familiar with ESR and generating ABAP proxies.

First, you need an ESR Release 7.1 and a System Landscape Directory (SLD). If you have a SAP NetWeaver PI 7.1 up and running, or a Composition Environment, these tools should be available to you.

Next, perform the first steps as described in the [Enterprise Services Enhancement Guide|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c0bb5687-00b2-2a10-ed8f-c9af69942e5d] (section 2, 3.1 and 3.2) to get your own software component version (SWCV) based on SAP's, and ESR namespace into your ESR.

In this SWCV and ESR namespace, define a "stateless" service interface with a single, asynchronous operation. You can name interface and operation as you like. A suggestion would be to name the interface BusinessPartnerDataManagementSupplierIn and the operation SupplierERPCreateRequest_In to match the names as document on the [Enterprise Services Workplace|https://www.sdn.sap.com/irj/sdn/esworkplace].

Use the original SAP service interface's message type and fault message type as your own operation's request message type, respectively fault message type. This works best using drag and drop from ESR's navigation pane once you expanded the "Basis Objects" node, therein the namespace that contains the original SupplierERPCreateRequest_In interface, therein the "Message Types" node and the "Fault Message Types" node.

Activate your ESR changelist.

Now go to your ERP system and generate ABAP proxies for your self-defined interface. If you defined it correctly in ESR, only an ABAP OO interface, a class, and a web service definition should be generated.

The interface contains a single method only. The trick is that its input parameter and the exception it can throw are exactly of the same type as the input parameter and exception of the standard SAP service.

So all you have to do in the implementation of your proxy class' method is to create an instance of the SAP interface's proxy class and delegate the call to its main method. You don't have to copy any code from the SAP service implementation, but simply re-use it.

I guess if you manage the ESR side, the ABAP side is easy.

Hth,

Markus

MarkusPeter
Explorer
0 Kudos

Hello Marcelo,

according to its documention on the Enterprise Services Workplace, SupplierERPCreateRequest_In is an asynchronous service interface.

Unfortunalety, you don't find these in SOAMANAGER yet, since they can't be called as Web Services yet, i.e. using the standard WS-* protocols. In the asynchronous case this would essentially mean WS-RM. The only exception from this rule would be the service interfaces offered by SAP's Financial Services Platform, which are WS-RM enabled in general.

Note that WS-RM also requires corresponing support on the service conumer side, and using asynchronous communication requires a different programming model / design of the consumer side than using synchronous communication. Did you take this into account?

SAP's asynchronous Enterprise Services so far are can only be called using the so-called XI30 protocol, in other words via an SAP NetWeaver PI.

If you have an ESR 7.1 Ehp1 and upgraded the NetWeaver stack of your ECC system to SP14 or even better EhP1, it's easy to "wrap" the SAP service as a WS-RM enabled service interface, though. If you are interested, I could try to describe the procedure.

Hth,

Markus

Former Member
0 Kudos

Very good information!

Regarding the implementing class for the service, I could drill to the real implementation, so now I know I can use the service. Or at least I have the core piece of it.

Regarding the fact the service is asynchronous, it is good to know that it makes difference when using the services. I will pay attention to it next time. Indeed I would like some help on enabling this service as web service, because I do have to use it this week.

Can you give me more directions?

Thank you guys.

Edited by: Marcelo Costa on Jul 20, 2009 3:23 PM

Former Member
0 Kudos

Hi,

You can locate service through SE85 itself, the only thing is only ABAP name is available so name will start like ECC_SalesOrderCrtRC1 for create sales order.

Using SE85 you can easily locate ES as they are grouped logically.

In your case application component is : LO-MD-BP-VM-ES (from ES workplace), so search by this application component in SE85.

Another thing you can do to look into SPROXY if other details are not available to look by service name i.e. SupplierERPCreateRequest_In and then look into implementation (if it is created from BAPI/BAdi) etc.

Regards,

Gourav

Former Member
0 Kudos

Thanks for the answer.

In my search using the SE85 transaction, choosing the application component LO-MD-BP-VM-ES in the Service Definition filter, no results was found. In fact, searching for all service definitions, I get 267 hits. The only service that is related with supplier is ECC_SUPPLIERERPRELCPIDQR.

Fortunatelly using the SPROXY transaction I could find the service SupplierERPCreateRequest_In. Now my mission is to make it available as a web service. I going to search for material on how to do that - imagining that it is a matter of configuration and that my ERP already provides the service implementation.

If anyone can suggest to some documentation on that, I will appreciate.

Again, thanks for the answer.

Former Member
0 Kudos

Hi,

Just drill down into SupplierERPCreateRequest_In upto provider class and implented method, if it is there then it is implemented in your ERP else it is just modeled.

I believe it is BAPI or BAdi but look into implemented method for detail. In SOAMANGER if you search by external name then may be you can find it there.

Regards,

Gourav