Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Micro Focus COBOL AcuCobol
AcuCobol IDE y Compilador AcuCobol
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
No puedo crear un archivo indexado CHITOBLA GnuCOBOL (OpenCOBOL) 42 7 de diciembre de 2022 10:34
[PowerCOBOL] Código para crear archivo Json fastpho Cocina PowerCOBOL 11 16 de noviembre de 2021 20:24
[Sintaxis] Crear archivo indexado desde un XLS Anthony AcuCobol 10 6 de agosto de 2019 17:35
[Sintaxis] Generar archivo xml en utf-8 Fito PowerCOBOL (ActiveX, v4 - v11) 4 30 de julio de 2017 00:44
[Duda] Crear archivo manifiest ¿?¿? Josber COBOL - General 10 22 de diciembre de 2015 07:59

Respuesta
 
Herramientas

  #1
Antiguo 15 de mayo de 2015, 22:30
Anthony
Forero Junior
Última Actividad 16.03.2017 20:55
Posts Posts: 14
Likes enviados Enviados: 13
Likes recibidos Recibidos: 0
Pregunta Crear Archivo Xml
0 Inactivo Inactivo

Hola Coboleros Alguien que me pueda Orientar para Generar un Archivo Xml con los datos que estan en los registros de Cobol..! Ejemplo (datos de una factura).
O si se puede transformar los datos de un archivo txt o csv a XML, dado a que puedo exportar mis datos a esos tipos de archivos.
Cualquier ayuda me sirve..! Gracias..
Anthony is offline   Responder Con Cita
  #2
Antiguo 16 de mayo de 2015, 21:08
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Anthony,

O Acucobol permite comandos COM (OLE2)???
Se permitir posso passar-te um exemplo para usar a MSXML Library do Windows.

O ficheiro XML é um ficheiro line sequencial. apenas tem uma estrutura associada.
Poderias gravar directamento os dados para esse ficheiro de texto.

Por Exemplo:
Código XML:
  1. <Documento>
  2.       <DocumentoNr>123456789</DocumentoNr>
  3.       <DocumentoData>20150515</DocumentoData>
  4. </Documento

Un saludo,
Rui Pinto
Rapinto is offline   Responder Con Cita
  #3
Antiguo 18 de febrero de 2016, 22:19
Cuitinof
Acabo de llegar...
Última Actividad 18.02.2016 22:19
Posts Posts: 2

Hola. Este post es viejo pero si no pudiste hacerlo, te puedo pasar un programa que lo hace. Saludos!
Cuitinof is offline   Responder Con Cita
  #4
Antiguo 19 de febrero de 2016, 08:33
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Cuitinof, si tienes una solución, pégala aquí directamente para que no haya que pedírtelo cada vez. Si mañana alguien llega con el mismo problema, tendrá tu solución a su disposición



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #5
Antiguo 25 de febrero de 2016, 18:41
Gusaiello
Forero Activo
Concurso: Segundo puesto: Ganador/a del Segundo puesto en un concurso - Issue reason: Generador de código QR encriptado Activista del Foro: Activista del Foro - Issue reason: Por aportar ejecrcicios para los novatos 
Última Actividad 17.09.2026 14:29
Posts Posts: 236
Likes enviados Enviados: 150
Likes recibidos Recibidos: 139

Crear un archivo XML es algo muy sencillo, tal como lo muestra Rapinto en su breve ejemplo.

Para hacerlo desde AcuCobol, lo único que hay que hacer es declarar la estructura del archivo como LINE SEQUENTIAL y luego meterle los registros adentro.

Hasta aca todo muy sencillo, pero ahora viene lo que no se como hacer : como hago que funcione?

Es decir, como hago que el archivo sea transmitido y en el caso particular del archivo por el cual preguntaba Anthony, como recibo la respuesta (la cual también viene en el mismo formato XML).

Por las dudas aclaro que el lenguaje es ACUCOBOL GT para Windows.
Gusaiello is offline   Responder Con Cita
  #6
Antiguo 25 de febrero de 2016, 19:03
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Gusaiello, una cosa es generar un XML, y totalmente otra qué hacer con él después, enviarlo a algún lado o no.

