cancel
Showing results for 
Search instead for 
Did you mean: 

How to call ABAP client proxy?

Former Member
0 Kudos

Hello,

I am getting confused with ABAP client proxy now.

I've defined a outbound service interface (Message Interface) in PI, based on the service interface I generated the ABAP client proxy in the abap backend system. There are two possible ways to configuration the integration scenario for this interface:

1) use the proxy as web service consumer for scenario like: ws consumer --> PI

2) No web service, just proxy like: Proxy --> PI

Now I've configured a logical port (as default logical port) for scenario 1.

I wrote a ABAP program to call the proxy to send out message to PI. To call the proxy we instantiate the proxy like:

CREATE OBJECT proxy EXPORTING logical_port_name = p_port.

proxy->myOperation( ... ).

Now if I specify the logical_port_name, I think the local IE in the abap system knows to send out the message using web service (scenario 1). However if I do NOT specify logical_port_name, how the local IE knows which way to send out the message? Using web service with the default logica port, or directly post the message to the centrl IE pipeline using the second scenario ?

Anybody can clarify my doubts?

Thanks

Eric

Accepted Solutions (0)

Answers (4)

Answers (4)

kkram
Contributor
0 Kudos

Eric

The answer to your question lies in the method CREATE_FRAMEWORK of class CL_PROXY_FRAMEWORK_OUTBOUND. In this method, you will see method GET_SOAP_APPLICATION of class CL_SRT_LP_MAINTANENCE is checked to see which adapter to use (i.e WS runtime or XI runtime).

Anyway, to give a straight answer to your question, if you maintained an endpoint for your interface in tcode SOAManager, the WS runtime/adapter is used to send the message to Integration server. If there is no endpoint maintained, then it uses the XI runtime (or the traditional proxy adapter).

Now, as far as logical port goes, if you didn't give a value when calling the proxy client class and you didn't maintain an endpoint in SOAManager, then XI runtime is used.

If you didn't pass a value to logical port but you maintained an endpoint which the default logical port, then the same is used and communication happens through WS adapter.

If you didn't pass a value to logical port but you maintained an endpoint and didn't mark the port as default, then a WS runtime exception is raised.

Hope this answers your question. For more information, try to take a look in the classes mentioned above.

KK

Former Member
0 Kudos

Hi KK,

your answer makes the most sense. 6 points assigned, will assign the full points once I complete my test.

BTW, for server proxy, it doesn't matter whether or not an end point is configured, the way the abap backend receives request depends on the PI configuration (ws adapter or XI adapter), right?

Actually I've also tested the server proxy, but I got error in MONI in the backend system:

<SAP:Stack>No implementing class registered for the interface (ABAP interface, request message SI_Dummy_In_A, request message, namespace http://www.mynp.com/xi)</SAP:Stack>;

you have any idea what that could be? Generated proxy along with all generated interfaces are activated. The only thing is that I generated the proxy as local object, could that be the problem? though I do not think so.

Thanks

Eric

Former Member
0 Kudos

Hey,

this Link might help you to know how the connection is established.

Proxy configuration.

regards,

Milan

Former Member
0 Kudos

> Now if I specify the logical_port_name, I think the local IE in the abap system knows to send out the message using web service (scenario 1). However if I do NOT specify logical_port_name, how the local IE knows which way to send out the message? Using web service with the default logica port, or directly post the message to the centrl IE pipeline using the second scenario ?

if u check in SXI_ADM of abap, u can see the target XI url.

Former Member
0 Kudos

Nobody can give me some hints?

I guess lot of people must have done proxy scenarios, so can you please help me on this?

Former Member
0 Kudos

- ABAP client proxy