Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-03-2017
paquimd paquimd is offline
Miembro
 
Registrado: feb 2017
Posts: 15
Poder: 0
paquimd Va por buen camino
Cita:
Empezado por CMB Ver Mensaje
Sí los agrego. Construyo el XML, con iteración de facturas, y pongo el namespace que corresponde a cada línea. Una vez completado el XML, lo mando y obtengo la respuesta esperada. Todo correcto, u otras cosas, como Factura duplicada si vuelvo a mandar el mismo.
Entiendo que tú lo que haces es construir un objeto que es el que envías. Nosotros lo que intentamos hacer, yo en principio estoy probando con el de ejemplo de la AEAT, es subir un archivo .xml que estamos deserializando. Para ello tiene que ser con el formato que envié esta mañana:

Código:
<SuministroLRFacturasEmitidas>
            <Cabecera>
                <IDVersionSii>0.5</IDVersionSii>
                <Titular>
El problema es el mensaje que ya indicó javi_valencia44, que el objeto que crea está vacío, va sin cabecera ni nada. Ahí es donde me pierdo.


Saludos
Responder Con Cita
  #2  
Antiguo 03-03-2017
bartag bartag is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 11
Poder: 0
bartag Va por buen camino
Cita:
Empezado por paquimd Ver Mensaje
Entiendo que tú lo que haces es construir un objeto que es el que envías. Nosotros lo que intentamos hacer, yo en principio estoy probando con el de ejemplo de la AEAT, es subir un archivo .xml que estamos deserializando. Para ello tiene que ser con el formato que envié esta mañana:

Código:
<SuministroLRFacturasEmitidas>
            <Cabecera>
                <IDVersionSii>0.5</IDVersionSii>
                <Titular>
El problema es el mensaje que ya indicó javi_valencia44, que el objeto que crea está vacío, va sin cabecera ni nada. Ahí es donde me pierdo.


Saludos
Yo he hecho pruebas partiendo de un xml y deserializando/enviando posteriormente tras cumplimentar los datos deseados y no me ha dado problemas.

Creo que el error de las cabeceras os puede venir porque:
- El objeto deserializer no admite campos soap. Por dicho motivo y como bien dices, debes tomar la parte del xml que comprende el nodo <SuministroLRFacturasEmitidas>
- No le estáis pasando el namespace al XmlSerializer.

El mío lo tengo así (para el registro facturas emitidas):
Código:
Dim x As New XmlSerializer(_SuministroLRFacturasEmitidas.GetType, "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") ', "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd")

            ' A FileStream is needed to read the XML document.
            Dim filename As String = "facturaEmitidaMODEL.XML"


            Using reader As New FileStream(filename, FileMode.Open)
                _SuministroLRFacturasEmitidas = CType(x.Deserialize(reader), SuministroLRFacturasEmitidas)
            End Using
Todo lo anterior es -si no te he entendido mal- para hacer el envío partiendo de un xml previo...
Responder Con Cita
  #3  
Antiguo 05-03-2017
jlegido jlegido is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 17
Poder: 0
jlegido Va por buen camino
Cita:
Empezado por bartag Ver Mensaje
Yo he hecho pruebas partiendo de un xml y deserializando/enviando posteriormente tras cumplimentar los datos deseados y no me ha dado problemas.

Creo que el error de las cabeceras os puede venir porque:
- El objeto deserializer no admite campos soap. Por dicho motivo y como bien dices, debes tomar la parte del xml que comprende el nodo <SuministroLRFacturasEmitidas>
- No le estáis pasando el namespace al XmlSerializer.

El mío lo tengo así (para el registro facturas emitidas):
Código:
Dim x As New XmlSerializer(_SuministroLRFacturasEmitidas.GetType, "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") ', "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd")

            ' A FileStream is needed to read the XML document.
            Dim filename As String = "facturaEmitidaMODEL.XML"


            Using reader As New FileStream(filename, FileMode.Open)
                _SuministroLRFacturasEmitidas = CType(x.Deserialize(reader), SuministroLRFacturasEmitidas)
            End Using
Todo lo anterior es -si no te he entendido mal- para hacer el envío partiendo de un xml previo...

Para los que lo hacemos en VB.NET, esta claro que el .xml a enviar empieza o comprende el nodo <siiLR:SuministroLRFacturasEmtidas>, y que tiene que tener la siguiente estructura para poder ser enviado a AEAT:
Código:
<siiLR:SuministroLRFacturasEmitidas>
  <sii:Cabecera>
     <sii:IDVersionSii>0.1</sii:IDVersionSii>
        <sii:Titular>
         …
Yo entiendo que los prefijos –espacios de nombres- siiLR y sii en los diferentes elemntos son obligatorios.

Despues hemos de Deserializar dicho xml para asociarlo/cargarlo en un objeto tipo SuministroLRFacturasEmitidas que es el que enviaremos a AEAT (en mi caso Dim testF As New SuministroLRFacturasEmitidas)
Pero, y aquí viene el problema, en el xml hay 2 espacios de nombres: siiLR y sii que de alguna manera hay que indicar que se tengan en cuenta.
yo he intentado tu solucion bartag, es decir:

