No es muy complicado.
Un código como este conecta y devuelve resultados:
Código Delphi
[-]
var
wsSoapPort: wsbcucotizacionesSoapPort;
ws_out: wsbcucotizacionesout;
p: wsbcucotizaciones_Execute;
Monedas: ArrayOfint;
begin
wsSoapPort := GetwsbcucotizacionesSoapPort();
p := wsbcucotizaciones_Execute.Create;
p.Entrada := wsbcucotizacionesin.Create;
p.Entrada.FechaDesde := TXSDate.Create;
p.Entrada.FechaHasta := TXSDate.Create;
SetLength(Monedas, 1);
Monedas[0] := 2;
p.Entrada.Moneda := Monedas;
p.Entrada.FechaDesde.AsDate := EncodeDate(2020, 12, 01);
p.Entrada.FechaHasta.AsDate := EncodeDate(2020, 12, 31);
ws_out := wsSoapPort.Execute(p).Salida;
ShowMessage('Respuesta: ' + IntToStr(ws_out.respuestastatus.status) + ' - ' +
IntToStr(ws_out.respuestastatus.codigoerror) + ' - ' +
ws_out.respuestastatus.mensaje);
ShowMessage('Número de cotizaciones: ' + IntToStr(Length(ws_out.datoscotizaciones)));
ShowMessage(
'Nombre: ' + ws_out.datoscotizaciones[0].Nombre + sLineBreak +
'CodigoISO: ' + ws_out.datoscotizaciones[0].CodigoISO + sLineBreak +
'Emisor: ' + ws_out.datoscotizaciones[0].Emisor + sLineBreak +
'Fecha: ' + DateToStr(ws_out.datoscotizaciones[0].Fecha.AsDate) + sLineBreak +
'Modeda: ' + IntToStr(ws_out.datoscotizaciones[0].Moneda) + sLineBreak +
'TCC: ' + FloatToStr(ws_out.datoscotizaciones[0].TCC) + sLineBreak +
'TCC: ' + FloatToStr(ws_out.datoscotizaciones[0].TCV));
Un código como este devuelve algun resultado con sentido.
Si accedes a la primera: