cancel
Showing results for 
Search instead for 
Did you mean: 

ABAP Proxy to Webservice scenerio

Former Member
0 Kudos

Hi All,

I am working on an ABAP to Webservice scenerio wherein the proxy is implemented in SPROXY transaction of ECC while in PI the mapping is done between two XSDs.

I have the following questions

1.The source in the message mapping in PI is the ABAP proxy output,right?If so,then it always happens data coming from ABAP Proxy is converted into the XSD format when it comes to PI?

2.Means,in PI whenever data comes from ABAP Proxy,then it is automatically converted into XSD?

3. As per my scenerio,I have changed the target XSD also the source XSD but there is no field addition in the

Source XSD unlike the target XSD wherein 2 additional fields. So here do I need to regenerate the proxy or

have to change the proxy?When is proxy regenerated and when is it changed.?

4.What is DDIC structure ?

5. As per my scenerio does the DDIC structure is affected?

6.Does the proxy regeneration create the new structure,that is classes and methods or proxy change creates new structure

that is classes and methods.

7.If the new classes or methods are created then can we take the back up of the proxy ?

8.How is the coding actually impacted if the proxy is changed?

Thanks,

Gayatri

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

firstly you should read some SAP documents (including PI overview) and some sdn blogs on abap proxy..., because that's classical questions for a classical process: send data from ECC's abap proxy to PI.

1.The source in the message mapping in PI is the ABAP proxy output,right?

yes.

If so,then it always happens data coming from ABAP Proxy is converted into the XSD format when it comes to PI

Not exacty, it will be converted in XML , as in PI we use only XML format. It's the role of adapter to convert to XML.

2.Means,in PI whenever data comes from ABAP Proxy,then it is automatically converted into XSD?

see previous answer.

3.As per my scenerio,I have changed the target XSD also the source XSD but there is no field addition in the

Source XSD unlike the target XSD wherein 2 additional fields.So,here do I need to regenerate the proxy or

have to change the proxy?When is proxy regenerated and when is it changed.?

change and regeneration = same fight. You change your Data Type in PI (XSD), and to replicate this change in ECC, you have to regenerate your proxy (tx SPROXY in ECC). Do not forget to save and activate this regeneration.

4.What is DDIC structure ?

Data Dictionary. So table, structure, Data Element and Domain created in SAP. Transaction SE11.

5.As per my scenerio does the DDIC structure is affected?

I don't understand your question, the best way it's to define a source Data Type / MEssage Type and source outbound Service interface in PI. Then, in ECC, in transaction SPROXY you can generate the proxy from your Oubound service interface defined in PI. And so in ECC, the DDIC objects (structure, table) will be automatically generated, in the same time that you create the corresponding class and method of your proxy. Everything is created automatically with transaction SPROXY. And after that you will be abe to use all of them, as you want, like into an abap program to do the extraction and call your proxy to send data to PI.

6.Does the proxy regeneration create the new structure,that is classes and methods or proxy change creates new structure that is classes and methods.

yes. See previous answer.

7.If the new classes or methods are created then can we take the back up of the proxy ?

I do not understand "back up of proxy". Your proxy is created in ECC.

8.How is the coding actually impacted if the proxy is changed?

if you change the structure (data type in PI), you have to regenerate the proxy in ECC. If you change your structure, you certainly have also to change you code which send data across this structure. be logic !

regards.

mickael

Former Member
0 Kudos

Hi Mickael,

Thanks for your reply.

As per the scenerio I am working ,data is coming from the ABAP Proxy to PI.

In PI,the mapping is in between 2 XSDs.

I made the following changes in the mapping

1.I changed the XSD at the target structure in the mapping with a new structure with only 2 new fields added which are not root nodes.

2.Used the same source XSD without enumerations and imported again it in the source structure of the message mapping.

My questions are

1.Will the change in the XSD,that is source XSD impact the proxy structure?

If the proxy structure is impacted,then do I need to change the proxy or regenerate it?

How can I change/regenerate the proxy?

