Gracias Rui Pinto (Rapinto)
COBOL Foro
Foro dedicado a COBOL, a la Programación y a la Informática.
  COBOL Foro > IDE-s y compiladores COBOL > Fujitsu COBOL > PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
Comunicados
Respuesta
 
Herramientas

  #1
Antiguo 7 de diciembre de 2017, 17:44
IDENTIFICATION DIVISION
Fito
 Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Razón: Por el Avatar  Activista del Foro: Activista del Foro - Razón: Por aportar ideas 
ENVIRONMENT DIVISION
Avatar de Fito
DATA DIVISION
febrero 2015
Córdoba, Villa María
50 años
16.06.2021 19:27
PROCEDURE DIVISION
Posts: 264
Enviado: 137
Recibido: 127
Soluiones: 13
Reputación: 19
Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road
Tableta JSON en Cobol...

Hola Amigos:

Un cliente contrató un servicio web y para enviar y recibir datos (articulos, clientes, pedidos), tengo que utilizar una API que tienen y pasale y recibir parámetros en JSON. Adjunto un pdf con la explicación.

Mis conocimientos web son mínimos. Quisiera saber si alguien me puede ayudar como hacer esto.

Muchas Gracias.

Fito...
Archivos Adjuntos
Tipo de Archivo: pdf Doc_API_CLOUDHH.pdf (130,9 KB, 20 descargas)
Fito no ha iniciado sesión   Responder Con Cita
Mejores respuestas Soluciones: 2
  #2
Antiguo 8 de diciembre de 2017, 19:30
IDENTIFICATION DIVISION
Fito
 Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Razón: Por el Avatar  Activista del Foro: Activista del Foro - Razón: Por aportar ideas 
ENVIRONMENT DIVISION
Avatar de Fito
DATA DIVISION
febrero 2015
Córdoba, Villa María
50 años
16.06.2021 19:27
PROCEDURE DIVISION
Posts: 264
Enviado: 137
Recibido: 127
Soluiones: 13
Reputación: 19
Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road
Predeterminado

Hola:

Buscando encontré este aporte de Rapinto, me parece que acá está la forma o me equivoco.

[Aporte] Ligar ao Site da União Europeia VAT Number - COBOL Foro
Fito no ha iniciado sesión   Responder Con Cita
  #3
Antiguo 9 de diciembre de 2017, 10:15
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
diciembre 2014
Madrid
36 años
16.06.2021 09:06
PROCEDURE DIVISION
Posts: 1.754
Enviado: 552
Recibido: 721
Soluiones: 94
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

Fito, el JSON no es otra cosa que un formato definido. Sigue tratándose de datos en texto plano. En cuanto a la POST request, efectivamente, se puede adaptar los ejemplos que hay en el foro y hacerlas vía COM/OLE2. Así que, no te será fácil al principio, pero es, según yo, perfectamente realizable.



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 no ha iniciado sesión   Responder Con Cita
  #4
Antiguo 14 de diciembre de 2017, 14:26
IDENTIFICATION DIVISION
Fito
 Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Razón: Por el Avatar  Activista del Foro: Activista del Foro - Razón: Por aportar ideas 
ENVIRONMENT DIVISION
Avatar de Fito
DATA DIVISION
febrero 2015
Córdoba, Villa María
50 años
16.06.2021 19:27
PROCEDURE DIVISION
Posts: 264
Enviado: 137
Recibido: 127
Soluiones: 13
Reputación: 19
Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road
Predeterminado

Hola Amigos:

Les cuento que gracias al ejemplo de Rapinto y un poco de google, logré comunicarme con la api. Ahora estoy esperando que me envíen un token valido para empezar a probar a full.

Cuando tenga todo listo, voy a subir un ejemplo.

Saludos.

Fito...

---------- Post añadido : 11:26 ---------- Post anterior : 21:14 ----------

Hola Amigos:

Ya logré comunicarme con el webservice, enviarle parámetros y recibir la respuesta.

Esa respuesta está en un json, ahora la tarea es "entender" ese json. Hacerlo en Cobol me parece muy complicado.

Buscando, buscando y buscando, me topé con esto.

[Aporte] Google Maps localización - COBOL Foro

Pregunto a lo mejor una burrada, porque estos temas todavía escapan a mi cerebro.

De acuerdo a este ejemplo, yo podría trabajar el json en javascript, donde tengo buen manejo de este tipo de dato, pasarlo a un txt tipo tabla, y esa funcion llamarla desde cobol. Estoy muy errado? después leería ese txt desde cobol y santo remedio.

Diagn que si, jajajajaja.

Saludos.

Fito...
Fito no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Kuk (12 de diciembre de 2017)
  #5