Quiero decir, el hecho de generar un fichero XML es simplemente crear un fichero te texto. Para leerlo, es un poco más complicado pero sigue siendo lectura de un fichero de texto (luego un par de bucles buscando tag-s de apertura y cierre para determinar el valor).

¿Qué necesitas hacer con dicho XML, para qué lo generas?


P.D. MicroFocus tiene su propio XML Parser integrado, manejable desde COBOL. No sé si Acu lo tiene...



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #7
Antiguo 25 de febrero de 2016, 19:36
Gusaiello
Forero Activo
Concurso: Segundo puesto: Ganador/a del Segundo puesto en un concurso - Issue reason: Generador de código QR encriptado Activista del Foro: Activista del Foro - Issue reason: Por aportar ejecrcicios para los novatos 
Última Actividad 17.09.2026 14:29
Posts Posts: 236
Likes enviados Enviados: 150
Likes recibidos Recibidos: 139

Te explico cual es el tema para que se entienda hacia donde apunta la pregunta de Anthony y luego la mía.

En Argentina se ha implementado una nueva modalidad de facturación denominada Factura Electrónica, lo cual significa que los sistemas de facturación, previo a la emisión de una factura, deben solicitar autorización a la AFIP (Administración Federal de Ingresos Públicos) a través de webservice.

Los datos que se envían son tipo y número de documento del comprador, importe total facturado, alícuotas de iva, etc, es decir los datos básicos que a la AFIP le interesan.

Tenemos dando vueltas por aquí algunas interfases que hacen este trabajo : nosotros les pasamos los datos necesarios a la interfase, la llamamos desde nuestro programa COBOL y esta se encarga de la negociación con los webservices de AFIP.

Lo que aparentemente estamos intentando hacer es evitar la necesidad de comprar la mencionada interfase y tratar de resolverlo con nuestras propias herramientas, pero no se si la versión de COBOL que estamos utilizando (ACUCOBOL GT en mi caso) tiene la posibilidad de hacer esto.

Por eso decía anteriormente que la creación del archivo es muy sencillo, el tema es lo que hay que hacer a continuación con este archivo (enviarlo y recibir la respuesta).

Luego, una vez recibida la respuesta también es muy sencillo leerla, como vos bien decís, es simplemente analizar lo que está entre los tag-s.
Gusaiello is offline   Responder Con Cita
  #8
Antiguo 25 de febrero de 2016, 22:46
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Gusaiello, si Acu no opera con COM/OLE, lo que podría ser una solución es un VBScript el cual cogerá el XML generado y hará el trabajo de envío y recepción.

Buscando en Google hay varios ejemplos de VBScript usando WebServices. Aquí está uno de ellos, aunque no sé si contiene todo lo necesario:

Código VB:
  1. function ProcessSend()
  2.     Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.4.0")
  3.     Set oXMLDoc = CreateObject("MSXML2.DOMDocument")
  4.  
  5.     oXMLHTTP.onreadystatechange = getRef("HandleStateChange")
  6.  
  7.     strEnvelope = "callNo="&callNo&"&exp="&exp
  8.  
  9.     call oXMLHTTP.open("POST","http://localhost:11883/ServiceCall.asmx/"&posFirm,false)'<< changed true to false here.
  10.    call oXMLHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
  11.  
  12.  
  13.     call oXMLHTTP.send(strEnvelope)
  14. end function
  15.  
  16. Sub HandleStateChange
  17.     if(oXMLHTTP.readyState = 4) then
  18.         dim szResponse: szResponse = oXMLHTTP.responseText
  19.         call oXMLDoc.loadXML(szResponse)
  20.         if(oXMLDoc.parseError.errorCode <> 0) then
  21.                 'call msgbox("ERROR")
  22.                response = oXMLHTTP.responseText&" "&oXMLDoc.parseError.reason
  23.                 'call msgbox(oXMLDoc.parseError.reason)
  24.        else
  25.                 response = oXMLDoc.getElementsByTagName("string")(0).childNodes(0).text
  26.         end if
  27.  
  28.     end if
  29. End Sub



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:15.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.