dic 15

y ¿que es la herencia inversa?

Posted in v7, vDevelop

Pues la herencia inversa es el concepto por el cual, podemos utilizar objetos de los proyectos que han heredado al proyecto actual, y que, en principio, solo estarán disponibles cuando se ejecuten ambos proyectos al mismo tiempo.

Mediante la herencia inversa, podemos ver en la ficha de un cliente, todos sus albaranes (lo que anteriormente hacíamos mediante los enlaces históricos o plurales de las tablas), cuando los objetos correspondientes a la tabla de clientes están en un proyecto y este es heredado por otro proyecto que contiene los objetos correspondientes a la tabla de albaranes.

Mediante la herencia, desde un albarán podemos acceder a la ficha del cliente (cuyo formulario esta definido en el proyecto heredado), y mediante la herencia inversa, en el formulario del cliente podemos mostrar información de los albaranes de ese cliente (aún cuando las rejillas para mostrar los albaranes estén en el proyecto que hereda).

Pero esto solo será posible cuando ejecutamos el proyecto de Ventas (que hereda al proyecto de Maestros) y no cuando ejecutamos el proyecto de Maestros directamente.

PDF Creator    Enviar artculo en formato PDF   
comments: 1 »
dic 15

eFactura en LML y XML

Posted in LML, XML

Si aún no has comprobado el ejemplo anterior, aqui te dejo los ejemplos completos para que puedas verlo por ti mismo,

eFactura en XML: eFactura en LML:
<Cabecera>
<VersionCodificacion>VERSION
</VersionCodificacion>
<Modalidad>MODALIDAD
</Modalidad>
<TipoEmisorFactura>TIPO-EMISOR
</TipoEmisorFactura>
<Lote>
<IdentificadorLote>ID-LOTE
</IdentificadorLote>
<NumeroTotalFacturas>NRO-FACTURAS
</NumeroTotalFacturas>
<TotalFacturas>
<ImporteTotal>IMP-TOTAL
</ImporteTotal>
</TotalFacturas>
<ImporteTotal>IMP-TOTAL
</ImporteTotal>
</TotalAPagar>
<ImporteTotal>IMP-TOTAL
</ImporteTotal>
</TotalAEjecutar>MONEDA-FACT
</MonedaFacturacion>
</TotalFacturas>
</Lote>
<Emisor>
<IdentificacionFiscal>
<TipoPersona>TIPO-EMISOR
</TipoPersona>
<TipoResidencia>TIPO-RESIDENCIA
</TipoResidencia>
<NumeroDocumento>NUMERO-DOC
</NumeroDocumento>
</NumeroDocumento>
<Nombre>NOMBRE
</Nombre>
<PrimerApellido>1-APELLIDO
</PrimerApellido>
<DireccionNacional>
<Direccion>DIRECCION
</Direccion>
<CP>C.P.
</CP>
<Poblacion>POBLACION
</Poblacion>
<Provincia>PROVINCIA
</Provincia>
<CodigoPais>COD-PAIS
</CodigoPais>
</CodigoPais>
</DireccionNacional>
</Emisor>
<IdentificacionFiscal>
<TipoPersona>TIPO-EMISOR
</TipoPersona>
<TipoResidencia>TIPO-RESIDENCIA
</TipoResidencia>
<NumeroDocumento>NUMERO-DOC
</NumeroDocumento>
</NumeroDocumento>
<Centro>
<Numero>NUMERO
</Numero>
<DireccionNacional>
<Direccion>DIRECCION
</Direccion>
<CP>C.P.
</CP>
<Poblacion>POBLACION
</Poblacion>
<Provincia>PROVINCIA
</Provincia>
<CodigoPais>COD-PAIS
</CodigoPais>
</CodigoPais>
</DireccionNacional>
</Centros>
<RazonSocial>RAZON-SOCIAL
</RazonSocial>
<DireccionNacional>
<Direccion>DIRECCION
</Direccion>
<CP>C.P.
</CP>
<Poblacion>POBLACION
</Poblacion>
<Provincia>PROVINCIA
</Provincia>
<CodigoPais>COD-PAIS
</CodigoPais>
</CodigoPais>
</DireccionNacional>
</Receptor>
</Sujetos>
<Factura>
<CabeceraFactura>
<NumeroFactura>NRO-FACTURA
</NumeroFactura>
<SerieFactura>SERIE-FACTURA
</SerieFactura>
<TipoDocumentoFactura>TIPO-DOC
</TipoDocumentoFactura>
<Clase>CLASE
</Clase>
</Clase>
<FechaExpedicion>FECHA-EXPED
</FechaExpedicion>
<MonedaExpedicion>MONEDA-EXPED
</MonedaExpedicion>
<MonedaImpuesto>MONEDA-IMP
</MonedaImpuesto>
</MonedaImpuesto>
<Impuesto>
<ClaseImpuesto>CLASE-IMP
</ClaseImpuesto>
<PorcentajeImpuesto>PORC-IMP
</PorcentajeImpuesto>
<BaseImponible>
<ImporteTotal>BASE-IMP
</ImporteTotal>
</BaseImponible>
<ImporteTotal>BASE-IMP
</ImporteTotal>
</Cuota>
</BaseImponible>
</ImpuestosRepercutidos>
<TotalImporteBruto>IMPORTE-BRUTO
</TotalImporteBruto>
<DescuentosGenerales>
<Descuento>
<DescripcionDescuento>DESCR-DTO
</DescripcionDescuento>
<PorcentajeDescuento>PORC-DTO
</PorcentajeDescuento>
<ImporteDescuento>IMPORTE-DTO
</ImporteDescuento>
</ImporteDescuento>
</DescuentosGenerales>TOTAL-DTOS
</TotalDescuentosGenerales>
<TotalImporteBrutoAntesImpuestos>

TOTAL-BRUTO
</TotalImporteBrutoAntesImpuestos>
<TotalImpuestosRepercutidos>TOTAL-IMP
</TotalImpuestosRepercutidos>
<TotalImpuestosRetenidos>TOTAL-RET
</TotalImpuestosRetenidos>
<TotalFactura>TOTAL-FACT
</TotalFactura>
<TotalAnticipos>TOTAL-ANTIC
</TotalAnticipos>
<TotalAPagar>TOTAL-PAGAR
</TotalAPagar>
<TotalAEjecutar>TOTAL-EJECUTAR
</TotalAEjecutar>
</TotalAEjecutar>
<Detalle>
<ExpedienteContratacionReceptor>

EXPED-CONTRA
</ExpedienteContratacionReceptor>
<DescripcionDetalle>DESCR-DETALLE
</DescripcionDetalle>
<Cantidad>CANTIDAD
</Cantidad>
<PrecioUnitarioSinImpuestos>PRECIO-UD
</PrecioUnitarioSinImpuestos>
<CosteTotal>COSTE
</CosteTotal>
<ImporteBruto>IMP-BRUTO
</ImporteBruto>
<ImpuestosRepercutidos>
<Impuesto>
<ClaseImpuesto>IVA
</ClaseImpuesto>
</Impuesto>
</ImpuestosRepercutidos>FECHA-OPER
</FechaOperacion>
</ImpuestosRepercutidos>
</Detalles>
<Vencimiento>
<FechaVencimiento>FECHA-VTO
</FechaVencimiento>
<ImporteVencimiento>IMP-VTO
</ImporteVencimiento>
<FormaPago>FORMA-PAGO
</FormaPago>
<CuentaAbono>
<NumeroCuentaIBAN>CTA-IBAN
</NumeroCuentaIBAN>
<EntidadFinanciera>NOMBRE-BANCO
</EntidadFinanciera>
</EntidadFinanciera>
</CuentaAbono>
</DatosCobro>
<DatosAdicionales>
<ObservacionesFactura>
<Observacion>OBSERVACIONES
</Obserbacion>
</ObservacionesFactura>
</DatosAdicionales>
</Factura>
</Facturas>

