Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Delphi para la web (https://www.clubdelphi.com/foros/forumdisplay.php?f=51)
-   -   Consumir WSDL desde Delphi (https://www.clubdelphi.com/foros/showthread.php?t=94907)

darkamerico 17-10-2020 05:37:28

Consumir WSDL desde Delphi
 
Saludos compañeros y amigos, requiero consumir el Web Service SOAP: http://181.176.170.150:555/ConsultaRUCDNI.svc?wsdl
El dato de entrada es <tem:ruc>10181594212</tem:ruc>
Requiero consumirlo desde Delphi y traer esas etiquetas en componentes TEdit
Agradezco la ayuda.

oscarac 19-10-2020 05:15:10

genera tu archivo .pas usando wdsl importer
luego puedes agregar ese achivo a tu aplicacion para usar sus funciones

aqui hay un ejemplo https://www.clubdelphi.com/foros/sho...=wsdl+importer

darkamerico 19-10-2020 07:13:51

gracias x responder
 
Cita:

Empezado por oscarac (Mensaje 538757)
genera tu archivo .pas usando wdsl importer
luego puedes agregar ese achivo a tu aplicacion para usar sus funciones

aqui hay un ejemplo https://www.clubdelphi.com/foros/sho...=wsdl+importer


Gracias por responder amigo, precisamente en el archivo .pas generado por el WSDL importer me sale un error: Project Code


Imagen: https://ibb.co/YRB1j5y


Muchas Gracias

Neftali [Germán.Estévez] 19-10-2020 08:25:21

1 Archivos Adjunto(s)
Parece que se produce un error al generar el .PAS en la importación, con algo relacionado con el array (parámetro).
Basta con cambiar esto:
Código Delphi [-]
    procedure Set_foto(Index: Integer; const ATArray: TArray);
Por esto:
Código Delphi [-]
    procedure Set_foto(Index: Integer; const ATArray: TArray);
Lo mismpo en la implementación (tanto en la cabecera como en el interior de la función.
El fichero queda tal como te adjunto.

Neftali [Germán.Estévez] 19-10-2020 08:26:19

Parece que se produce un error al generar el .PAS en la importación, con algo relacionado con el array (parámetro).
Basta con cambiar esto:


Código PHP:

    procedure Set_foto(IndexInteger; const ATArray<System.Byte>: TArray<System.Byte>); 


Por esto:


Código PHP:

    procedure Set_foto(IndexInteger; const ATArrayTArray<System.Byte>); 


Lo mismpo en la implementación (tanto en la cabecera como en el interior de la función.

El fichero queda tal como te adjunto.

darkamerico 19-10-2020 14:44:02

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 538761)
Parece que se produce un error al generar el .PAS en la importación, con algo relacionado con el array (parámetro).
Basta con cambiar esto:


Código PHP:

    procedure Set_foto(IndexInteger; const ATArray<System.Byte>: TArray<System.Byte>); 

Por esto:


Código PHP:

    procedure Set_foto(IndexInteger; const ATArrayTArray<System.Byte>); 

Lo mismpo en la implementación (tanto en la cabecera como en el interior de la función.

El fichero queda tal como te adjunto.


Gracias Germán, usted como siempre demostrando calidad de caballero, un abrazo


Americo

oscarac 21-10-2020 06:36:22

te funcionó?
pudiste hacer las consultas?
al parecer a traves de la sunat ya no se puede, la rutina que yo tenia para "capturar" los datos segun el ruc ya no me funciona

oscarac 29-10-2020 01:42:07

hola
estuve revisando este post

el tema que aun no logro deducir, es como parsear el JSON

Código Delphi [-]
arr: ResponseSunat2;
  JSo: TJSONObject;
  JSOarray: TJSONArray;
  JSOValue: TJSONValue;
  _Codigo, _Periodo, _Fecha, _Opcion: string;
begin
  arr := GetIConsultaRUCDNI.GetBuscaRUC(Edit1.Text);

  // se recibe la informacion en formato JSON
  JSOarray := TJSONObject.ParseJSONValue(arr) as TJSONArray;

en la ultima linea me aparece el error

Cita:

[dcc32 Error] Unit1.pas(46): E2250 There is no overloaded version of 'ParseJSONValue' that can be called with these arguments
como puedo "capturar" la informacion que esta en la variable arr ???

oscarac 29-10-2020 03:03:59

investigando, y dandole muchas vueltas al asunto, descubri que puedo aceder a las propiedades de la clase ResposeSunat2 asi

Código Delphi [-]
arr := GetIConsultaRUCDNI.GetBuscaRUC(Edit1.Text);
  Label1.Caption := Format('%s', [arr._razonSocial]);

Espero que le sirva a alguien mas

pero tengo una consulta...
en lo que es busqueda de DNI, como puedo mostrar la foto?

movorack 29-10-2020 15:58:36

Hola, [oscarac]

El manejo de la foto, se revisó en este post

oscarac 30-10-2020 04:08:58

Interesante, pero lo que aun lo logro invocar o deducir es como invocar a la funcion verFoto ??

verfoto ([_res._foto]) ?????

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var _res : ResponseReniec2;
_razon, _dir :string;
begin
  _res := GetIConsultaRUCDNI.GetBuscaDNI(Edit1.Text);
  _RAZON := Format('%s', [_res._primerApellido + ' ' + _res._segundoApellido + ' ' + _res._nombres]);
  _DIR := Format('%s', [_res._direccion]);
  StaticText1.Caption := _razon;
//  VerFoto ([_res._foto]);
end;

procedure TForm1.VerFoto(Foto: TArray< System.Byte >; Image: TImage);
  var
    AStringStream: TStringStream;
begin
  AStringStream := TStringStream.Create(StringOf(Foto));
  try
    AStringStream.Position := 0;
    Image1.Picture.Graphic.LoadFromStream(AStringStream);
  finally
    AStringStream.Free;
  end;
end;

la unidad JPEG esta incluida, estoy usando xe7


me aparecen este error
[dcc32 Error] Unit1.pas(42): E2010 Incompatible types: 'Byte' and 'System.TArray<System.Byte>'


La franja horaria es GMT +2. Ahora son las 18:28:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi