webservice publish problem

webservice publish problem

  
Hi all,

I have added a web reference to my espace and the reference and the actions were loaded ok. When i try to publish apear that error :


Invalid Web Reference
The ClientService web reference could not be imported because it is not supported.
Exception Details:
[1] Invalid Web Reference: The ClientService web reference could not be imported because it is not supported.
at #dk.#4o.Dump(#Hk code)
at OutSystems.HubEdition.Compiler.Espace.#Kx(ArrayList webreferences)
at OutSystems.HubEdition.Compiler.Espace.Dump()
at #dk.#Uc.#1s()
at #dk.#Uc.#3s(String[] args)
at #dk.#Uc.#hf(String[] args)
[2] Id : WSDLFieldNotFound
Type : Error
Message : Invalid Web Reference
Detail : Could not find 'login_arg' field.
HelpRef : 2050
ExtraInfo : Exception Details:
[1] Invalid Web Reference: Could not find 'login_arg' field.
at #dk.#ap.#LP(#Hk writer, #lm type, String typeName, String fieldName)
at #dk.#8o.#3O(#Hk writer)
at #dk.#5o.#aP(#Hk code)
at #dk.#4o.Dump(#Hk code)
at OutSystems.HubEdition.Compiler.Espace.#Kx(ArrayList webreferences)
at OutSystems.HubEdition.Compiler.Espace.Dump()
at #dk.#Uc.#1s()
at #dk.#Uc.#3s(String[] args)
at #dk.#Uc.#hf(String[] args)
Submitable : Yes

Has anyone got an idea what the could be?
Hi Tiago,

The OutSystems Platform can consume WS-I compliant Web Services, generally supporting:
- Web Services with Methods containing In/Out parameters;
- Web Services that require authentication;
- Web Services that use schemas other than XML (like "soapenc") for basic types;
- Web Services that use attributes in their input/output messages;
- Dynamic Web Services invocation routing (dynamic URL's).

Furthermore, automatically consumption of Web Services in Service Studio follows some conventions and restrictions:
- Enumerate values and Microsoft Datasets are interpreted as a simple Text item;
- Types created via "restriction" over another type are normally the same as the original type: OutSystems only enforces "maxLength" and "fractionDigits";
- Types of "element" type with sub-type of "schema" type (i.e. dynamic schemas) are interpreted as a simple Text item;
- Types of "simpleType" and sub-type that is not "restriction" (such as "list", a space-separated sequence of text atoms) are interpreted as a simple Text item;
- Types of "complexType" and sub-type that is not "sequence", "all" or "complexContent" are interpreted as a simple Text item;
- Sub-types of "complexContent" and sub-sub-type that is not "restriction" or "extension" are interpreted as a simple Text item;
- Web Service annotations are ignored.

Finally, the OutSystems Platform does not support automatic consumption of some Web Services, requiring the use of Integration Studio for the following scenarios:
- Web Services with method input or output parameter names with more than 50 characters
- Web Services with method reference parameter names with more than 47 characters
- Web Services with more than one port;
- Web Services with multiple namespaces and clashing names across namespaces;
- Web Services with dependencies to external XSDs;
- Web Services with overloaded (same name) methods;
- Web Services with recursive data types (structures that contain themselves);
- Web Services with abstract/"Any" typed objects;
- Web Services with two or more structures/methods of the same name (coming from different namespaces);
- Web Services that use the old fashioned "soap:body parts='parameters'" for method input/output definitions;
- Web Services with structured types not created with either "element", "simpleType", "complexType" or "attribute" XSD constructs;

If, by any change, a Web Service cannot be automatically introspected in Service Studio due to the limitations above, there is the option to manually consume the Web Service using Integration Studio and wrapping it inside an Extension that can then be used in Service Studio.

If that is an option, another solution could be to modify the producer to create a compatible WSDL.

Additionally, if you have a support contract you can submit an issue with the WSDL to support@outsystems.com and they will help you trace the particular problem.

Hope this helps,
Tiago Simões
Hi Eliseu, regarding your problem...
It seems to me that you have in the WSDL a type named "login-arg". ServiceStudio names do not support hyphens, and the name appears login_arg.
Long story short, if you can rename your types that have the "-" to "_" in the service, you'll be able to import the WebService.