Código:
Dim x As New XmlSerializer(testF.GetType, "https://w**2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") ', "https://w**2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") 
Dim reader As New FileStream(filename, FileMode.Open)
   testF = CType(x.Deserialize(reader), SuministroLRFacturasEmitidas)
pero no me funciona.
Que puede estar mal?. Si a ti te funciona, ¿puedes poner el codigo mas amplio?
Observo que en Dim x As New XmlSerializer(testF.GetType, "https://w**.agenciatributaria..., repites la misma cadena, aunque supongo que lo correcto como segunda cadena seria poner:
https://**2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd,
lo he probado tambien asi, pero sigue sin funcionar.

Muchas gracias por tu ayuda

P.D. donde pongo ** me refiero a una enlace (No tengo permiso para poner enlaces de forma normal)
Responder Con Cita
  #4  
Antiguo 05-03-2017
bartag bartag is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 11
Poder: 0
bartag Va por buen camino
Te pongo el código que utilizo. Básicamente lo que hace es tomar un archivo xml y lo envía. Debes por favor cumplimentar previamente los campos de dicho archivo pues en caso contrario te dará errores de validación.

Código:
        ' ----------------------------------------------------------------------------------------
        Dim store As Security.Cryptography.X509Certificates.X509Store = New Security.Cryptography.X509Certificates.X509Store("My")
        store.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly)

        Dim CertificadoCorrecto As New System.Security.Cryptography.X509Certificates.X509Certificate2
        
        For Each x In store.Certificates
            ListCert = ListCert & vbNewLine
        Next
        'RichTextBox1.Text = ListCert

        CertificadoCorrecto = store.Certificates(CInt(TextBoxNumeroOrdenCertificado.Text)) '(5)

        ' Objeto que almacenara la respuesta de la funcion del Web Service
        Dim resp As New ServiceReference1.RespuestaLRFEmitidasType

        ' Ws
        Dim Ws As New ServiceReference1.siiSOAPClient

        Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
        Ws.ClientCredentials.UseIdentityConfiguration = True

        ' Asignamos el certificado:
        Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
        ' ----------------------------------------------------------------------------------------


        ' ----------------------------------------------------------------------------------------
        Dim _SuministroLRFacturasEmitidas As New SuministroLRFacturasEmitidas
        '--------------------------------------------------------------------------
        
        Try

            Dim x As New XmlSerializer(_SuministroLRFacturasEmitidas.GetType, "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") 

            ' A FileStream is needed to read the XML document.
            Dim filename As String = "facturaEmitidaMODEL.XML"


            Using reader As New FileStream(filename, FileMode.Open)
                _SuministroLRFacturasEmitidas = CType(x.Deserialize(reader), SuministroLRFacturasEmitidas)
            End Using

            ' SI QUEREMOS SOBREESCRIBIR EL XML ANTES DE ENVIAR:
            ' SOBREESCRIBIMOS DATS FORM ANTES SEND:
            _SuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = Trim(TextBoxRazonSocialEmisor.Text)
            _SuministroLRFacturasEmitidas.Cabecera.Titular.NIF = Trim(TextBoxNIFEmisor.Text)

           '(...)

           '// se hace la llamada a la funcion suministrada por el WS
            resp = Ws.SuministroLRFacturasEmitidas(_SuministroLRFacturasEmitidas)

            Catch ex As Exception
            MsgBox(ex.Message)
            Respuesta2RichTextBox = ex.Message
        Finally
            'Me.Cursor = Cursors.Default
            'Threading.Thread.Sleep(5000)
            'ProgressBar1.Style = ProgressBarStyle.Continuous
            ''ProgressBar1.Value = ProgressBar1.Maximum
        End Try
Te adjunto también el archivo xml que debes cumplimentar donde indica '[A CUMPLIMENTAR]'.

Con esto, se toma la factura del archivo (fíjate que solamente tiene el nodo '<SuministroLRFacturasEmitidas>' y nada del encabezado SOAP para que no dé error al aplicar el Deserialize) y nos la convierte en un objeto serializado donde podemos acceder a los campos de la clase antes de enviar si lo deseamos; en caso contrario se envía y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc.
Archivos Adjuntos
Tipo de Archivo: zip facturaEmitidaMODEL.zip (1,6 KB, 235 visitas)
Responder Con Cita
  #5  
Antiguo 05-03-2017
jlegido jlegido is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 17
Poder: 0
jlegido Va por buen camino
Cita:
Empezado por bartag Ver Mensaje
Te pongo el código que utilizo. Básicamente lo que hace es tomar un archivo xml y lo envía. Debes por favor cumplimentar previamente los campos de dicho archivo pues en caso contrario te dará errores de validación.

