FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Recibido. Muchísimas gracias.
Estoy comparando y lo que tú me mandas tiene mucho más contenido que el que me ha generado a mi importándolo desde Delphi. No solo no encuentro la cabecera que en el tuyo si: Código:
'''<remarks/> <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0"), _ System.SerializableAttribute(), _ System.Diagnostics.DebuggerStepThroughAttribute(), _ System.ComponentModel.DesignerCategoryAttribute("code"), _ System.Xml.Serialization.XmlTypeAttribute([Namespace]:="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicacion"& _ "es/es/aeat/tike/cont/ws/SuministroInformacion.xsd")> _ Partial Public Class Cabecera Private iDVersionField As VersionType Private obligadoEmisionField As PersonaFisicaJuridicaESType Private tipoRegistroAEATField As TipoRegistroAEATType Private fechaFinVeriFactuField As String '''<remarks/> Public Property IDVersion() As VersionType Get Return Me.iDVersionField End Get Set Me.iDVersionField = value End Set End Property '''<remarks/> Public Property ObligadoEmision() As PersonaFisicaJuridicaESType Get Return Me.obligadoEmisionField End Get Set Me.obligadoEmisionField = value End Set End Property '''<remarks/> Public Property TipoRegistroAEAT() As TipoRegistroAEATType Get Return Me.tipoRegistroAEATField End Get Set Me.tipoRegistroAEATField = value End Set End Property '''<remarks/> Public Property FechaFinVeriFactu() As String Get Return Me.fechaFinVeriFactuField End Get Set Me.fechaFinVeriFactuField = value End Set End Property End Class '''<remarks/> Código:
'''<remarks/> <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0"), _ System.SerializableAttribute(), _ System.Xml.Serialization.XmlTypeAttribute([Namespace]:="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicacion"& _ "es/es/aeat/tike/cont/ws/SuministroInformacion.xsd")> _ Public Enum VersionType '''<remarks/> <System.Xml.Serialization.XmlEnumAttribute("1.0")> _ Item10 End Enum '''<remarks/> ¿Podrías mandar el link del wsdl que estás importando a ver si es que no estoy cogiendo el correcto? ¿Es normal que el mismo wsdl al importarlo desde dos lenguajes diferentes se "coma" cosas? Un poco más abajo están las siguientes definiciones: Código:
'''<remarks/> <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0"), _ System.SerializableAttribute(), _ System.Diagnostics.DebuggerStepThroughAttribute(), _ System.ComponentModel.DesignerCategoryAttribute("code"), _ System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=true, [Namespace]:="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicacion"& _ "es/es/aeat/tike/cont/ws/SuministroLR.xsd")> _ Partial Public Class AltaFactuSistemaFacturacion Inherits SistemaFacturacionAltaFact Private registroAltaFacturasField() As FacturasEmitidasType '''<remarks/> <System.Xml.Serialization.XmlElementAttribute("RegistroAltaFacturas")> _ Public Property RegistroAltaFacturas() As FacturasEmitidasType() Get Return Me.registroAltaFacturasField End Get Set Me.registroAltaFacturasField = value End Set End Property End Class '''<remarks/> <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0"), _ System.SerializableAttribute(), _ System.Diagnostics.DebuggerStepThroughAttribute(), _ System.ComponentModel.DesignerCategoryAttribute("code"), _ System.Xml.Serialization.XmlTypeAttribute([Namespace]:="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicacion"& _ "es/es/aeat/tike/cont/ws/SuministroInformacion.xsd")> _ Partial Public Class SistemaFacturacionAltaFact Private cabeceraField As Cabecera '''<remarks/> Public Property Cabecera() As Cabecera Get Return Me.cabeceraField End Get Set Me.cabeceraField = value End Set End Property End Class '''<remarks/> |
#2
|
|||
|
|||
Cita:
Última edición por Neftali [Germán.Estévez] fecha: 08-01-2024 a las 13:54:19. Razón: Añadir URL |
#3
|
|||
|
|||
Cita:
No entiendo nada. ¿Será por culpa de la ñapa esa que hacemos para que no de el error de las cadenas más largas de 255 caracteres? |
#4
|
||||
|
||||
Cita:
No creo que sea por eso. Ese error es de Delphi una vez importado, simplemente por cómo se ha formado el fichero (que está bien formado). Salvo que delphi no acepta esas cadenas largas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Cita:
Acabo de volver a hacer las siguientes pruebas de importación del wsdl:
Con las dos primeras opciones aparentemente me genera lo mismo, mientras que sin lo importo con la última opción, entonces si que me genera un wsdl con la famosa CABECERA, VersionType, etc. ¿Puede ser posible que sólo por eso ya cambie tanto la importación del fichero WSDL?. Ahora la llamada al SOAP la tengo que hacer así para que me compile: Código:
var AltaFactuSistFact : AltaFactuSistemaFacturacion; result : RespuestaAltaFactuSistemaFacturacionType; begin result := GetsfSOAP(true, '', HTTPRIO1).AltaFactuSistemaFacturacion(AltaFactuSistFact); end |
#6
|
||||
|
||||
A mi los tres ficheros generados con esas opciones me resultan similares.
Completando el código que has puesto, la llamada podría ser similar a esta:
En este caso genera un fichero como este: Código:
<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"> <SOAP-ENV:Body xmlns:NS1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SistemaFacturacion.wsdl" xmlns:NS2="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:NS3="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <NS1:AltaFactuSistemaFacturacion SOAP-ENV:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <AltaFactuSistemaFacturacion SOAP-ENC:id="1" xsi:type="NS2:AltaFactuSistemaFacturacion"> <Cabecera SOAP-ENC:id="2" xsi:type="NS3:Cabecera"> <IDVersion xsi:type="NS3:VersionType">1.0</IDVersion> <ObligadoEmision SOAP-ENC:id="3" xsi:type="NS3:PersonaFisicaJuridicaESType"> <NombreRazon xsi:type="xsd:string">Empresa pruebas</NombreRazon> <NIF xsi:type="xsd:string">11111111H</NIF> </ObligadoEmision> <TipoRegistroAEAT xsi:type="NS3:TipoRegistroAEATType">T0</TipoRegistroAEAT> <FechaFinVeriFactu xsi:type="xsd:string">01/01/2026</FechaFinVeriFactu> </Cabecera> <item SOAP-ENC:id="4" xsi:type="NS2:FacturasEmitidasType"> <RegistroFacturacion SOAP-ENC:id="5" xsi:type="NS3:RegistroFacturacionType"> <IDFactura SOAP-ENC:id="6" xsi:type="NS3:IDFacturaExpedidaType"> <IDEmisorFactura SOAP-ENC:id="7" xsi:type="NS3:IDEmisorFactura"> <NIF xsi:type="xsd:string">3333333</NIF> </IDEmisorFactura> <NumSerieFacturaEmisor xsi:type="xsd:string">23/123456</NumSerieFacturaEmisor> <FechaExpedicionFacturaEmisor xsi:type="xsd:string">31/12/23</FechaExpedicionFacturaEmisor> </IDFactura> <NombreRazonEmisor xsi:type="xsd:string"/> <TipoRegistroSIF xsi:type="NS3:TipoRegistroSIFType">S0</TipoRegistroSIF> <TipoFactura xsi:type="NS3:ClaveTipoFacturaType">F1</TipoFactura> <DescripcionOperacion xsi:type="xsd:string">venta de mercaderías</DescripcionOperacion> <Desglose xsi:type="SOAP-ENC:Array" SOAP-ENC:itemType="NS3:DetalleType" SOAP-ENC:arraySize="1"> <item SOAP-ENC:id="8" xsi:type="NS3:DetalleType"> <ClaveRegimen xsi:type="NS3:IdOperacionesTrascendenciaTributariaType">01</ClaveRegimen> <TipoImpositivo xsi:type="xsd:string">21</TipoImpositivo> <BaseImponibleOimporteNoSujeto xsi:type="xsd:string"/> <CuotaRepercutida xsi:type="xsd:string">100</CuotaRepercutida> </item> </Desglose> <ImporteTotal xsi:type="xsd:string"/> <EncadenamientoRegistroAnterior xsi:nil="true"/> <SistemaInformatico xsi:nil="true"/> <FechaGenRegistro xsi:type="xsd:string"/> <HoraGenRegistro xsi:type="xsd:string"/> <HusoHorarioGenRegistro xsi:type="NS3:HusoHorarioGenRegistroType">01</HusoHorarioGenRegistro> </RegistroFacturacion> <DatosControl xsi:nil="true"/> </item> </AltaFactuSistemaFacturacion> </NS1:AltaFactuSistemaFacturacion> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Adjunto los 3 ficheros generados al importar el WSDL y el propio fichero WSDL.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
||||
|
||||
Cita:
Gracias Germán por el ejemplo. El problema es que ese código a mi no me compila en mi Delphi Berlín, se ve que este tipo de instrucciones no le gustan:
¿Hay alguna forma de modificar eso para que compile en Delphi Berlín? Gracias de nuevo y un saludo.
__________________
Be water my friend. |
#8
|
|||
|
|||
Cita:
Aquí vuelve el pesado de turno da dar la brasa. Disculpas por anticipado si estoy diciendo tonterías, pero entiendo que cambios si que ha habido. En su momento posteaste los ficheros generados tras importar la wsdl: https://www.clubdelphi.com/foros/sho...&postcount=971 y si los comparas con los que posteas ahora podrás ver que no son iguales. Los "antiguos" tienen 1713 líneas y los "nuevos" tienen 2112 líneas. Así que algo si que ha cambiado entre ambas importaciones, A mi me genera la importación de 1713 líneas si lo hago en automático o 1.1 y la de 2112 si la hago en modo 1.2. |
#9
|
||||
|
||||
[quote='Neftali [Germán.Estévez];553902']
En este caso genera un fichero como este: Código:
<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"> <SOAP-ENV:Body xmlns:NS1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SistemaFacturacion.wsdl" xmlns:NS2="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:NS3="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <NS1:AltaFactuSistemaFacturacion SOAP-ENV:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <AltaFactuSistemaFacturacion SOAP-ENC:id="1" xsi:type="NS2:AltaFactuSistemaFacturacion"> <Cabecera SOAP-ENC:id="2" xsi:type="NS3:Cabecera"> <IDVersion xsi:type="NS3:VersionType">1.0</IDVersion> <ObligadoEmision SOAP-ENC:id="3" xsi:type="NS3:PersonaFisicaJuridicaESType"> <NombreRazon xsi:type="xsd:string">Empresa pruebas</NombreRazon> <NIF xsi:type="xsd:string">11111111H</NIF> </ObligadoEmision> <TipoRegistroAEAT xsi:type="NS3:TipoRegistroAEATType">T0</TipoRegistroAEAT> <FechaFinVeriFactu xsi:type="xsd:string">01/01/2026</FechaFinVeriFactu> </Cabecera> <item SOAP-ENC:id="4" xsi:type="NS2:FacturasEmitidasType"> <RegistroFacturacion SOAP-ENC:id="5" xsi:type="NS3:RegistroFacturacionType"> <IDFactura SOAP-ENC:id="6" xsi:type="NS3:IDFacturaExpedidaType"> <IDEmisorFactura SOAP-ENC:id="7" xsi:type="NS3:IDEmisorFactura"> <NIF xsi:type="xsd:string">3333333</NIF> </IDEmisorFactura> <NumSerieFacturaEmisor xsi:type="xsd:string">23/123456</NumSerieFacturaEmisor> <FechaExpedicionFacturaEmisor xsi:type="xsd:string">31/12/23</FechaExpedicionFacturaEmisor> </IDFactura> <NombreRazonEmisor xsi:type="xsd:string"/> <TipoRegistroSIF xsi:type="NS3:TipoRegistroSIFType">S0</TipoRegistroSIF> <TipoFactura xsi:type="NS3:ClaveTipoFacturaType">F1</TipoFactura> <DescripcionOperacion xsi:type="xsd:string">venta de mercaderías</DescripcionOperacion> <Desglose xsi:type="SOAP-ENC:Array" SOAP-ENC:itemType="NS3:DetalleType" SOAP-ENC:arraySize="1"> <item SOAP-ENC:id="8" xsi:type="NS3:DetalleType"> <ClaveRegimen xsi:type="NS3:IdOperacionesTrascendenciaTributariaType">01</ClaveRegimen> <TipoImpositivo xsi:type="xsd:string">21</TipoImpositivo> <BaseImponibleOimporteNoSujeto xsi:type="xsd:string"/> <CuotaRepercutida xsi:type="xsd:string">100</CuotaRepercutida> </item> </Desglose> <ImporteTotal xsi:type="xsd:string"/> <EncadenamientoRegistroAnterior xsi:nil="true"/> <SistemaInformatico xsi:nil="true"/> <FechaGenRegistro xsi:type="xsd:string"/> <HoraGenRegistro xsi:type="xsd:string"/> <HusoHorarioGenRegistro xsi:type="NS3:HusoHorarioGenRegistroType">01</HusoHorarioGenRegistro> </RegistroFacturacion> <DatosControl xsi:nil="true"/> </item> </AltaFactuSistemaFacturacion> </NS1:AltaFactuSistemaFacturacion> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Germán. Cómo accedes a ese XML sin hacer el envío porque yo lo saco desde el evento "OnBeforeExecute" del componente HTTPRIO pero claro, si no se hace el envío porque no tenemos todavía las direcciones no llega a ese evento. Todo esto se me ocurre porque hará falta generar la huella de cada factura y no sé cómo aislar el nodo de cada factura para generar la huella. Gracias y un saludo.
__________________
Be water my friend. |
#10
|
||||
|
||||
Cita:
¿Con este código se genera el xml de la(s) factura(s) y se enviaría (si la url es correcta)?. Lo comento ya que trato de añadir por ejemplo DatosControl y me genera un error de excepción añadiendo estas tres lineas: Código:
fact.RegistroFacturacion.Desglose := Desglose; //---------------------------------------Genera un error de excepción fact.DatosControl.Huella := 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYY'; fact.datosControl.TipoHash := TipoHashType._01; fact.datosControl.Incidencia := IncidenciaType.N; //--------------------------------------------------- // Factura 1 alta.RegistroAltaFacturas := RegistroAltaFacturas; ¿La huella de la factura, se tiene que generar desde este xml y de cada uno de los nodos <RegistroFacturacion> que contenga? Con el código original funciona perfectamente, genera el xml y realiza el envío, dando error ya que la url no existe. Lo he probado con Delphi 11 Community Edition. Voy a seguir los consejos de Germán @Neftali y voy a tratar de confeccionar una librería llamada desde delphi 7 y que reciba datos y los procese enviandolos y capturando las respuestas. Jamás he realizado proyecto que se asemeje a esto, por lo que pido ayuda y comprensión si molesto algo, con alguna pregunta cuyo concepto muchos dareis por sentado. Si lo consigo, como agradecimiento, colocare en este foro el código completo para que lo utilice cualquiera que lo necesite. Si no lo consigo... para que hablar más.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
#11
|
|||
|
|||
Cita:
Saludos. |
#12
|
|||
|
|||
Buenos dias Neftali
he visto tu codigo y no se como has guardado el XML. Yo lo hacia con el evento beforeExecute del HTTPRIO pero en este ejemplo no se llega a ejecutar nunca. Mi idea es crear un codigo con lo publicado aqui, que tome un excel o un archivo de texto y genere al menos un alta simple de factura, ¿si alguien quiere ayudarme? y publicarlo aqui en el foto. Neftali Me gustaria saber, como guardar el XML antes de tener la url de envio. Gracias Saludos a todos. Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Hijo de Informáticos | gluglu | Humor | 3 | 13-03-2007 11:05:35 |
Adictos informaticos ... | Trigger | Humor | 2 | 11-10-2004 12:18:32 |
Nosotros los Informáticos | Trigger | Humor | 1 | 10-10-2004 14:58:09 |
Patrón de los Informáticos. | obiwuan | Varios | 20 | 10-09-2003 14:44:54 |
Chistes Informaticos | jhonny | Humor | 2 | 11-08-2003 21:59:09 |
|