Después de horas y horas intentando hacer cosas distintas, pero casi siempre haciendo lo mismo, he conseguido solucionar el problema de la lectura de TRemotable.
[SOLUCION] Descargarme la última versión de Delphi XE2 trial y funcionó a la primera. Osea que es un defecto de las versiones anteriores de delphi.
Gracias por la colaboración. Especialmente a Egostar por el tiempo que le dedicó a mi problema.
Codigo:
Unit generada por wsImporter:
Código Delphi
[-]
registroBean = class;
getListaRegistrosResponse = array of registroBean;
registroBean = class(TRemotable)
private
Fasunto: string;
Fasunto_Specified: boolean;
FcorreoElectronico: string;
FcorreoElectronico_Specified: boolean;
.......
ConsolidacionWS = interface(IInvokable)
['{8796BA36-EF66-FC3D-8199-9C6A7C27E916}']
function getEstado(const entidad: string): string; stdcall;
function getListaRegistros(const entidad: string): getListaRegistrosResponse; stdcall;
function resetFechaRegistrosEntrada: string; stdcall;
end;
function GetConsolidacionWS(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): ConsolidacionWS;
La unit que usa lo anterior:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
Consultas: ConsolidacionWS;
Lista: getListaRegistrosResponse;
Entidad: string;
begin
Entidad := '004';
Consultas := GetConsolidacionWS(true,'',nil);
memo1.Lines.Add('======================================');
Lista := Consultas.getListaRegistros(Entidad);
for i := 0 to High(Lista) do begin
memo1.Lines.Add(lista[i].nombre);
end;
memo1.Lines.Add('---------------------------------------');
end;