Simply by right clicking on the outbound interface in SPROXY?Or any other process ?

2.There is already a class and a message type generated in the proxy,will it be changed?If yes,then what is to be done?

Thanks,

Gayatri

Former Member
0 Kudos

Hi,

1.Will the change in the XSD,that is source XSD impact the proxy structure?

If the proxy structure is impacted,then do I need to change the proxy or regenerate it?

How can I change/regenerate the proxy?

Simply by right clicking on the outbound interface in SPROXY?Or any other process ?

yes, you just right click on outbound service interface, it showing regenerate. then you need to regenerate client proxy.

2.There is already a class and a message type generated in the proxy,will it be changed?If yes,then what is to be done?

class and method again regenerated, then you need to activate your client proxy.

new structure with only 2 new fields added which are not root nodes.

in report you again call the updated proxy.

please refer below blog,

http://www.saptechnical.com/Tutorials/XI/ABAPProxy/page1.htm

regards,

ganesh.

Former Member
0 Kudos

Hi Ganesh,

Thanks for your reply.

Below mentioned is the exact scenerio I am supposed to work on

As per the scenerio I am working ,data is coming from the ABAP Proxy to PI.
In PI,the mapping is in between 2 XSDs.
I made the following changes in the mapping
1.I changed the XSD at the target structure in the mapping with a new structure with only 2 new fields added which are not root nodes.
2.Used the same source XSD without enumerations and imported again it in the source structure of the message mapping.

My questions are
1.Will the change in the XSD,that is source XSD impact the proxy structure?
If the proxy structure is impacted,then do I need to change the proxy or regenerate it?
How can I change/regenerate the proxy?
Simply by right clicking on the outbound interface in SPROXY?Or any other process ?
2.There is already a class and a message type generated in the proxy,will it be changed?If yes,then what is to be done?

Please tell me whether I am supposed to changer regenerate the proxy?

If so,then please tell me the steps to do it?

Also,will it impact coding ?

If so ,how can I take the back up of the proxy.

One more thing ,there is no field added in e source structure of the message mapping that is in between 2 XSDs.

Thanks,

Gayatri

Former Member
0 Kudos

Hi,

regenerate the proxy :

Change your proxy object:

○ Call transaction SPROXY and, in the navigation tree, either choose the changed interface object itself or an object that contains the changed object. Call the context menu for this interface object and choose Regenerate Proxy.

○ Alternatively, you will find the changed proxy in the Object Navigator (Transaction SE80) in your package under Enterprise Services ® Client-Proxies. To regenerate client proxies, server proxies, and proxy dictionary types, call the context menu for the object concerned in the navigation tree and choose Change.

Using the interface description in the Integration Repository, the proxy generation function determines whether the specified object or the objects used by the object have been changed. If this is the case, the system regenerates the changed objects.

To regenerate a proxy that was generated from a local file or by using a URL, proceed as follows:

1. Alternatively, you will find the changed proxy in the Object Navigator (Transaction SE80) in your package under Enterprise Services ® Client-Proxies. Call the context menu and choose Change.

2. In the subsequent dialog window, specify whether local changes are to be made or whether the proxy object is to be generated again. If the latter is the case, enter the source of the WSDL document again.

there is no field added in e source structure of the message mapping that is in between 2 XSDs.

if we do changes in source side, coding will be not affected. just you have to regenerate proxy and activate it. right click on service interface outbound, it shows regenerate proxy, you have to select regenerate.

regards,

ganesh.

Former Member
0 Kudos

Hi Ganesh,

Thanks for your reply.

if we do changes in source side, coding will be not affected. just you have to regenerate proxy and activate it. right click on service interface outbound, it shows regenerate proxy, you have to select regenerate.

As no outbound service interface is changed and there is no new field added in the source XSD in the message mapping,only proxy regeneration is necessary.Right?

Will regenerating the proxy create any new objects (class,method,message type).?

If so what can be done.

Also,how to activate proxy in SPROXY?

Thanks,

Gayatri

Former Member
0 Kudos

