Ver Mensaje Individual
  #1061  
Antiguo 07-01-2024
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Reputación: 8
nincillo Va por buen camino
Cita:
Empezado por djatila Ver Mensaje
Leí en un post anterior que aquí había gente también en visual basic, así que respondo por aquí, así espero que sirva a mas gente. (si molesta, avísenme)

Para importar el wsdl en visual basic studio
-Proyecto -Agregar referencia de servicio - botón avanzadas - botón agregar referencia web
-en direccion = SistemaFacturacion.wsdl
-botón flechita - cambiar el nombre de la clase si queréis yo puse MiSFI -y agregar referencia

También esta la opción con el comando xsd de generar las clases.vb con los ficheros xsd, pero esto no es necesario si se importo el wsdl.

Aqui te pongo como estoy haciendo para generar el xml , este codigo funciona hasta el cierre de la cabecera.

Código:
        Dim altaFactuSistemaFacturacion As New AltaFactuSistemaFacturacion
        'Cabecera
        Dim cabecera As New MiSFI.Cabecera
        Dim obligadoEmision As New MiSFI.PersonaFisicaJuridicaESType
        Dim tipoRegistroAEAT As New MiSFI.TipoRegistroAEATType
        '/Cabecera
        Dim registroAltaFacturas As New MiSFI.FacturasEmitidasType
        Dim RegistroFacturacion(2) As MiSFI.RegistroFacturacionType
        Dim datosControl As New MiSFI.DatosControlType
        'idFactura
        Dim idFactura As New MiSFI.IDFacturaExpedidaType 'MiSFI.IDFacturaARType
        Dim idEmisorFactura As New MiSFI.IDFacturaExpedidaTypeIDEmisorFactura
        '/idFactura
        Dim Destinatarios As New MiSFI.PersonaFisicaJuridicaType
        Dim idDestinatario As New MiSFI.PersonaFisicaJuridicaESType
        Dim detalleDesglose As New MiSFI.DetalleType ' DetalleDesglose
        Dim encadenamientoRegistroAnterior As New MiSFI.EncadenamientoFacturaAnteriorType '.EncadenamientoRegistroAnterior
        Dim idEmisorFacturaRegistroAnterior As New MiSFI.EncadenamientoFacturaAnteriorTypeIDEmisorFacturaRegistroAnterior  '.IDEmisorFacturaRegistroAnterior
        Dim sistemaInformatico As New MiSFI.SistemaInformaticoType
        'Cabecera
        cabecera.IDVersion = MiSFI.VersionType.Item10  '"1.0"
        obligadoEmision.NombreRazon = "XXXXX"
        obligadoEmision.NIF = "XXXXX"
        tipoRegistroAEAT = MiSFI.TipoRegistroAEATType.T0 ' "T0"
        cabecera.ObligadoEmision = obligadoEmision
        cabecera.TipoRegistroAEAT = tipoRegistroAEAT
        '/Cabecera
        'RegistroAltaFacturas
        'RegistroFacturacion
        'IDFactura
        idEmisorFactura.NIF = "XXXXX"
        idFactura.NumSerieFacturaEmisor = "12345"
        idFactura.FechaExpedicionFacturaEmisor = "13-11-2023"
        idFactura.IDEmisorFactura = idEmisorFactura
        '/IDfactura  

        'Estas dan error
        'RegistroFacturacion(0).IDFactura = idFactura
        'RegistroFacturacion(0).NombreRazonEmisor = "certificado uno telematicas"
        'RegistroFacturacion(0).TipoRegistroSIF = MiSFI.TipoRegistroSIFType.S0 ' "S0"
        'RegistroFacturacion(0).TipoFactura = MiSFI.ClaveTipoFacturaType.F1 '"F1"
        'RegistroFacturacion(0).DescripcionOperacion = "Descripc"

        idDestinatario.NombreRazon = "XXXXX"
        idDestinatario.NIF = "XXXXX"

        datosControl.Huella = "Huella"
        datosControl.TipoHash = "01"


        registroAltaFacturas.RegistroFacturacion = RegistroFacturacion(0)
        registroAltaFacturas.DatosControl = datosControl


        altaFactuSistemaFacturacion.Cabecera = cabecera
        'esta da error 
        'altaFactuSistemaFacturacion.RegistroAltaFacturas = registroAltaFacturas

        Dim ns As New XmlSerializerNamespaces()
        ns.Add("soapenv", ".......")
        ns.Add("sum", "........SuministroLR.xsd")
        ns.Add("sum1", ".......SuministroInformacion.xsd")

        'serializamos
        Dim serializer As New XmlSerializer(GetType(MiSFI.AltaFactuSistemaFacturacion))
        Using writer As New StreamWriter("C:\xml\archivo.xml")
            serializer.Serialize(writer, altaFactuSistemaFacturacion, ns)
        End Using
tuve que quitar las url porque no tengo permisos....



Gracias por responder. pero en esas estoy y no lo consigo, algo estoy haciendo mal......
A ver si te sirve de ayuda. Así lo tengo yo en Delphi, pero lo gracioso es que sigo sin tener el elemento Cabecera...:
Código:
var
  regFactura : FacturasEmitidasType;
  result : Array_Of_RespuestaExpedidaType;
  arrayFacturasS : Array_Of_FacturasEmitidasType;

begin
  regFactura := FacturasEmitidasType.Create;

      regFactura.RegistroFacturacion := RegistroFacturacionType.Create;
...
        regFactura.RegistroFacturacion.IDFactura := IDFacturaExpedidaType.Create;
            regFactura.RegistroFacturacion.IDFactura.NumSerieFacturaEmisor := '23/123456';
....
try
    SetLength(arrayFacturas, 1);
    arrayFacturas[0] := regFactura;
    result := GetsfSOAP(true, '', HTTPRIO1).AltaFactuSistemaFacturacion(ArrayFacturas);
  finally
    regFactura.Destroy;
  end;
¿Podrías publicar de alguna manera el fichero que te genera al importar el wsdl a ver si encuentro las diferencias con el que genera en Delphi?.
Responder Con Cita