<0:Begin language=”lml”>
<1:Cabecera>
<2:VersionCodificacion>VERSION
<2:Modalidad>MODALIDAD
<2:TipoEmisorFactura>TIPO-EMISOR
<2:Lote>
<3:IdentificadorLote>ID-LOTE
<3:NumeroTotalFacturas>NRO-FACTURAS
<3:TotalFacturas>
<4:ImporteTotal>IMP-TOTAL
<3:TotalAPagar>
<4:ImporteTotal>IMP-TOTAL
<3:TotalAEjecutar>
<4:ImporteTotal>IMP-TOTAL
<3:MonedaFacturacion>MONEDA-FACT
<1:Sujetos>
<2:Emisor>
<3:IdentificacionFiscal>
<4:TipoPersona>TIPO-EMISOR
<4:TipoResidencia>TIPO-RESIDENCIA
<4:NumeroDocumento>NUMERO-DOC
<3:PersonaFisica>
<4:Nombre>NOMBRE
<4:PrimerApellido>1-APELLIDO
<4:DireccionNacional>
<5:Direccion>DIRECCION
<5:CP>C.P.
<5:Poblacion>POBLACION
<5:Provincia>PROVINCIA
<5:CodigoPais>COD-PAIS
<2:Receptor>
<3:IdentificacionFiscal>
<4:TipoPersona>TIPO-EMISOR
<4:TipoResidencia>TIPO-RESIDENCIA
<4:NumeroDocumento>NUMERO-DOC
<3:Centros>
<4:Centro>
<5:Numero>NUMERO
<5:DireccionNacional>
<6:Direccion>DIRECCION
<6:CP>C.P.
<6:Poblacion>POBLACION
<6:Provincia>PROVINCIA
<6:CodigoPais>COD-PAIS
<3:PersonaJuridica>
<4:RazonSocial>RAZON-SOCIAL
<4:DireccionNacional>
<5:Direccion>DIRECCION
<5:CP>C.P.
<5:Poblacion>POBLACION
<5:Provincia>PROVINCIA
<5:CodigoPais>COD-PAIS
<1:Facturas>
<2:Factura>
<3:CabeceraFactura>
<4:NumeroFactura>NRO-FACTURA
<4:SerieFactura>SERIE-FACTURA
<4:TipoDocumentoFactura>TIPO-DOC
<4:Clase>CLASE
<3:EmisionFactura>
<4:FechaExpedicion>FECHA-EXPED
<4:MonedaExpedicion>MONEDA-EXPED
<4:MonedaImpuesto>MONEDA-IMP
<3:ImpuestosRepercutidos>
<4:Impuesto>
<5:ClaseImpuesto>CLASE-IMP
<5:PorcentajeImpuesto>PORC-IMP
<5:BaseImponible>
<6:ImporteTotal>BASE-IMP
<5:Cuota>
<6:ImporteTotal>BASE-IMP
<3:TotalesFactura>
<4:TotalImporteBruto>IMPORTE-BRUTO
<4:DescuentosGenerales>
<5:Descuento>
<6:DescripcionDescuento>DESCR-DTO
<6:PorcentajeDescuento>PORC-DTO
<6:ImporteDescuento>IMPORTE-DTO
<4:TotalDescuentosGenerales>TOTAL-DTOS
<4:TotalImporteBrutoAntesImpuestos>

TOTAL-BRUTO
<4:TotalImpuestosRepercutidos>TOTAL-IMP
<4:TotalImpuestosRetenidos>TOTAL-RET
<4:TotalFactura>TOTAL-FACT
<4:TotalAnticipos>TOTAL-ANTIC
<4:TotalAPagar>TOTAL-PAGAR
<4:TotalAEjecutar>TOTAL-EJECUTAR
<3:Detalles>
<4:Detalle>
<5:ExpedienteContratacionReceptor>

EXPED-CONTRA
<5:DescripcionDetalle>DESCR-DETALLE
<5:Cantidad>CANTIDAD
<5:PrecioUnitarioSinImpuestos>PRECIO-UD
<5:CosteTotal>COSTE
<5:ImporteBruto>IMP-BRUTO
<5:ImpuestosRepercutidos>
<6:Impuesto>
<7:ClaseImpuesto>IVA
<5:FechaOperacion>FECHA-OPER
<3:DatosCobro>
<4:Vencimiento>
<5:FechaVencimiento>FECHA-VTO
<5:ImporteVencimiento>IMP-VTO
<5:FormaPago>FORMA-PAGO
<5:CuentaAbono>
<6:NumeroCuentaIBAN>CTA-IBAN
<6:EntidadFinanciera>NOMBRE-BANCO
<3:DatosAdicionales>
<4:ObservacionesFactura>
<5:Observacion>OBSERV
<0:end>