Hi,

no outbound service interface is changed and there is no new field added in the source XSD in the message mapping,only proxy regeneration is necessary.Right?

no fields are added in to source XSD, you dont need to regenerate proxy. if you have any changes in Source DataType that time you need to regenerate.

how to activate proxy in SPROXY?

when we generate client proxy using t-code sproxy, click on serivce interface outbound generate then you need to activate using ctrl+F3.

regards,

ganesh.

Former Member
0 Kudos

Hi Ganesh,

Thanks for the reply.

I clicked on the outbound service interface in SPROXY transaction.

I then clicked on the Proxy name .

I got many methods ove there in that class interface.

First few of them are implemented in the standard SAP classes.

Only one method is generated that is implemented manually.

If I regenerate the proxy,this is the only method that I am suppoed to implement/make changes in.Right?

All the other mentods that are implemented in the standard SAP classes will remain there.RIght?

Thanks,

Gayatri

Former Member
0 Kudos

Hi,

yes,

we generate client proxy two methods are generated one is your service interface name of outbound .

SAP sytem internally generate this methods,

consructor method

IF_PROXY_CLIENT~EXECUTE

IF_PROXY_BASIS~GET_TRANSPORT_BINDING

IF_PROXY_BASIS~GET_PROTOCOL

IF_PROXY_BASIS_INTERNAL~CREATE_FRAMEWORK

once we click on consrtuctor metod ,

method constructor.

super->constructor(

class_name = 'Classname'

logical_port_name = logical_port_name

).

endmethod.

regards,

ganesh.

Former Member
0 Kudos

Hi Ganesh,

Thanks for the reply.

consructor method 
IF_PROXY_CLIENT~EXECUTE
IF_PROXY_BASIS~GET_TRANSPORT_BINDING
IF_PROXY_BASIS~GET_PROTOCOL
IF_PROXY_BASIS_INTERNAL~CREATE_FRAMEWORK

Means,the method that is generated other than these methods should be chagned if regeneration of the proxy changes the proxy objects?

Also,as proxy generation/regeneration creates class,method and message typewhere can we see the message type generated during proxy generation/regeneration ?

Thanks,Gayatri

Former Member
0 Kudos

Hi,

the method that is generated other than these methods should be chagned if regeneration of the proxy changes the proxy objects?

no these methods are not changed, system will generates this default method.

Also,as proxy generation/regeneration creates class,method and message typewhere can we see the message type generated during proxy generation/regeneration ?

we have internal view and external view tabs. just go through internal view tab their we have operation, to expand the operation their you can find message types.

regards,

ganesh.

Former Member
0 Kudos

Hi Ganesh,

Thanks for the reply.

The following methods are system generated and we are not supposed to change them

consructor method 
IF_PROXY_CLIENT~EXECUTE
IF_PROXY_BASIS~GET_TRANSPORT_BINDING
IF_PROXY_BASIS~GET_PROTOCOL
IF_PROXY_BASIS_INTERNAL~CREATE_FRAMEWORK

Right?

But other than these methods one more method is created with the name of the service interface and its direction,that is sync/async.That one should be implemented.Right?

Also,in the internal view/Operation the immediate node createdis the name of the message type or the next node ?

Thanks,Gayatri

Former Member
0 Kudos

Hi,

The following methods are system generated and we are not supposed to change them

consructor method

IF_PROXY_CLIENT~EXECUTE

IF_PROXY_BASIS~GET_TRANSPORT_BINDING

IF_PROXY_BASIS~GET_PROTOCOL

IF_PROXY_BASIS_INTERNAL~CREATE_FRAMEWORK

Yes We cannot change that methods.

when we create a service interface OB, you can see down in operation. that operation name is come when you generate client proxy. what is Service interface mode you will select either it is SYN/ASYN, that operation will act.

in the internal view/Operation the immediate node createdis the name of the message type or the next node ?

in internal view you have see

operation->SI_OB->IMpotingouput->MT_Sender->NODE->elements.

regards,

ganesh.

Answers (0)