Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Delphi para la web
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-06-2016
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Alguien ha usado directamente el webservice de consulta al padron de AFIP

Hola amigos...estoy tratando de programar usando directamente los webservices de AFIP, es decir sin librerias externas..
ya tengo mi crt y mi key para homologacion...

el caso es que importe el webservice de padron de nivel 3:
https://awshomo.afip.gov.ar/padron-p...rviceImpl?WSDL

y usando el componente HTTPRio de esta manera

Código Delphi [-]
begin
admin:=TIniFile.Create(ExtractFilePath(Application.ExeName )+ 'caja.ini');
  ECUIT:=Copy(MaskEdit1.Text,0,2) + Copy(MaskEdit1.Text,4,8) + Copy(MaskEdit1.Text,13,1);
 //   Fsign:=obtenersign(respuestaXML));
  TLogin.unicoLogin;


   xml2:=NewXMLDocument;
   xml1:=NewXMLDocument;

   xml1.LoadFromFile(ExtractFilePath(Application.ExeName)+ 'cuit.xml');

   content:=(RIOCuit as padronAFIP.ContribuyenteNivel3SelectServiceImpl).get(xml1.XML.Text,login.armarToken,login.armarSign)  ;
   xml2.XML.Text:=content;
   xml2.Active:=True;
   xml2.SaveToFile(ExtractFilePath(Application.ExeName) + 'archivocliente.xml');

end;
obtengo un error Exception class $C0000005 with message 'access violation at 0x00923065: read of address 0x00000000'. Process TPV.exe (3216)

segun vi en internet los ceros significan que hago referencia a un puntero inexistente..hice un showmessage de login.sign y login.token y todo va bien...
el error es en la linea
Código Delphi [-]
content:=(RIOCuit as padronAFIP.ContribuyenteNivel3SelectServiceImpl).get(xml1.XML.Text,login.armarToken,login.armarSign)  ;

muchas gracias desde ya
Responder Con Cita
  #2  
Antiguo 29-06-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, no olvides poner títulos descriptivos a tus preguntas, que ya no eres un novato en los foros
Responder Con Cita
  #3  
Antiguo 29-06-2016
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Por favor, no olvides poner títulos descriptivos a tus preguntas, que ya no eres un novato en los foros
ok mil disculpas...

y no sabes donde puede haber un error?
Responder Con Cita
  #4  
Antiguo 29-06-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tendrás que comprobar poniendo un punto de ruptura en esa línea y mirando los valores que tienen, a ver si así encuentras el que está a nulo.
Responder Con Cita
  #5  
Antiguo 29-06-2016
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 22
gatosoft Va camino a la fama
La línea que inicas tiene varios elementos. y debes comprobar de forma aislada donde puede ocurrir el error.

Código Delphi [-]
content:=(RIOCuit as padronAFIP.ContribuyenteNivel3SelectServiceImpl).get(xml1.XML.Text,login.armarToken,login.armarSign)  ;

Los ceros en el mensaje que muestras no necesariamente puede hacer referencia a un objeto no instanciado. Puede ser error accesando a un campo que no reconoce debido a que hay un TypeCast Erróneo. (Es Posible).

Para hacer la prueba aislada, te recomiendo verificar primero las funciones y variables que llamas dentro del GET

1) xml1.XML.Text. Verifica que llegue texto
2) login.armarToken y login.armarSign==> Verifica que la variable login esté instanciada
3) Luego verifica que RIOCuit no sea null
4) ¿padronAFIP.ContribuyenteNivel3SelectServiceImpl es una clase o devuelve una clase.?

Me quedala duda si el procedimiento que llamas al principio TLogin.unicoLogin; deberia asignarse a una variable o simplemente es un procedimiento de clase que ejecuta algo específico.

saludo,
Responder Con Cita
  #6  
Antiguo 30-06-2016
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Cita:
Empezado por gatosoft Ver Mensaje
La línea que inicas tiene varios elementos. y debes comprobar de forma aislada donde puede ocurrir el error.

Código Delphi [-]
content:=(RIOCuit as padronAFIP.ContribuyenteNivel3SelectServiceImpl).get(xml1.XML.Text,login.armarToken,login.armarSign)  ;

Los ceros en el mensaje que muestras no necesariamente puede hacer referencia a un objeto no instanciado. Puede ser error accesando a un campo que no reconoce debido a que hay un TypeCast Erróneo. (Es Posible).

Para hacer la prueba aislada, te recomiendo verificar primero las funciones y variables que llamas dentro del GET

1) xml1.XML.Text. Verifica que llegue texto
2) login.armarToken y login.armarSign==> Verifica que la variable login esté instanciada
3) Luego verifica que RIOCuit no sea null
4) ¿padronAFIP.ContribuyenteNivel3SelectServiceImpl es una clase o devuelve una clase.?

Me quedala duda si el procedimiento que llamas al principio TLogin.unicoLogin; deberia asignarse a una variable o simplemente es un procedimiento de clase que ejecuta algo específico.

saludo,
1-xml1.XML.Text.. si llega, hice un showmessage y me lo muestra..es el contenido de un archivo xml, que corresponde al cuit a consultar y que debe respetar un dtd...

Tlogin.unicoLogin= esto corresponde al patron singleton..para no estar logueandome en la afip cada vez que solicito consultar un cuit..tengo ese metodo de clase:

Código Delphi [-]
class function TLogin.unicoLogin:TLogin;

begin
  if login<>nil then
    begin
      if login.expiro=False then
         begin
            Result:=login;
         end
         else
         begin
           login.actualizarsigntoken;
           Result:=login;
         end;
    end
    else
    begin
    login:=Tlogin.Loguearse('padron-puc-ws-consulta-nivel3');
    login.respuestaXML(login.generarCMS(login.guardarXML()));

    end;
end;

para lo mismo tengo una variable global en la unidad donde esta la clase login..les dejo la unit completa adjunta..
3-padronAFIP.ContribuyenteNivel3SelectServiceImpl: ese metodo esta en la unidad creada por el wsdl importer a partir del webservice de consulta al padron...
la verdad no se que puede ser..de ultima mas tarde les mando una captura de pantalla con el debug
Archivos Adjuntos
Tipo de Archivo: rar UAutenticacionAFIP.rar (2,1 KB, 33 visitas)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
AFIP Argentina: Consultas al padron de contribuyentes AgustinOrtu Bibliotecas de código fuente 18 28-06-2017 04:04:38
[PEAR] ¿Alguien lo ha usado? Ñuño Martínez PHP 8 18-01-2007 16:54:41
Alguien ha usado GUPTA? mlara Debates 6 07-11-2006 00:11:19
Alguien ha usado la samsung spr - 350?? AFilth Impresión 1 03-02-2006 14:46:55


La franja horaria es GMT +2. Ahora son las 01:21:18.


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
Copyright 1996-2007 Club Delphi