we're currently migrating from Delphi 2005 to Delphi 2007 Win32 and
ran into problems with code generated by the wsdl importer,
specifically code regarding array types. Although the input wsdl is
definitly unchanged the units generated by the importer break our
existing code.
An example. In D2005 the importer generated something like this:
type
ArrayOf_tns1_CompanySectorDTO = array of CompanySectorDTO;
CompanySectorListDTO = class(TRemotable)
private
FcompanySectors: ArrayOf_tns1_CompanySectorDTO;
public
destructor Destroy; override;
published
property companySectors: ArrayOf_tns1_CompanySectorDTO read
FcompanySectors write FcompanySectors;
end;
Basicly, the CompanySectorListDTO contains a property companySectors
which is an array of CompanySectorDTO. The code using this units could
directly manipulate the array using Length(), SetLength(), Iteration
etc. The array could be passed as a parameter or be assigend to local
variables.
In D2007 the same wsld input is imported as:
type
item12 = type CompanySectorDTO; { "http://
endpoint.ws.banker.mind.esag.de"[Alias] }
ArrayOf_tns1_CompanySectorDTO = array of item12; { "http://
endpoint.ws.banker.mind.esag.de"[GblCplx] }
CompanySectorListDTO = class(TRemotable)
private
FcompanySectors: ArrayOf_tns1_CompanySectorDTO;
public
destructor Destroy; override;
published
property companySectors: ArrayOf_tns1_CompanySectorDTO Index
(IS_NLBL) read FcompanySectors write FcompanySectors;
end;
ArrayOf_tns1_CompanySectorDTO is now an array of item12. Our existing
project doesn't compile anymore because of an considerable amount of
"incompatible types" errors.
Is there a ways to tell the new importer to generate the same code as
in Delphi 2005? Is there a ways to use the old importer without having
to start the 2005 IDE? That would be an acceptable workaround because
the units generated by D2005 work just fine the D2007 soap runtime and
zero changes to our existing project code.
Regards,
Jens