Ver Mensaje Individual
  #1  
Antiguo 23-08-2011
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Reputación: 22
apicito Va por buen camino
Como leer un TRemotable que proviene de un webservice

Estoy utilizando Delphi2010. Importo un wsdl a través de WsdlImporter que me crea una unit Consolidacion.
En ella se crean los métodos:
Código Delphi [-]
  ConsolidacionWS = interface(IInvokable)
  ['{8796BA36-EF66-FC3D-8199-9C6A7C27E916}']
    function  getEstado(const entidad: string): string; stdcall;
    function  getListaRegistros(const entidad: string): Array_Of_registroBean; stdcall;
    function  resetFechaRegistrosEntrada: string; stdcall;
  end;

function GetConsolidacionWS(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): ConsolidacionWS;
El parámetro Addr de la función GetConsolidacionWS se carga durante la implementación, en el supuesto de que sea vacio, con la dirección del webservice
donde registroBean es una Tremotable:
Código Delphi [-]
  registroBean = class(TRemotable)
  private
    Fasunto: string;
    Fasunto_Specified: boolean;
    FcorreoElectronico: string;
    ......

Array_Of_registroBean = array of registroBean;
Intento leer la respuesta desde otra unidad donde importo Consolidacion:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var Lista     : Consolidacion.Array_Of_registroBean;
    Registro  : Consolidacion.registroBean;
    Asunto    : string;
begin
  Setlength(Lista, 3);
  Lista := Consolidacion.GetConsolidacionWS.getListaRegistros('004');
  for Registro in Lista do begin
    Asunto := Registro.asunto;
    Memo1.Lines.Add('====================================');
    Memo1.Lines.Add(Asunto);
  end;
end;
Esto no funciona y no sé como debo capturar los valores que me devuelve el webservice.
Alguien me puede ayudar?.
Responder Con Cita