Cadena Original

Para programadores en VFP aqui esta su foro.
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
JVDH
Mensajes: 43
Registrado: Lun Feb 21, 2011 11:54 pm

Cadena Original

Mensajepor JVDH » Lun May 26, 2014 12:13 pm

Buenos dias,

Tengo un pequeño problema con la cadena original.
Necesito copiar el contenido de la cadena original del xml ya timbrado y no logro hacerlo.
Se que hay una funcion llamada CadenaOriginal() pero no entiendo como copiarla simplemente a una base de datos.
Pongo el codigo siguiente pero no hace nada y se sale de la aplicación.

PUBLIC lcFileXML, w_cadenacfdi, w_sellocfdi
STORE SPACE(250) TO w_cadenacfdi, w_sellocfdi
SET PATH TO ("C:\TAC-CFDI\") &&Especifique la ruta correcta donde tiene los archivos del proyecto
SET DEFAULT TO ("C:\TAC-CFDI\") &&Especifique la ruta correcta donde tiene los archivos del proyecto

declare short TimbrarCFD IN 'CFDLib.dll' string
declare string GetError IN 'CFDLib.dll'
declare string GetErrorExt IN 'CFDLib.dll'
declare string CadenaOriginal IN 'CFDLib.dll'
declare string SelloDigital IN 'CFDLib.dll'

SELECT FACTURA
SET ORDER TO FOLIO && FOLIOCFD
SET FILTER TO FOLIOCFD = VAL(WFOL)
GO TOP
STORE FOLIOCFD TO MFOL
STORE SERIECFD TO MSER
STORE OBSERVA TO lcObserva
STRTOFILE(lcObserva,"C:\FactXML\Texto3.txt")
STORE TIPO_COMPRO TO lcCompro
STORE "C:\TAC-CFDI\BuzonCFDI\CfdiXML\" + ALLTRIM(ALLTRIM(mser)) + RIGHT("000000" + ALLTRIM(STR(mfol)),6) + ".xml" TO lcFileXML
STRTOFILE(lcObserva,"C:\FactXML\Texto3.txt")

if BITAND(TimbrarCFD('c:\TAC-CFDI\Timbrado.ini'),15) = 0
w_cadenacfdi=ALLTRIM(CadenaOriginal())
w_sellocfdi=ALLTRIM(SelloDigital())
ELSE
MESSAGEBOX("error!")
ENDIF
STRTOFILE(w_cadenacfdi,"C:\FactXML\cadena.txt")

SELECT FACTURA
RLOCK()
REPLACE CADENA WITH w_cadenacfdi
REPLACE SELLO WITH w_sellocfdi
UNLOCK

Alguien seria tan amable de ayudarme con este problema.
Gracias de antemano.

Avatar de Usuario
DADO
Mensajes: 12974
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Cadena Original

Mensajepor DADO » Lun May 26, 2014 12:35 pm

Esta instruccion es para asignarle memoria a la cadena?

STORE SPACE(250) TO w_cadenacfdi, w_sellocfdi


Si es asi, es muy poco, asignale mas, mucho mas

STORE SPACE(2000) TO w_cadenacfdi, w_sellocfdi
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

JVDH
Mensajes: 43
Registrado: Lun Feb 21, 2011 11:54 pm

Re: Cadena Original

Mensajepor JVDH » Lun May 26, 2014 1:25 pm

Gracias DADO por tu respuesta.
Pero creo que algo anda mal en el código y en VFP el campo más grande para almacenar es el campo MEMO.
Yo quiero la cadena original para mandarla en formato .txt y correr el FACTXML.

Saludos

JVDH
Mensajes: 43
Registrado: Lun Feb 21, 2011 11:54 pm

Re: Cadena Original

Mensajepor JVDH » Lun May 26, 2014 11:11 pm

Hola a todos,

Buscando en todo el foro, encontré un código hecho por "hreyes" en visual foxpro y pude resolver mi problema.
Le adjunto el método y ... funciona de maravilla.
Gracias una vez más a hreyes por su contribución.
Espero que le sirvan a otros como a mi me sirvió.

lcTimbrado= FILETOSTR("C:\TAC-CFDI\BUZONCFDI\CfdiXML\a000022.xml")

lcFolio = STREXTR(lcTimbrado, [UUID="], [" ])
lcFechaTimbrado = STREXTR(lcTimbrado, [FechaTimbrado="], [" ])
lcSelloCFD = STREXTR(lcTimbrado, [selloCFD="], [" ])
lcCertificadoSAT=STREXTR(lcTimbrado, [noCertificadoSAT="], [" ])
lcSelloSAT= STREXTR(lcTimbrado, [selloSAT="], [" ])

*!* La Cadena Original se forma con los siguientes parametros:
*!* 1. version
*!* 2. UUID
*!* 3. FechaTimbrado
*!* 4. selloCFD
*!* 5. noCertificadoSAT
STORE '||1.0|'+ lcFolio +'|'+ lcFechaTimbrado +'|'+ lcSelloCFD+'|'+ lcCertificadoSAT +'||' TO chaine
STRTOFILE(Chaine,"C:\FactXML\cadena.txt")
MESSAGEBOX("CADENA RIGINAL MANDADA A C:\FACTXML")

Saludos


Volver a “Visual FoxPro”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado