Updating a Changed WSDL
If you created a project that uses a WSDL and the WSDL changes, you can attempt to update the existing WSDL with the new WSDL.
About this task
Updating a WSDL means that any entities that interface
with the WSDL might be affected by the change. For example, the WSDL
defines the input and output parameters of the operation and if the
schema that defines these parameters changes in the new WSDL, the
nodes that represent these parameters in the Map Inputs and Map
Outputs tasks of the Web Services activities might no longer exist
and any links to these nodes are no longer valid. You must recreate
the links in order for the orchestration to be valid again. Updating
a WSDL might require other changes to the project besides recreating
links, for details see Table 1. In some cases, the new WSDL is not
loaded as described in the first three rows in the following table.
Note: Updating
an existing WSDL is different from loading multiple WSDLs into a project
by either dragging a file into the Project tab
or right-clicking on the WSDL folder in the Project tab
and selecting Add Document. Updating a WSDL
replaces the existing WSDL in the project, while uploading the same
file into the Project tab creates two instances
of the WSDL in the project.
Change in WSDL | New WSDL replaces the initial WSDL? | How is the project affected? |
---|---|---|
New WSDL is not a valid WSDL. For example the final </definitions> tag is missing at the end of the WSDL. | No, the update does not occur | None, the new WSDL is not loaded. No updates occur to any of the project entities. |
Uploading the new WSDL to replace the existing one, would result in an invalid project. | No, the update does not occur | None, the new WSDL is not loaded. No updates occur to any of the project entities. |
Attempt to update the current WSDL
with a different WSDL and an orchestration or an endpoint in the project
refers to the current WSDL. Note: You can load multiple WSDLs into
a project.
|
No, the update does not occur | None, the new WSDL is not loaded. No updates occur to any of the project entities. |
The Service Binding definition of the WSDL is defined by the service, port, and location elements. If the values of the service, port and location elements in the WSDL change, the values for these elements that are stored in the Web Service endpoint must be updated. | Yes, update occurs | The values in the Web Service endpoint are updated with the newest values specified in the WSDL. For details about these elements, see Creating or Editing a Web Services Endpoint. |
The name of an operation changes in the WSDL and the orchestration is starting that operation in an Invoke Service activity. | Yes, update occurs | If the name of the operation changes and the operation is used by the Invoke Service activity, the first operation in the WSDL is by default assigned to the Invoke Service activity. This reassigning to the first operation might not be the wanted result. The input and output parameters of the first operation in the WSDL might be different than the operation originally specified and therefore the links might no longer exist in the Map Inputs and Map Outputs tasks. You must configure the Invoke Service activity again for the orchestration to be valid. |
The name of one of the operation changes in the WSDL but the orchestration is not starting that operation in any Invoke Service activities. | Yes, update occurs | If the name of the operation changes and that operation is not used any Invoke Service activities, this change to the WSDL has no affect. |
Additional <part> elements
are added to the elements that define the input or output parameters
of the operation. This change affects any project entity that references
this part of the WSDL. The following is a list of possible affected
entities:
For example, see Figure 1. |
Yes, update occurs | Since new <part> elements have only been added to the <message> element, typically this change has no affect on the existing maps and variables based on the WSDL. For the <Helloin> message example, adding the new city element has no affect on links to the existing address <part> element in the Map Inputs or Map Outputs tasks of the Invoke Service activity. If required, you can create links to the new element. |
Change the type of a <part> element
in a <message> element that define the input
and output parameters of the operation. This change affects any project
entity that references this part of the WSDL. The following is a list
of possible affected entities:
|
Yes, update occurs | Any existing links in the maps are
not removed even though the type might have changed. CAUTION: The
type change might have run time impact, resulting in potentially bad
output data. Check that any type conversions done in the links of
maps do not result in bad output data being returned at run time.
|
Change the <message> element
of the input or output parameter of the operation. This change affects any project entity that references this part of the WSDL. The following is a list of possible affected entities:
|
Yes, update occurs | Links to the input or output parameter that has changed in the map are removed. You must create links to the changed parameter in maps. For example, if the <message> element changes for the input parameter of the operation called by an Invoke Service activity, the links to the nodes in the Map Inputs task of the Invoke Service activity are removed. You must create links from variables to the new set of nodes that show in the To Activity pane of the Map Inputs task. |
Figure 1. Additional <part> elements
example
<message name="HelloIn">
<part name="address" type="xsd:string>
</message>
Add the following additional <part> element
<message name="HelloIn">
<part name="address" type="xsd:string>
<part name="city" type="xsd:string>
</message>