Código:
        ' ----------------------------------------------------------------------------------------
        Dim store As Security.Cryptography.X509Certificates.X509Store = New Security.Cryptography.X509Certificates.X509Store("My")
        store.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly)

        Dim CertificadoCorrecto As New System.Security.Cryptography.X509Certificates.X509Certificate2
        
        For Each x In store.Certificates
            ListCert = ListCert & vbNewLine
        Next
        'RichTextBox1.Text = ListCert

        CertificadoCorrecto = store.Certificates(CInt(TextBoxNumeroOrdenCertificado.Text)) '(5)

        ' Objeto que almacenara la respuesta de la funcion del Web Service
        Dim resp As New ServiceReference1.RespuestaLRFEmitidasType

        ' Ws
        Dim Ws As New ServiceReference1.siiSOAPClient

        Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
        Ws.ClientCredentials.UseIdentityConfiguration = True

        ' Asignamos el certificado:
        Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
        ' ----------------------------------------------------------------------------------------


        ' ----------------------------------------------------------------------------------------
        Dim _SuministroLRFacturasEmitidas As New SuministroLRFacturasEmitidas
        '--------------------------------------------------------------------------
        
        Try

            Dim x As New XmlSerializer(_SuministroLRFacturasEmitidas.GetType, "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") 

            ' A FileStream is needed to read the XML document.
            Dim filename As String = "facturaEmitidaMODEL.XML"


            Using reader As New FileStream(filename, FileMode.Open)
                _SuministroLRFacturasEmitidas = CType(x.Deserialize(reader), SuministroLRFacturasEmitidas)
            End Using

            ' SI QUEREMOS SOBREESCRIBIR EL XML ANTES DE ENVIAR:
            ' SOBREESCRIBIMOS DATS FORM ANTES SEND:
            _SuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = Trim(TextBoxRazonSocialEmisor.Text)
            _SuministroLRFacturasEmitidas.Cabecera.Titular.NIF = Trim(TextBoxNIFEmisor.Text)

           '(...)

           '// se hace la llamada a la funcion suministrada por el WS
            resp = Ws.SuministroLRFacturasEmitidas(_SuministroLRFacturasEmitidas)

            Catch ex As Exception
            MsgBox(ex.Message)
            Respuesta2RichTextBox = ex.Message
        Finally
            'Me.Cursor = Cursors.Default
            'Threading.Thread.Sleep(5000)
            'ProgressBar1.Style = ProgressBarStyle.Continuous
            ''ProgressBar1.Value = ProgressBar1.Maximum
        End Try
Te adjunto también el archivo xml que debes cumplimentar donde indica '[A CUMPLIMENTAR]'.

Con esto, se toma la factura del archivo (fíjate que solamente tiene el nodo '<SuministroLRFacturasEmitidas>' y nada del encabezado SOAP para que no dé error al aplicar el Deserialize) y nos la convierte en un objeto serializado donde podemos acceder a los campos de la clase antes de enviar si lo deseamos; en caso contrario se envía y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc.


Hola bartag.

Muchas gracias por tu rapida respuesta y tu aparte de codigo. Me habia encallado en ese tema y se supone que mañana debo hacer pruebas reales.

Me ha clarificado bastante tu codigo despues de analizarlo con detenimiento, y sobre todo tu frase “y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc.”.

Finalmente he conseguido enviar y recibir respuesta de AEAT, aunque en la respuesta no recibo el esperado XML sino el siguiente texto:-pongo solo la parte inicial-

Código:
El tipo de contenido text/html del mensaje de respuesta no coincide con el tipo de contenido del enlace (text/xml; charset=utf-8). Si usa un codificador personalizado, asegúrese de que el método IsContentTypeSupported se implemente correctamente. Los primeros 1024 bytes de la respuesta fueron: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
Y aunque he estado trabajando en App.config par modificar los bindings no he conseguido pasar de ahí de momento
No se si tu tambien has pasado por ese punto.

Salu2
Responder Con Cita
  #6  
Antiguo 06-03-2017
bartag bartag is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 11
Poder: 0
bartag Va por buen camino
Cita:
Empezado por jlegido Ver Mensaje
Hola bartag.

Muchas gracias por tu rapida respuesta y tu aparte de codigo. Me habia encallado en ese tema y se supone que mañana debo hacer pruebas reales.

Me ha clarificado bastante tu codigo despues de analizarlo con detenimiento, y sobre todo tu frase “y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc.”.

Finalmente he conseguido enviar y recibir respuesta de AEAT, aunque en la respuesta no recibo el esperado XML sino el siguiente texto:-pongo solo la parte inicial-

Código:
El tipo de contenido text/html del mensaje de respuesta no coincide con el tipo de contenido del enlace (text/xml; charset=utf-8). Si usa un codificador personalizado, asegúrese de que el método IsContentTypeSupported se implemente correctamente. Los primeros 1024 bytes de la respuesta fueron: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
Y aunque he estado trabajando en App.config par modificar los bindings no he conseguido pasar de ahí de momento
No se si tu tambien has pasado por ese punto.

Salu2
Has modificado el App.config indicando que use certificados y la versión SOAP 1.1?
Ahora no estoy en casa. Esta noche te paso el archivo por si pudiera venir de ahí el error.
Responder Con Cita
  #7  
Antiguo 06-03-2017
bartag bartag is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 11
Poder: 0
bartag Va por buen camino
Subo el archivo App.config.

Saludos
Archivos Adjuntos
Tipo de Archivo: zip App.zip (799 Bytes, 218 visitas)
Responder Con Cita
  #8  
Antiguo 16-03-2017
jonortsal jonortsal is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 10
Poder: 0
jonortsal Va por buen camino
Por favor, podrías mandar un zip el proyecto? Es que soy más de PHP que de VB.NET y no sé que clases importar y demás para el certificado. Gracias.
Responder Con Cita
  #9  
Antiguo 20-03-2017
inyu inyu is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 48
Poder: 0
inyu Va por buen camino
Cita:
Empezado por bartag Ver Mensaje
Te pongo el código que utilizo. Básicamente lo que hace es tomar un archivo xml y lo envía. Debes por favor cumplimentar previamente los campos de dicho archivo pues en caso contrario te dará errores de validación.

Código:
        ' ----------------------------------------------------------------------------------------
        Dim store As Security.Cryptography.X509Certificates.X509Store = New Security.Cryptography.X509Certificates.X509Store("My")
        store.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly)

        Dim CertificadoCorrecto As New System.Security.Cryptography.X509Certificates.X509Certificate2
        
        For Each x In store.Certificates
            ListCert = ListCert & vbNewLine
        Next
        'RichTextBox1.Text = ListCert

        CertificadoCorrecto = store.Certificates(CInt(TextBoxNumeroOrdenCertificado.Text)) '(5)

        ' Objeto que almacenara la respuesta de la funcion del Web Service
        Dim resp As New ServiceReference1.RespuestaLRFEmitidasType

        ' Ws
        Dim Ws As New ServiceReference1.siiSOAPClient

        Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
        Ws.ClientCredentials.UseIdentityConfiguration = True

        ' Asignamos el certificado:
        Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
        ' ----------------------------------------------------------------------------------------


        ' ----------------------------------------------------------------------------------------
        Dim _SuministroLRFacturasEmitidas As New SuministroLRFacturasEmitidas
        '--------------------------------------------------------------------------
        
        Try

            Dim x As New XmlSerializer(_SuministroLRFacturasEmitidas.GetType, "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") 

            ' A FileStream is needed to read the XML document.
            Dim filename As String = "facturaEmitidaMODEL.XML"


            Using reader As New FileStream(filename, FileMode.Open)
                _SuministroLRFacturasEmitidas = CType(x.Deserialize(reader), SuministroLRFacturasEmitidas)
            End Using

            ' SI QUEREMOS SOBREESCRIBIR EL XML ANTES DE ENVIAR:
            ' SOBREESCRIBIMOS DATS FORM ANTES SEND:
            _SuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = Trim(TextBoxRazonSocialEmisor.Text)
            _SuministroLRFacturasEmitidas.Cabecera.Titular.NIF = Trim(TextBoxNIFEmisor.Text)

           '(...)

           '// se hace la llamada a la funcion suministrada por el WS
            resp = Ws.SuministroLRFacturasEmitidas(_SuministroLRFacturasEmitidas)

            Catch ex As Exception
            MsgBox(ex.Message)
            Respuesta2RichTextBox = ex.Message
        Finally
            'Me.Cursor = Cursors.Default
            'Threading.Thread.Sleep(5000)
            'ProgressBar1.Style = ProgressBarStyle.Continuous
            ''ProgressBar1.Value = ProgressBar1.Maximum
        End Try
Te adjunto también el archivo xml que debes cumplimentar donde indica '[A CUMPLIMENTAR]'.

Con esto, se toma la factura del archivo (fíjate que solamente tiene el nodo '<SuministroLRFacturasEmitidas>' y nada del encabezado SOAP para que no dé error al aplicar el Deserialize) y nos la convierte en un objeto serializado donde podemos acceder a los campos de la clase antes de enviar si lo deseamos; en caso contrario se envía y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc.
Hola bartag. Gracias por tus aportaciones, me han aclarado bastante el tema.
Estoy intentando usar tu código pero tengo un problema cuando hago el Deserialize sobre el XML modelo que has adjuntado. Me da un error "There is an error in XML document (2, 2)", ¿sabes a qué puede ser debido?

Gracias.
Responder Con Cita
  #10  
Antiguo 20-03-2017
Virman Virman is offline
Miembro
 
Registrado: ene 2017
Posts: 67
Poder: 8
Virman Va por buen camino
Angry Eliminado por BUG en OPENTEXT

Tras actualizar a la nueva versión de WebService, me ha empezado a devolver este error al tratar de enviar cualquier tipo de factura:

{"El cliente encontró el tipo de contenido de respuesta 'text/html', pero se esperaba 'text/xml'.\r\nError de la solicitud con el mensaje de error:Proceso de conexión con la Sede Electrónica de la Agencia Tributaria en curso.<!-- Menu de UTILIDADES PREVIEW -->\r\n\t</div>\r\n</body>\r\n<!-- Eliminado por BUG en OPENTEXT render:trackDependencies/-->\r\n</html>\r\n\r\n--."}