Antiguo 15 de diciembre de 2017, 00:00
IDENTIFICATION DIVISION
Rapinto
 Gran amigo del Foro y Guru de COBOL
Activista del Foro: Activista del Foro - Razón: ¡Gracias!  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
febrero 2015
Porto
29.01.2018 19:23
PROCEDURE DIVISION
Posts: 246
Enviado: 19
Recibido: 221
Soluiones: 47
Reputación: 16
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado

Fito,

Não me parece muito complicado fazer uma rotina para abrir o ficheiro de texto
e tentar interpretar :
"PH_CODIGO": "02220160513111442",
"CL_CODIGO": "01554",
"PH_FECINI": "2016-05-13", .......

Se usares o unstring ou o perform varying ... talvez seja fácil, leres a informação que precisas.

Un Saludo,
Rui Pinto
Rapinto no ha iniciado sesión   Responder Con Cita
  #6
Antiguo 15 de diciembre de 2017, 14:54
IDENTIFICATION DIVISION
Fito
 Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Razón: Por el Avatar  Activista del Foro: Activista del Foro - Razón: Por aportar ideas 
ENVIRONMENT DIVISION
Avatar de Fito
DATA DIVISION
febrero 2015
Córdoba, Villa María
50 años
16.06.2021 19:27
PROCEDURE DIVISION
Posts: 264
Enviado: 137
Recibido: 127
Soluiones: 13
Reputación: 19
Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road
Predeterminado

Hola Rui:

Sé que se puede hacer con cobol, el tema es el tiempo. Hacer y probar una rutina para interpretar el JSON me va a llevar mucho tiempo, que no tengo. Hay que tener en cuenta niveles, arrays y todas esas cosas. Cuando otros lenguajes lo tienen solucionado de manera sencilla.

En windev, por medio de una función (JSONtoVariant()) lo pasas a un array tipo variant y después con bucles anidados vas sacando todo. Por eso hice un exe en windev, que me lea el JOSN que lo grabo en un archivo, lo proceso y lo meto en otro archivo ya con el formato tipo tabla para leerlo desde cobol, trabajarlo así tipo batch.

Te pego un ejemplo (esto es una pequeña prueba, tengo que desarrollarlo para darle formato de tabla al txt de salida).
Código WinDev:
  1. VP is Variant = JSONToVariant(sJson)
  2.  
  3. FileId = fCreate("d:\yeison\verpedidos.txt",foReadWrite)
  4.  
  5. FOR EACH m OF VP..Member
  6.     LineRead = m..Name
  7.     fWriteLine(FileId, LineRead)   
  8.     FOR EACH m2 OF m..Member
  9.         LineRead = "   --1--   " + m2..Name
  10.         fWriteLine(FileId, LineRead)
  11.         IF m2..Name = "cabecera" THEN
  12.             FOR EACH m3 OF m2..Member
  13.                 LineRead = "   --2--    "+m3..Name +":"+ m3..Value
  14.                 fWriteLine(FileId, LineRead)   
  15.             END
  16.         ELSE
  17.             FOR i = 1 TO m2..Occurrence
  18.                 FOR EACH m3 OF m2[i]..Member
  19.                     LineRead = "   --3--    "+m3..Name +":"+ m3..Value
  20.                     fWriteLine(FileId, LineRead)   
  21.                    
  22.                 END
  23.             END
  24.         END
  25.     END
  26. END
  27.  
  28. fClose(FileId)

Muchas gracias por los aportes. Sigo probando y cuando tenga todo listo posteo el resultado.

Saludos.

Fito...
Fito no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
fastpho (15 de diciembre de 2017)
  #7
Antiguo 2 de junio de 2021, 19:22
IDENTIFICATION DIVISION
AHidalgo
 Acabo de llegar...
ENVIRONMENT DIVISION
Avatar de AHidalgo
DATA DIVISION
enero 2021
Buenos Aires
10.06.2021 20:00
PROCEDURE DIVISION
Posts: 6
Enviado: 2
Recibido: 0
Soluiones: 0
Reputación: 0
AHidalgo is an unknown quantity at this point
Predeterminado Ayuda: desde Power Cobol conectar a una API

Cita del post de Fito Ver Mensaje
Hola Rui:

Sé que se puede hacer con cobol, el tema es el tiempo. Hacer y probar una rutina para interpretar el JSON me va a llevar mucho tiempo, que no tengo. Hay que tener en cuenta niveles, arrays y todas esas cosas. Cuando otros lenguajes lo tienen solucionado de manera sencilla.

En windev, por medio de una función (JSONtoVariant()) lo pasas a un array tipo variant y después con bucles anidados vas sacando todo. Por eso hice un exe en windev, que me lea el JOSN que lo grabo en un archivo, lo proceso y lo meto en otro archivo ya con el formato tipo tabla para leerlo desde cobol, trabajarlo así tipo batch.

Te pego un ejemplo (esto es una pequeña prueba, tengo que desarrollarlo para darle formato de tabla al txt de salida).
Código WinDev:
  1. VP is Variant = JSONToVariant(sJson)
  2.  
  3. FileId = fCreate("d:\yeison\verpedidos.txt",foReadWrite)
  4.  
  5. FOR EACH m OF VP..Member
  6.     LineRead = m..Name
  7.     fWriteLine(FileId, LineRead)   
  8.     FOR EACH m2 OF m..Member
  9.         LineRead = "   --1--   " + m2..Name
  10.         fWriteLine(FileId, LineRead)
  11.         IF m2..Name = "cabecera" THEN
  12.             FOR EACH m3 OF m2..Member
  13.                 LineRead = "   --2--    "+m3..Name +":"+ m3..Value
  14.                 fWriteLine(FileId, LineRead)   
  15.             END
  16.         ELSE
  17.             FOR i = 1 TO m2..Occurrence
  18.                 FOR EACH m3 OF m2[i]..Member
  19.                     LineRead = "   --3--    "+m3..Name +":"+ m3..Value
  20.                     fWriteLine(FileId, LineRead)   
  21.                    
  22.                 END
  23.             END
  24.         END
  25.     END
  26. END
  27.  
  28. fClose(FileId)

Muchas gracias por los aportes. Sigo probando y cuando tenga todo listo posteo el resultado.

Saludos.

Fito...
Estimados, les dejo la consulta para saber si pudieron resolver esto. Estoy con el mismo problema y no encuentro soluciones directas. Quiero desde Power Cobol conectarme a una API para bajar las ventas en la nube (me devuelve un json) e incorporarlas a mi sistema windows, ahora se hace manualmente y es una pérdida de tiempo.
Me podrán ayudar por favor?

Saludos
Ana

---------- Post añadido : 15:22 ---------- Post anterior : 12:32 ----------

@Kuk, Help!, me podrás ayudar?

Saludos
Ana
AHidalgo no ha iniciado sesión   Responder Con Cita
  #8
Antiguo 2 de junio de 2021, 19:57
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
diciembre 2014
Madrid
36 años
16.06.2021 09:06
PROCEDURE DIVISION
Posts: 1.754
Enviado: 552
Recibido: 721
Soluiones: 94
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

@AHidalgo, hola.
Qué problema tienes exactamente? Para descargar el JSON o parsearlo?



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 no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
AHidalgo ( 2 de junio de 2021)
  #9
Antiguo 2 de junio de 2021, 20:33
IDENTIFICATION DIVISION
AHidalgo
 Acabo de llegar...
ENVIRONMENT DIVISION
Avatar de AHidalgo
DATA DIVISION
enero 2021
Buenos Aires
10.06.2021 20:00
PROCEDURE DIVISION
Posts: 6
Enviado: 2
Recibido: 0
Soluiones: 0
Reputación: 0
AHidalgo is an unknown quantity at this point
Predeterminado

@Kuk, hola, gracias por responder, empecemos desde el principio, probé algunas formas de conectarme a la API y aún no me funcionaron, si conoces alguna forma desde cobol directamente te lo agradecería.

Saludos
Ana
AHidalgo no ha iniciado sesión   Responder Con Cita
  #10
Antiguo 2 de junio de 2021, 22:21
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
diciembre 2014
Madrid
36 años
16.06.2021 09:06
PROCEDURE DIVISION
Posts: 1.754
Enviado: 552
Recibido: 721
Soluiones: 94
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

@AHidalgo, nunca lo he hecho, pero creo que se podrá hacer de manera similar a esto: [Aporte] Ligar ao Site da União Europeia VAT Number - COBOL Foro

Aquí se trata de WSDL Soap, pasando por la clase COM de PowerCOBOL.

Tendrías que mirar ejemplos de cómo trabajar con JSON, pero al fin y al cabo sigue siendo una request HTTP también, o sea que debería funcionar.

Amigos, @Josber, @Nitzer, qué opináis?

Una vez el JSON obtenido, miraremos cómo parsearlo (creo recordar que hay bibliotecas en el foro, o lo mismo estudiamos cómo hacerlo por Java por ejemplo).



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 no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
AHidalgo ( 3 de junio de 2021)
Respuesta

Tags
api , json , parse


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

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



La franja horaria es GMT +1. Ahora son las 09:25.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2021, Jelsoft Enterprises Ltd.