Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2024
delphiGar delphiGar is offline
Miembro
 
Registrado: ago 2024
Posts: 182
Poder: 2
delphiGar Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Gracias compañero. ¿Tendrías algún ejemplo que pudieras mostrar?


Saludos.
Te digo lo mismo que a pararegistrarme hay que añadir la opcion soSenduntype para no tener problemas, lo puse al contrario.

Te pongo un ejemplo:

Código Delphi [-]
var
    Factura             : RegistroFacturaType;
    RefId, Swdsl: string;
    MyXML, parentXML : TXMLDocument;
    ARootNode,newNode, AParentode : IXMLNode;  
begin

  Factura := RegistroFacturaType.Create;

  Factura.RegistroAlta   := RegistroFacturacionAltaType.Create;

  // Rellenas todo lo de la Factura

     MyXML := TXMLDocument.Create(Application);
    parentXML := TXMLDocument.Create( Application );

    MyXML.Active := True;
    MyXML.Version:='1.0';
    MyXML.Encoding:='utf-8';

    parentXML.Active := True;
    parentXML.Version:='1.0';
    parentXML.Encoding:='utf-8';


    ARootNode := MyXML.CreateNode('RegistroAlta');
    AParentode := parentXML.CreateNode('RegistroAlta');

     var MOPToSoapDomConvert : TOPtoSOAPDomConvert;
    MOPToSoapDomConvert := TOPtoSOAPDomConvert.Create(Application);

    MOPToSoapDomConvert.Encoding := 'utf-8';

    MOPToSoapDomConvert.Options :=
    [
    TSOAPConvertOption.soXXXXHdr,
    TSOAPConvertOption.soDontSendEmptyNodes,
    TSOAPConvertOption.soUTF8InHeader,
    TSOAPConvertOption.soSendUntyped,
    TSOAPConvertOption.soSendMultiRefObj,
    //TSOAPConvertOption.soSendMultiRefArray,
    TSOAPConvertOption.soTryAllSchema,
    TSOAPConvertOption.soRootRefNodesToBody,
    TSOAPConvertOption.soCacheMimeResponse,
    TSOAPConvertOption.soUTF8EncodeXML,
    TSOAPConvertOption.soSOAP12];


    Swdsl := 'https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl';

    newNode := Factura.RegistroAlta.ObjectToSOAP( ARootNode, AParentode, MOPToSoapDomConvert, 'RegistroAlta',
      Swdsl,'T',[ocoDontPrefixNode,ocoDontPutTypeAttr], RefId  );

     // este newNode lleva el xml limpio
    {
     1.0NIF DE MI EMPRESAF24000622-01-2024F1VENTA MERCADERIASCLIENTE2NIFCLI2ES02NIFCLI201S121,002000,00420,00420,002420,00NIF DE MI EMPRESAF24000522/01/2024b32680a7b029d07a809fd10f052c322305b86cb80116250ce7db441b8ac3421eEMPRESA INFORMATICANIF INFORMATICAES02PROGRAMA DE GESTION111SN12024-09-13T10:54:49.560+02:0001ff1cbd3a05a119f57109a650dc84e9e9df4bcd541394ea4d71612fadb4c8078e
}

// logicamente esto ya lo puedes firmar, y como te dije va entre los nodos del Regtistro de Alta, cuando lo cargas 
// mediante la funcion SOAPtoObject se rellena con cada cosa y la firma va al nodo 
// yo la firma la hago con Secure BlackBox y lo hago en memoria todo
// si lo haces con Autofirma no te va as alir bien, ya lo comprobe



    // Para cuando tengas que cargarlo seria asi

Factura.RegistroAlta.SOAPToObject(  ARootNode, newNode, MOPToSoapDomConvert);

end;
  #2  
Antiguo 13-09-2024
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.214
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por delphiGar Ver Mensaje
Te digo lo mismo que a pararegistrarme hay que añadir la opcion soSenduntype para no tener problemas, lo puse al contrario.

Te pongo un ejemplo:
....

El problema es que no sé si mi Delphi Berlin se va a tragar todo esto y por otro lado tampoco tengo las SecureBlackBox así que... haré alguna prueba por si acaso pero sin muchas esperanzas.


Gracias y un saludo.
__________________
Be water my friend.
  #3  
Antiguo 13-09-2024
delphiGar delphiGar is offline
Miembro
 
Registrado: ago 2024
Posts: 182
Poder: 2
delphiGar Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
El problema es que no sé si mi Delphi Berlin se va a tragar todo esto y por otro lado tampoco tengo las SecureBlackBox así que... haré alguna prueba por si acaso pero sin muchas esperanzas.


Gracias y un saludo.
desde la version 7 de Delphi lleva estas opciones.

yo lo hago con ese componente y ya te digo que lo probe con Autofirma y no lo hacia bien.

Me he dado cuenta que el XML no ha salido bien te lo pongo de nuevo.