A alguien le ha pasado eso también? Esta mañana me dejaba enviar sin problemas.
Responder Con Cita
  #11  
Antiguo 20-03-2017
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 249
Poder: 18
Nasca Va por buen camino
Ahora la Agencia está muy lenta y no responde peticiones al WebService.
A ver si es por eso.
En lugar de procesar petición devuelve una respuesta diciendo que anda lenta.
Suele ser normal los días 20 por temas de presentación de 340.
No quiero ni imaginarme cuando entre en producción el SII.

Lo gracioso es que en lugar de devolver un código de error por saturación y punto devuelve una bonita web animada de 56 KB.
Es una buena oportunidad para añadir tolerancia a errores extraños al programa que gestiona el SII.

Última edición por Nasca fecha: 20-03-2017 a las 21:03:02.
Responder Con Cita
  #12  
Antiguo 21-03-2017
jonortsal jonortsal is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 10
Poder: 0
jonortsal Va por buen camino
Cita:
Empezado por inyu Ver Mensaje
Hola bartag. Gracias por tus aportaciones, me han aclarado bastante el tema.
Estoy intentando usar tu código pero tengo un problema cuando hago el Deserialize sobre el XML modelo que has adjuntado. Me da un error "There is an error in XML document (2, 2)", ¿sabes a qué puede ser debido?

Gracias.
Con este código, ¿qué modificación podemos hacer para que guarde el XML que enviamos (SOAP REQUEST) y el que recibimos (SOAP RESPONSE)
Gracias.
Responder Con Cita
  #13  
Antiguo 21-03-2017
javi_valencia44 javi_valencia44 is offline
Miembro
 
Registrado: mar 2017
Posts: 50
Poder: 8
javi_valencia44 Va por buen camino
A mi la nueva versión me da error en esta sección del código:

Public Shared Widening Operator CType(v As SuministroLRFacturasEmitidas) As SuministroLRFacturasEmitidas
Throw New NotImplementedException()
End Operator



Tras comentar este código y probar me da el mismo error que dice el compañero:

Cita:
Empezado por Virman Ver Mensaje
Tras actualizar a la nueva versión de WebService, me ha empezado a devolver este error al tratar de enviar cualquier tipo de factura:

{"El cliente encontró el tipo de contenido de respuesta 'text/html', pero se esperaba 'text/xml'.\r\nError de la solicitud con el mensaje de error:Proceso de conexión con la Sede Electrónica de la Agencia Tributaria en curso.<!-- Menu de UTILIDADES PREVIEW -->\r\n\t</div>\r\n</body>\r\n<!-- Eliminado por BUG en OPENTEXT render:trackDependencies/-->\r\n</html>\r\n\r\n--."}

A alguien le ha pasado eso también? Esta mañana me dejaba enviar sin problemas.
Responder Con Cita
  #14  
Antiguo 21-03-2017
bartag bartag is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 11
Poder: 0
bartag Va por buen camino
Cita:
Empezado por inyu Ver Mensaje
Hola bartag. Gracias por tus aportaciones, me han aclarado bastante el tema.
Estoy intentando usar tu código pero tengo un problema cuando hago el Deserialize sobre el XML modelo que has adjuntado. Me da un error "There is an error in XML document (2, 2)", ¿sabes a qué puede ser debido?

Gracias.
Perdón por no responder antes (estoy bastante atareado). Ten en cuenta que lo que indicaba funcionaba con la versión 0.5. El pasado día 15 incorporaron la versión 0.6 y es posible que hayan realizado modificaciones.

No obstante, comprueba por favor que el "App.config" está debidamente cumplimentado como comentaba y que el certificado carga correctamente. También que el archivo xml que intentas subir es el que puse, ya que si por ejemplo le estás intentando meter uno con namespaces, te va a dar el error que indicas.
Responder Con Cita
  #15  
Antiguo 16-06-2017
pilarinweb pilarinweb is offline
Registrado
NULL
 
Registrado: jun 2017
Posts: 5
Poder: 0
pilarinweb Va por buen camino
Question Cabeceras SII

Cita:
Empezado por bartag Ver Mensaje
Te pongo el código que utilizo. Básicamente lo que hace es tomar un archivo xml y lo envía. Debes por favor cumplimentar previamente los campos de dicho archivo pues en caso contrario te dará errores de validación.

Código:
        ' ----------------------------------------------------------------------------------------
        Dim store As Security.Cryptography.X509Certificates.X509Store = New Security.Cryptography.X509Certificates.X509Store("My")
        store.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly)

        Dim CertificadoCorrecto As New System.Security.Cryptography.X509Certificates.X509Certificate2
        
        For Each x In store.Certificates
            ListCert = ListCert & vbNewLine
        Next
        'RichTextBox1.Text = ListCert

        CertificadoCorrecto = store.Certificates(CInt(TextBoxNumeroOrdenCertificado.Text)) '(5)

        ' Objeto que almacenara la respuesta de la funcion del Web Service
        Dim resp As New ServiceReference1.RespuestaLRFEmitidasType

        ' Ws
        Dim Ws As New ServiceReference1.siiSOAPClient

        Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
        Ws.ClientCredentials.UseIdentityConfiguration = True

        ' Asignamos el certificado:
        Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
        ' ----------------------------------------------------------------------------------------


        ' ----------------------------------------------------------------------------------------
        Dim _SuministroLRFacturasEmitidas As New SuministroLRFacturasEmitidas
        '--------------------------------------------------------------------------
        
        Try

            Dim x As New XmlSerializer(_SuministroLRFacturasEmitidas.GetType, "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") 

            ' A FileStream is needed to read the XML document.
            Dim filename As String = "facturaEmitidaMODEL.XML"


            Using reader As New FileStream(filename, FileMode.Open)
                _SuministroLRFacturasEmitidas = CType(x.Deserialize(reader), SuministroLRFacturasEmitidas)
            End Using

            ' SI QUEREMOS SOBREESCRIBIR EL XML ANTES DE ENVIAR:
            ' SOBREESCRIBIMOS DATS FORM ANTES SEND:
            _SuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = Trim(TextBoxRazonSocialEmisor.Text)
            _SuministroLRFacturasEmitidas.Cabecera.Titular.NIF = Trim(TextBoxNIFEmisor.Text)

           '(...)

           '// se hace la llamada a la funcion suministrada por el WS
            resp = Ws.SuministroLRFacturasEmitidas(_SuministroLRFacturasEmitidas)

            Catch ex As Exception
            MsgBox(ex.Message)
            Respuesta2RichTextBox = ex.Message
        Finally
            'Me.Cursor = Cursors.Default
            'Threading.Thread.Sleep(5000)
            'ProgressBar1.Style = ProgressBarStyle.Continuous
            ''ProgressBar1.Value = ProgressBar1.Maximum
        End Try
Te adjunto también el archivo xml que debes cumplimentar donde indica '[A CUMPLIMENTAR]'.

Con esto, se toma la factura del archivo (fíjate que solamente tiene el nodo '<SuministroLRFacturasEmitidas>' y nada del encabezado SOAP para que no dé error al aplicar el Deserialize) y nos la convierte en un objeto serializado donde podemos acceder a los campos de la clase antes de enviar si lo deseamos; en caso contrario se envía y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc.
Hola bartag,
estoy atascada en este tema también, a ver si me puedes ayudar....aunque mi codigo es C#...
genero dinamicamente un fichero xml:
xmlWriter = new XmlTextWriter(nombrefichero, Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.Indentation = 4;
xmlWriter.WriteRaw("<?xml version='1.0' encoding='UTF-8'?>");
xmlWriter.WriteStartElement("soapenv:Envelope");
xmlWriter.WriteAttributeString("xmlns", "soapenv", null, "...schemas.xmlsoap.org/soap/envelope/");
xmlWriter.WriteAttributeString("xmlns", "siiLR", null, "....agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd");
xmlWriter.WriteAttributeString("xmlns", "sii", null, "....agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd");

xmlWriter.WriteStartElement("soapenv:Header");
xmlWriter.WriteEndElement();

xmlWriter.WriteStartElement("soapenv:Body");
xmlWriter.WriteStartElement("siiLR:SuministroLRFacturasEmitidas");
.
.
.
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
.
.
.
System.IO.FileStream fStream = new System.IO.FileStream(nombrefichero, System.IO.FileMode.Open);
SuministroFactEmitidas.SuministroLRFacturasEmitidas oSfe = new SuministroFactEmitidas.SuministroLRFacturasEmitidas();
oSfe = (SuministroFactEmitidas.SuministroLRFacturasEmitidas)oXmlSerializer.Deserialize(fStream);

me da error
Error en el documento XML (2, 2).
No se esperaba <Envelope xmlns='...schemas.xmlsoap.org/soap/envelope/'>.

que estoy haciendo mal???

Gracias
Un saludo
Responder Con Cita
  #16  
Antiguo 25-05-2017
Patry159 Patry159 is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 11
Poder: 0
Patry159 Va por buen camino
Cita:
Empezado por jlegido Ver Mensaje
Para los que lo hacemos en VB.NET, esta claro que el .xml a enviar empieza o comprende el nodo <siiLR:SuministroLRFacturasEmtidas>, y que tiene que tener la siguiente estructura para poder ser enviado a AEAT:
Código:
<siiLR:SuministroLRFacturasEmitidas>
  <sii:Cabecera>
     <sii:IDVersionSii>0.1</sii:IDVersionSii>
        <sii:Titular>
         …
Yo entiendo que los prefijos –espacios de nombres- siiLR y sii en los diferentes elemntos son obligatorios.

Despues hemos de Deserializar dicho xml para asociarlo/cargarlo en un objeto tipo SuministroLRFacturasEmitidas que es el que enviaremos a AEAT (en mi caso Dim testF As New SuministroLRFacturasEmitidas)
Pero, y aquí viene el problema, en el xml hay 2 espacios de nombres: siiLR y sii que de alguna manera hay que indicar que se tengan en cuenta.
yo he intentado tu solucion bartag, es decir:


pero no me funciona.
Que puede estar mal?. Si a ti te funciona, ¿puedes poner el codigo mas amplio?
lo he probado tambien asi, pero sigue sin funcionar.

Muchas gracias por tu ayuda

P.D. donde pongo ** me refiero a una enlace (No tengo permiso para poner enlaces de forma normal)


Hola, necesito un poco de ayuda porque ya no sé que me falta o que estoy haciendo mal. En un inicio habia creado el .xml a mano copiando uno de los ejemplos, pero siempre me daba el error de 'La direccion no se corresponde con el fichero de entrada'. Entonces he decidido importar las .wsdl y a partir de objetos asignar los valores y generar el xml a partir de esos objetos. A la hora de generarlo no da error, pero compruebo que faltan las primeras lineas del <envelope> al igual que los inicios de linea con el <sii> o <siiLR>.

No sé si esto lo habéis hablado mas adelante y dado una solución o no (voy leyendo poco a poco todos los post), por eso pregunto. El código lo estoy desarrollando en vb.net.

Dejo por aquí el xml creado.
Gracias,

Código:
<?xml version="1.0" encoding="utf-8"?>
<SuministroLRFacturasRecibidas xmlns:xsi="**.w3.org/2001/XMLSchema-instance" xmlns:xsd="**.w3.org/2001/XMLSchema">
  <Cabecera xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
    <IDVersionSii>0.7</IDVersionSii>
    <Titular>
      <NombreRazon>NOMBRE EMPRESA</NombreRazon>
      <NIF>NIF EMPRESA</NIF>
    </Titular>
    <TipoComunicacion>A0</TipoComunicacion>
  </Cabecera>
  <RegistroLRFacturasRecibidas xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd">
    <PeriodoImpositivo xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
      <Ejercicio>2017</Ejercicio>
      <Periodo>05</Periodo>
    </PeriodoImpositivo>
    <IDFactura>
      <IDEmisorFactura xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
        <NIF>NIF PROVEEDOR</NIF>
      </IDEmisorFactura>
      <NumSerieFacturaEmisor xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">NUMERO FACTURA</NumSerieFacturaEmisor>
      <FechaExpedicionFacturaEmisor xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">FECHA FACTURA</FechaExpedicionFacturaEmisor>
    </IDFactura>
    <FacturaRecibida>
      <TipoFactura xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">F1</TipoFactura>
      <FechaOperacion xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"> FECHA OPERACION</FechaOperacion>
      <ClaveRegimenEspecialOTrascendencia xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">01</ClaveRegimenEspecialOTrascendencia>
      <DescripcionOperacion xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">DESCRIPCION FACTURA</DescripcionOperacion>
      <DesgloseFactura xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
        <DesgloseIVA>
          <DetalleIVA>
            <TipoImpositivo>TIPO IVA</TipoImpositivo>
            <BaseImponible>IMPORTE BASE</BaseImponible>
            <CuotaSoportada>IMPORTE IVA</CuotaSoportada>
          </DetalleIVA>
        </DesgloseIVA>
      </DesgloseFactura>
      <Contraparte xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
        <NombreRazon>NOMBRE PROVEEDOR</NombreRazon>
        <NIF>NIF PROVEEDOR</NIF>
      </Contraparte>
      <FechaRegContable xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">FECHA OPERACION</FechaRegContable>
      <CuotaDeducible xmlns="**.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">CUOTA DEDUCIBLE</CuotaDeducible>
    </FacturaRecibida>
  </RegistroLRFacturasRecibidas>
</SuministroLRFacturasRecibidas>
Responder Con Cita
  #17  
Antiguo 25-05-2017
mike_GK mike_GK is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 11
Poder: 0
mike_GK Va por buen camino
Generar los wdsl

Hola a todos, soy nuevo por aqui y me ha tocado meterme tarde en esto

Resulta que estoy intentando hacer los WSDL Importer y estoy teniendo problemas.

Primero tenia problemas de que no me los generaba completos y faltaba mucha informacion.

Ahora consigo que me los cree pero al copilar me indica que algunos identificadores ya estan declarados.

Por ejemplo aqui:
FacturaARType = (S, N);

Los indica que S y N ya estan declarados

Lo estoy haciendo mal cuando los creo o algo?
Responder Con Cita
  #18  
Antiguo 25-05-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.031
Poder: 22
keys Va por buen camino
Cita:
Empezado por mike_GK Ver Mensaje
Hola a todos, soy nuevo por aqui y me ha tocado meterme tarde en esto

Resulta que estoy intentando hacer los WSDL Importer y estoy teniendo problemas.

Primero tenia problemas de que no me los generaba completos y faltaba mucha informacion.

Ahora consigo que me los cree pero al copilar me indica que algunos identificadores ya estan declarados.

Por ejemplo aqui:
FacturaARType = (S, N);

Los indica que S y N ya estan declarados

Lo estoy haciendo mal cuando los creo o algo?
A la hora de generarlos tienes que poner todos los ficheros en la misma carpeta. Tanto los wsdl como los xsd.
Responder Con Cita
  #19  
Antiguo 25-05-2017
mike_GK mike_GK is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 11
Poder: 0
mike_GK Va por buen camino
Cita:
Empezado por keys Ver Mensaje
A la hora de generarlos tienes que poner todos los ficheros en la misma carpeta. Tanto los wsdl como los xsd.
Keys perdona mi ignorancia, pero exactamente como haces eso?

Porque yo lo unico que estoy haciendo es abrir el wsdl con el WDSL Importer y en principio ya me genera el .pas
Responder Con Cita
  #20  
Antiguo 26-05-2017
scooterjgm scooterjgm is offline
Miembro
 
Registrado: ago 2004
Posts: 115
Poder: 20
scooterjgm Va por buen camino
WSDL Importer

Cita:
Empezado por mike_GK Ver Mensaje
Hola a todos, soy nuevo por aqui y me ha tocado meterme tarde en esto

Resulta que estoy intentando hacer los WSDL Importer y estoy teniendo problemas.

Primero tenia problemas de que no me los generaba completos y faltaba mucha informacion.

Ahora consigo que me los cree pero al copilar me indica que algunos identificadores ya estan declarados.

Por ejemplo aqui:
FacturaARType = (S, N);

Los indica que S y N ya estan declarados

Lo estoy haciendo mal cuando los creo o algo?
Buenos días,

Utilizo delphi 7 y al utilizar el WSDL Importer, creo que me lo genera incompleto ya que al compilar me da el error '[Error] SuministroFactRecibidas.pas(44): Undeclared identifier: 'SuministroLRFacturasRecibidas'.

¿¿Cómo solucionaste este problema??

Gracias

Código:
// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactRecibidas.wsdl
// Encoding : UTF-8
// Version  : 1.0
// (26/05/2017 13:27:00 - 1.33.2.5)
// ************************************************************************ //

unit SuministroFactRecibidas;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

type

  // ************************************************************************ //
  // The following types, referred to in the WSDL document are not being represented
  // in this file. They are either aliases[@] of other types represented or were referred
  // to but never[!] declared in the document. The types from the latter category
  // typically map to predefined/known XML or Borland types; however, they could also 
  // indicate incorrect WSDL documents that failed to declare or import a schema type.
  // ************************************************************************ //
  // !:SuministroLRFacturasRecibidas - "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"
  // !:RespuestaLRFacturasRecibidas - "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/RespuestaSuministro.xsd"
  // !:BajaLRFacturasRecibidas - "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"
  // !:RespuestaLRBajaFacturasRecibidas - "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/RespuestaSuministro.xsd"
  // !:ConsultaLRFacturasRecibidas - "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/ConsultaLR.xsd"
  // !:RespuestaConsultaLRFacturasRecibidas - "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/RespuestaConsultaLR.xsd"


  // ************************************************************************ //
  // Namespace : https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactRecibidas.wsdl
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // binding   : siiBinding
  // service   : siiService
  // port      : SuministroFactRecibidasPruebas
  // URL       : https://www7.aeat.es/wlpl/SSII-FACT/ws/fr/SiiFactFRV1SOAP
  // ************************************************************************ //
  siiSOAP = interface(IInvokable)
  ['{39AA0DD7-27CF-DCD9-058B-219CBD81656D}']
    function  SuministroLRFacturasRecibidas(const SuministroLRFacturasRecibidas: SuministroLRFacturasRecibidas): RespuestaLRFacturasRecibidas; stdcall;
    function  AnulacionLRFacturasRecibidas(const AnulacionLRFacturasRecibidas: BajaLRFacturasRecibidas): RespuestaLRBajaFacturasRecibidas; stdcall;
    function  ConsultaLRFacturasRecibidas(const ConsultaLRFacturasRecibidas: ConsultaLRFacturasRecibidas): RespuestaConsultaLRFacturasRecibidas; stdcall;
  end;

function GetsiiSOAP(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): siiSOAP;


implementation

function GetsiiSOAP(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): siiSOAP;
const
  defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactRecibidas.wsdl';
  defURL  = 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fr/SiiFactFRV1SOAP';
  defSvc  = 'siiService';
  defPrt  = 'SuministroFactRecibidasPruebas';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as siiSOAP);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;


initialization
  InvRegistry.RegisterInterface(TypeInfo(siiSOAP), 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactRecibidas.wsdl', 'UTF-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(siiSOAP), '');
  InvRegistry.RegisterInvokeOptions(TypeInfo(siiSOAP), ioDocument);
  InvRegistry.RegisterInvokeOptions(TypeInfo(siiSOAP), ioLiteral);

end.
__________________
Hay 10 tipos de personas, las que entienden el código binario y las que no.

ww.clubdelphi.com/foros/guiaestilo.php
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
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4170 Hace 1 Semana 17:29:05
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 20:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 11:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 20:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 15:49:20


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


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