cancel
Showing results for 
Search instead for 
Did you mean: 

update an existing external definition

ross_goodman
Participant
0 Kudos

Hi,

I have an existing external definition called ex_def1. I have an updated wsdl with one extra data element in and wish to update the external definition accordingly.

When I go to the repository and try to import this I find there is no way to explicitly say that ex_def1 is the defintion I wish to import this new WSDL for. Any instruction very gratefully received.

Regards,

Ross

Accepted Solutions (1)

Accepted Solutions (1)

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

What you can do is:

1. Open your external definition ex_def1

2. Click the edit button

3. On the right side of your screen, click the button called import external definition

4. Look for your updated wsdl and then click open.

5. Save the updated ex_def1

Now that you have already updated the external defintion, you need to correct the structural inconsistencies that it could have introduced to your message mappings.

/people/jin.shin/blog/2008/02/15/sap-pi-71-mapping-enhancements-series-correct-structural-inconsistencies

Hope this helps,

Mark

Former Member
0 Kudos

Yes, this is correct. We imported a quite complex external wsdl with several operations. We build an ABAP Proxy Interface on the consumer side and created message mappings using java functions and also XSLTs. Now we had to regard updates in the external WSDL, i.e. got a new WSDL, and were afraid of loosing our mappings.

We followed the procedure above and did not loose anything. The new fields are avaiable and we will now enhance our mappings.

Answers (2)

Answers (2)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>> I have an existing external definition called ex_def1.

Since you have an updated version of wsdl, You can first delete the currect ex_def1(just for the sake of avoiding confusion).Save the new wsdl in your local desktop.Import the file via ESR using external defintion. If you want the same name for the new wsdl version give again ex_def1 and use it. Now you should able to see the changes in the newly imported wsdl.

If you have any issue, PLease contact us.

ross_goodman
Participant
0 Kudos

What does deleting the existing wsdl do to all the componenets that are currently using the messages produced from that WSDL? I do not want to have to reconstruct all my message mappings etc.

Ross

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>> What does deleting the existing wsdl do to all the componenets that are currently using the messages produced from that WSDL? I do not want to have to reconstruct all my message mappings etc.

Then, you can overwrite the new wsdl with the old one using import option via external definition. if the changes are major, you might have to handle those new fields in the mapping area. It is so simple.

ross_goodman
Participant
0 Kudos

>>Then, you can overwrite the new wsdl with the old one using import option via external definition. if the changes are major, you might have to handle those new fields in the mapping area. It is so simple.<<

Why would I want to overwrite the new WSDL with the old one?

I want t oknow how to overwrite the old one with the new WSDL, this is where I am having problemss.3How do I OVERWRITE the old WSDL with the new one? It is the OVERWRITE bit I am struggling with.

When I open the import options in IR I DO NOT GET THE OPTION TO name the ext def that I wish to overwrite. How do I say I want to overwrite ext_def1 with a new WSDL?

Ross

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>>> I want t oknow how to overwrite the old one with the new WSDL, this is where I am having problemss.3How do I OVERWRITE the old WSDL with the new one? It is the OVERWRITE bit I am struggling with.

If you dont want to overwrite, you dont need. You import the new wsdl using different name using external definition. once you imported the wsdl, use that wsdl for the design.

Please elaborate more about your problem. Are u following the below steps

Save the new wsdl in the local machine

import the wsdl using external definition (edit mode)

Use it for design

RaghuVamseedhar
Active Contributor
0 Kudos

Hi Ross,

I understand there is any update in XML structure (XSD, external definition) and, you are already using that external definition (XSD) in Message Interface (WSDL). Now you want to update (correct) the Message Interface (WSDL), so that it will refer to correct updated external definition (XSD).

Save the external definition on your desktop. Open the u201CExternal Definitionu201D in edit mode and upload that file again. By this way the Message Interface (WSDL) will refer to updated external definition. Now you may consider correcting the Message Mappingu2019s which used older external definition (XSD).

If my understanding is wrong, please explain the issue again.

Regards,

Raghu_Vamsee

ross_goodman
Participant
0 Kudos

Hi,

I have been given a new WSDL by a third party that is to superced the existing WSDL previously supplied that is in use in an interface in PI.

You say "upload that file again" this is the bit that I cannot see how to do that exactly

When I go to the external definitions in IR I do not get an option to upload. I get option to import and cannot see how to target the existing ext definition.

Ross