New improvements to Web Services in 6.0.1: Optionals, Nillables, and Namespaces

New improvements to Web Services in 6.0.1: Optionals, Nillables, and Namespaces

Hello Community,

It's our pleasure to announce two new improvements to the integration of the Agile Platform with Web Services:
  1. The new support for Optionals and Nillables;
  2. The possibility of defining your own namespaces.

1. Optionals and Nillables
Until version 6.0.1, null values of input parameters and attributes of structures were always sent in the payload of Web Services.
As such, the WSDL definition of Optional (minOccurs) and Nillable (nillable) was never taken into account.
Starting in version 6.0.1 (inclusive), the new Default Value Behavior property is available in input parameters and attributes of structures imported from Web Services.
With this new property you can choose what to send in the payload when the attribute or parameter is set with the Platform's default value (NullIdentifier(), NullDate(), …):
  • Send: this is the old behavior and the null value it is sent, i.e., the Agile Platform sends 0 (zero) for integers, 1900-01-01 for dates, etc. (see more About Null Values);
  • Send Nil: the nil value is sent;
  • Don’t Send: no value is sent
These options are made available according to the WSDL definition of Optional and Nillable.
Learn more about it in the following topics:
Just a final and important note: this property works for newly imported input parameters or attributes of structures; for the already imported ones, you must remove and re-import them again for the property to work.
2. Namespace
Until version 6.0.1, Web Services generated by the Agile Platform had a fixed namespace: ''.
Starting in version 6.0.1 (inclusive), a new property was added to the eSpace: Web Services Namespace.
This new property allows you to define the namespace for the generated WSDL of each eSpace: the namespace is set both in the <description> section and in the <types> section.

Yours sincerely,

Jaime Vasconcelos
Hello Jaime,

can you please explain exactly what that new improvement is for? I mean, if exposing the web service to a third-party, that makes any difference? As I could see, this property only works for referenced web services (idk why...), but if I'm creating one, I can't define its Default Value Behavior (in this case, is really necessary).
In addition, when a parameter is a structure, this improvement are useless, because you can't change the Default Value Behavior for structures attributes.

This post, as so many others, asks for a solution for blank values of output parameters on WS responses. Is there a solution for this?


I am also confused if this can be used for exposing a web service to a 3rd party?

Like e.g. is it possible to expose something like:

<Velocity xsi:nil="true" />

I understand that OutSystems itself does not know the concept of a null value. So this would mean that a Velocity of 0 in OutSystems is exposed as null for 3rd party systems?