Websydian v6.1 online documentationOnline documentation - Websydian v6.5

TransacXML Web Services Upgrade Overview (Version 5.5)



Overview

This section includes a description of the changes in the TransacXML Web Service patterns in Websydian 5.5.

For upgrade instructions please go to the next section. It is recommended to go through this section in order to get an overview of the changes before continuing with the upgrade instructions in the next section.

General

Variables renamed

The following variables used by the SoapProcessor and SoapGenerator functions have been renamed:

Old name New name
Header SimpleHeaderElements
HeaderElements ComplexHeaderElements

Restructuring

The SoapProcessor, SoapGenerator, and ExtractSOAPBody functions have been restructured in Websydian 5.5. In this process some code and edit points have been removed from these functions. If code has been inserted in any of the deleted edit points it should be examined whether this code is still necessary and, if yes, then which edit point the code should be moved to.

SOAP Body Element

In previous versions of TransacXML Web Services the SOAP message was handled incorrectly:

The above had two serious effects:

  1. Attributes to the top element of the SOAP payload was not preserved.
  2. TransacXML web services could not communicate with other web services without modification.

In Websydian 5.5 this has been fixed so XML documents are sent and received correctly. This also means that all previous local modifications regarding this issue inserted in the SoapGenerator, SoapProcessor, and ExtractSOAPBody functions can be removed.

The general rule is that it should no longer be necessary to add any code to the SoapGenerator, SoapProcessor, or ExtractSOAPBody functions.

Inheritance

Implementing a web service oriented application in previous versions of Websydian required that one of the following Websydian patterns where implemented:

The distinction between an implementation with or without headers has turned out to be unnecessary and confusing, so the above patterns have been merged into two base patterns:

If you have inherited from any of the patterns with headers, the inheritance should be changed to the corresponding entity without the WithHeaders extension.

SoapProcessor

Any modifications that have been applied to the SoapProcessor due to any of the following bugs can safely be deleted:

In most web service implementations the SoapProcessor does not need any modifications to the action diagram. This means that most likely all previous modifications to the SoapProcessor action diagram can be removed. If in doubt please contact Websydian Support for advice.

Please note that some of the above bugs also implied modifications to the Services.ExtractSOAPBody action diagram. These changes should also be deleted.

Server Validation

The SoapProcessor has a function option named ServerValidation. This option determines whether it is the SoapProcessor (server) or the XmlHandler that should perform request specific validation of the message.

If it is the XmlHandler that validates the request then the SoapProcessor will make two calls to the XmlHandler function: One call for validating the request and one call for processing the request.

In previous versions of Websydian this option was set so the XmlHandler validated the request. This has changed so it is up to the SoapProcessor to validate the request and thus the XmlHandler is called only once.

Option ServerValidate set to Edit point to insert validation code
Yes (default) "Insert call to validation function" in SoapProcessor
No "Subscriber validation functionality" in XmlHandler

In most cases no extra validation has been inserted so this change should not affect existing applications.

Temporary files

In previous versions of Websydian temporary XML documents where written to the disk when the XML documents where transferred between function calls. For performance and usability this has been changed so temporary XML documents are kept in memory.

Default save dir

The value in the message object SoapProcessor.Messages.DefaultSaveDir has been changed. The previous value was "c:\temp" and it has now been changed to the empty string. This has the effect that temporary files by default will be written to the current directory of the application. However, this value is in most cases overwritten by the settings in the configuration file.

Configuration file changes

The entries in the configuration file has been renamed so the names explain more about the purpose of the entries.

SOAP header entries

The handling of the optional SOAP headers have been changed in Websydian 5.5. If the SoapProcessor must process any optional SOAP headers in the SOAP messages, then please consult the documentation for the SoapProcessor for information on how to do this.

XmlHandler

The SoapProcessor has been changed in the way it transfers XML documents to the XmlHandler. In previous versions of Websydian this was done using files, where the filename of the XML documents where transferred as parameters between function calls.

This has now been changed so the XML document is kept in memory and instead the doucment object references are transferred between function calls.

Depending on how the XmlHandler is coded there are several ways to upgrade the XmlHandler to Websydian 5.5. Please consult the Upgrade Instructions for more details.

SoapGenerator

All modifications that have been applied to the SoapGenerator due to any of the following bugs can safely be deleted:

In most web service implementations the SoapGenerator does not need any changes to the action diagram. This means that most likely all of the previous changes that has been inserted in the SoapGenerator action diagram because of bugs can be removed. If in doubt please contact Websydian Support for advice.

Please note that some of the above bugs also implied modifications to the Services.ExtractSOAPBody action diagram. These changes should also be deleted.

Interface

The interface for the SoapGenerator function has been changed. A major change is that in previous versions of Websydian the SoapGenerator used files to store the XML documents for the request and the response payloads. This has now been changed so the SoapGenerator as input expects the object references to the XML document that should be sent and to the XML document where the returned SOAP payload should be written.

SOAP header entries

The handling of the optional SOAP headers have been changed in Websydian 5.5. If the SoapGenerator must process any optional SOAP headers in the SOAP messages, then please consult the documentation for the SoapGenerator for information on how to do this.

Configuration file changes

The entries in the configuration file (Windows INI file/Java property file) has been renamed so the names explain more about the purpose of the entries.

HTTP status code

The SoapGenerator now checks the HTTP status code of the returned HTTP response. If the status code is different from 200 (OK) then the response is not treated as a valid SOAP message.

This change does not require any modifications to the model.

Next step

Continue with Upgrade Instructions.