Você está na página 1de 4

1.3.

Cadena Original
De acuerdo con el SAT la cadena original se entiende como:

"La secuencia de datos formada con la informacin contenida dentro de la factura electrnica, establecida en el Rubro C del Anexo 20 de la Resolucin Miscelnea Fiscal."
La cadena original se genera procesando la factura electrnica en formato .XML (o cualquier otro comprobante fiscal digital CFD) con una plantilla XSL o XSLT (es el mismo tipo de archivo, se le conoce como XSLT, pero se acostumbra dejar las extensiones de archivos con 3 letras por eso el XSL) que brinda el SAT de acuerdo a la versin de CFD que se quiera obtener. La cadena original es un elemento muy importante y delicado de el comprobante fiscal digital, en sta se incluye informacin que integra a la factura es por eso que su generacin debe ser con sumo cuidado y para esto es preferible usar herramientas previamente aprobadas como libreras (JAR o DLL). A continuacin se muestra un ejemplo de como obtener la cadena original usando los siguientes elementos que brinda el SAT:

cadenaoriginal_3_0.xslt ejemplo1 cfdv3.xml En caso de no encontrar los archivos, puede descargarlos haciendo click aqui

Otros archivos con los que hacer pruebas:


cadenaoriginal_3_2.xslt cfdv32.xsd

Resultado:

||3.0|2010-03-06T20:38:12|ingreso|PAGO EN UNA SOLA EXHIBICION|488.50|488.50|PPL961114GZ1|PHARMA PLUS SA DE CV|AV. RIO MIXCOAC|No. 140|ACACIAS|BENITO JUAREZ|MEXICO, D.F.|Mexico|03240|AV. UNIVERSIDAD|1858|OXTOPULCO|DISTRITO FEDERAL|Mexico|03910|PEPJ8001019Q8|JUAN PEREZ PEREZ|AV UNIVERSIDAD|16 EDF 3|DPTO 101|COPILCO UNIVERSIDAD|COYOACAN|DISTRITO FEDERAL|Mexico|04360|1.0|CAPSULAS|VIBRAMICINA 100MG

10|244.00|244.00|1.0|BOTELLA|CLORUTO 500M|137.93|137.93|1.0|TABLETAS|SEDEPRON 250MG 10|84.50|84.50|IVA|0.00|0.00|IVA|16.00|22.07||


Para obtener el resultado de cadena original en el ejemplo anterior se uso xsltproc:

Windows: Descargar las herramientas en el siguiente enlace libxml

Linux: Ya estan instaladas por default $ xsltproc cadenaoriginal_3_0.xslt ejemplo1cfdv3.xml

1.3.1. Diagrama del proceso de generacin

1.3.2. Ejemplos de Cdigo


Generar Cadena Original con JAVA

?
1 2 3

import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigura import javax.xml.transform.TransformerEx

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

import javax.xml.transform.TransformerFa import javax.xml.transform.stream.Stream import javax.xml.transform.stream.Stream public class Main{

public static void main(String[] args StreamSource sourceXSL = new Str File("C:/SAT/cadenaoriginal_3_0.xslt")); StreamSource sourceXML = new Str File("C:/SAT/ejemplo1cfdv3.xml")); TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(sourceXSL); OutputStream output = new ByteArrayOutputStream();

transformer.transform(sourceXML, StreamResult(output)); System.out.println(new String(((ByteArrayOutputStream) output).toByteArray())); } }

Generar Cadena Original con C# (CSharp)

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
using using using using using System; System.Xml.XPath; System.Xml.Xsl; System.Xml; System.IO;

namespace pruebas { public class GeneradorCadenas { public GeneradorCadenas() { //Cargar el XML StreamReader reader = new StreamReader(@"C:\Users\Solucion\Factura_2319E_2012XPathDocument myXPathDoc = new XPathDocu

//Cargando el XSLT XslCompiledTransform myXslTrans = new Xs myXslTrans.Load(@"C:\Users\Solucion\cade StringWriter str = new StringWriter();

19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

XmlTextWriter myWriter = new XmlTextWrit

//Aplicando transformacion myXslTrans.Transform(myXPathDoc, null, m //Resultado string result = str.ToString();

//Fin del programa. } } }

1.3.3. Herramienta
Generador de Cadena Original
sta herramienta toma una factura electrnica (CFD) (.xml) y obtiene su cadena original aplicando el XSLT que haya elegido en: Version de cadena

Modalidad "Generar", Procesa un XML previamente seleccionado, calcula su cadena original y la muestra Modalidad "Descargar", Procesa un XML previamente seleccionado, calcula su cadena original y descarga un archivo .txt con la cadena

XML: Versin de cadena (Si no se especifica Versin de Cadena, se tomar del archivo XML):
Generar Descargar

Você também pode gostar