esto es solo un ejemplo, hay otros mas sencillos pero también los hay mas complicados, y por desgracia, cuando los ficheros tienen más de 50 kb no resultan tan faciles de parsear, a menos que tengas conocimientos de C++ o PHP,

¿aún tienes dudas?

PDF    Enviar artculo en formato PDF   
comments: Comentarios desactivados en eFactura en LML y XML
dic 15

ejemplo de LML vs XML

Posted in LML, XML

eFactura en XML y LMLMira y observa detenidamente la imagen, en ella solo se muestran unas lineas de la “eFactura” que podemos descargar de la A.E.A.T.

Observa el tamaño del archivo XML (en la 1ª columna) y del archivo LML (en la 2ª columna), ¿ves alguna diferencia?

en las dos columnas se muestra el mismo texto, una porción de la “eFactura”, pero hay muchas diferencias, si analizamos los dos ejemplos:

– El codigo de la eFactura en LML ocupa 3Kb y en XML ocupa 5kb, casi un 40% de diferencia.

– Es por tanto, mas rápido de leer y parsear por cualquier aplicación.

Pero eso no es todo, si no hubiera marcado en color rojo las etiquetas finales, sería bastante complicado saber donde comienza y donde acaba cada etiqueta.

En cambio podras identificar claramente y a simple vista las diferentes etiquetas del ejemplo en LML (en la 2ª columna) a pesar de que no hay etiquetas finales, esto no seria viable en un XML, y si no lo crees, borra todas las etiquetas “</etiqueta>” de tu ejemplo y luego procesa el archivo. En el mejor de los casos, obtendras un error.

Si, si, ya se que XML es un estandar, y que es cojonudo para comunicar datos con cualquier aplicación, y no pretendo cambiar eso, pero si las aplicaciones que tienes que comunicar son propias o puedes acceder al codigo de las mismas, ¿no crees que puede ser mas eficaz, veloz y seguro?

No pretendo que creais lo que os digo, solo os comento que, en los dos últimos años, desde que desarrolle este lenguaje de etiquetas, lo he utilizado en todos mis proyectos y aún no me ha fallado.

– he facilitado la exportación e importación de cientos de archivos y cientos de miles de lineas de texto

– he reducido las horas de programación en casi un 70% en procesos dedicados a importar y exportar datos.

– he disminuido los errores cometidos en los procesos en un 90% y la mayoría de ellos funcionan correctamente desde la 1ª ejecución

– en definitiva, algo que odiaba tanto como realizar importaciones de datos en masa, se ha convertido casi en un juego de niños y generar el archivo a exportar es mas sencillo si cabe.

No se trata de cambiar lo que ya hay, pero si has de comenzar con un proyecto nuevo, o hay algún proyecto que se te resiste especialmente, ¿no crees que deberías pensarlo?

¡un caramelo es un caramelo! pero, ¿y si le ponemos un palo? 😉

PDF    Enviar artculo en formato PDF   
comments: 3 »
dic 15

LML vs. XML

Posted in HTML, LML, XML

LML vs. XML¿Qué es LML?,

se trata de un nuevo lenguaje de etiquetas y cuenta con numerosas ventajas frente a XML:

  • ocupa entre un 30% y 40% menos que un archivo XML
  • es bastante mas rápido de procesar (entre un 30% y 40%)
  • puede ser leído e interpretado por cualquier usuario a simple vista
  • no necesita etiquetas de cierre de XML y no pierde efectividad
  • es mas fácil de leer y elaborar que el propio XML

y un inconveniente bastante grande:

  • no se trata de un estándar

Si aún quieres conocer mas sobre LML , puedes volver a visitar este blog y te lo contaré, o también puedes conformarte con lo que conoces.

continuará…

PDF Creator    Enviar artculo en formato PDF   
comments: Comentarios desactivados en LML vs. XML