Código:
<RegistroAlta>
<IDVersion>1.0</IDVersion>
<IDFactura><IDEmisorFactura>NIF DE MI EMPRESA</IDEmisorFactura>
<NumSerieFactura>F240006</NumSerieFactura>
<FechaExpedicionFactura>22-01-2024</FechaExpedicionFactura>
</IDFactura>
<TipoFactura>F1</TipoFactura>
<DescripcionOperacion>VENTA MERCADERIAS</DescripcionOperacion>
<Destinatarios>
<item>
<NombreRazon>CLIENTE2</NombreRazon><NIF>NIFCLI2</NIF><IDOtro><CodigoPais>ES</CodigoPais><IDType>02</IDType><ID>NIFCLI2</ID></IDOtro>
</item>
</Destinatarios>
<Desglose>
<item>
<ClaveRegimen>01</ClaveRegimen><CalificacionOperacion>S1</CalificacionOperacion><TipoImpositivo>21,00</TipoImpositivo><BaseImponibleOimporteNoSujeto>2000,00</BaseImponibleOimporteNoSujeto><CuotaRepercutida>420,00</CuotaRepercutida>
</item>
</Desglose>
<CuotaTotal>420,00</CuotaTotal><ImporteTotal>2420,00</ImporteTotal>
<Encadenamiento>
<RegistroAnterior><IDEmisorFactura>NIF DE MI EMPRESA</IDEmisorFactura><NumSerieFactura>F240005</NumSerieFactura>
<FechaExpedicionFactura>22/01/2024</FechaExpedicionFactura>
<Huella>b32680a7b029d07a809fd10f052c322305b86cb80116250ce7db441b8ac3421e</Huella>
</RegistroAnterior>
</Encadenamiento>
<SistemaInformatico><NombreRazon>EMPRESA INFORMATICA</NombreRazon><NIF>NIF INFORMATICA</NIF><IDOtro><CodigoPais>ES</CodigoPais><IDType>02</IDType></IDOtro><NombreSistemaInformatico>PROGRAMA DE GESTION</NombreSistemaInformatico><IdSistemaInformatico>1</IdSistemaInformatico><Version>1</Version><NumeroInstalacion>1</NumeroInstalacion><TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu><TipoUsoPosibleMultiOT>N</TipoUsoPosibleMultiOT><NumeroOTAlta>1</NumeroOTAlta></SistemaInformatico><FechaHoraHusoGenRegistro>2024-09-13T10:54:49.560+02:00</FechaHoraHusoGenRegistro><TipoHuella>01</TipoHuella><Huella>ff1cbd3a05a119f57109a650dc84e9e9df4bcd541394ea4d71612fadb4c8078e</Huella>
</RegistroAlta>

Última edición por delphiGar fecha: 13-09-2024 a las 12:01:11.
  #4  
Antiguo 13-09-2024
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.214
Poder: 24
newtron Va camino a la fama
Ok, he llegado hasta esta línea que me da un "access violation" y no sé por qué. ¿Te suena de algo?


Código Delphi [-]

    newNode := Factura.RegistroAlta.ObjectToSOAP( ARootNode, AParentode, MOPToSoapDomConvert, 'RegistroAlta',
      Swdsl,'T',[ocoDontPrefixNode,ocoDontPutTypeAttr], RefId  );


Gracias y un saludo.
__________________
Be water my friend.
  #5  
Antiguo 13-09-2024
delphiGar delphiGar is offline
Miembro
 
Registrado: ago 2024
Posts: 182
Poder: 2
delphiGar Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Ok, he llegado hasta esta línea que me da un "access violation" y no sé por qué. ¿Te suena de algo?


Código Delphi [-]

    newNode := Factura.RegistroAlta.ObjectToSOAP( ARootNode, AParentode, MOPToSoapDomConvert, 'RegistroAlta',
      Swdsl,'T',[ocoDontPrefixNode,ocoDontPutTypeAttr], RefId  );


Gracias y un saludo.
Eso puede ser por que el Objeto de RegistroAlta no lo tengas bien creado, te falte algun objeto intermedio que es necesario inicializarlo.
  #6  
Antiguo 13-09-2024
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.214
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por delphiGar Ver Mensaje
Eso puede ser por que el Objeto de RegistroAlta no lo tengas bien creado, te falte algun objeto intermedio que es necesario inicializarlo.

Eso estaba pensando. Revisaré a ver qué puede ser.


Gracias y un saludo.
__________________
Be water my friend.
  #7  
Antiguo 16-09-2024
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.214
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por newtron Ver Mensaje
Ok, he llegado hasta esta línea que me da un "access violation" y no sé por qué. ¿Te suena de algo?

Código Delphi [-] newNode := Factura.RegistroAlta.ObjectToSOAP( ARootNode, AParentode, MOPToSoapDomConvert, 'RegistroAlta', Swdsl,'T',[ocoDontPrefixNode,ocoDontPutTypeAttr], RefId );

Gracias y un saludo.

Ok. Al final he encontrado el problema. Resulta que estaba haciendo un "free" del objeto "XSDatetime" una vez asignado al objeto "Factura" y se ve que (como me ha pasado en otras ocasiones) pierde el valor en el objeto "Factura" si liberas de memoria la variable que le has asignado. He cambiado el "Free" de sitio y funciona.


Saludos.
__________________
Be water my friend.
Tema Cerrado


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
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


La franja horaria es GMT +2. Ahora son las 18:58:59.


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