Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Fujitsu COBOL (https://www.cobolforo.es/forumdisplay.php?f=77)
-   -   [Duda] Enlazar con servicios web y codigos QR (https://www.cobolforo.es/showthread.php?t=1346)

lumalma 12 de julio de 2021 11:38

Enlazar con servicios web y codigos QR
 
Buenos dias a todos
Las Haciendas forales vascas implantan un sistema de envio de las facturas mediante un archivo XML a traves de servicios web RESTful y ademas cada factura en papel o pdf, etc debe llevar un identificador que se debe generar y un codigo QR.
A pesar de haber mirado documentacion al respecto estoy bastante perdido. Todos estos temas no los he tratado nunca y no se por donde empezar ya que el desarrollo que he hecho habitualmente es adaptar las aplicaciones para funcionamiento en modo local o red.
No se como puedo enlazar desde una aplicacion powercobol con una aplicacion que genere codigos QR ni generar una API para enviar el fichero XML. Realmente estoy muy perdido con todos estos temas y, la verdad, un poco desesperado.

Espero haberme explicado bien.

Agradezco por adelantado toda ayuda.

Un saludo

Joseg 12 de julio de 2021 12:30

Cita:

Citación del post de lumalma (Mensaje 6847)
Buenos dias a todos
Las Haciendas forales vascas implantan un sistema de envio de las facturas mediante un archivo XML a traves de servicios web RESTful y ademas cada factura en papel o pdf, etc debe llevar un identificador que se debe generar y un codigo QR.
A pesar de haber mirado documentacion al respecto estoy bastante perdido. Todos estos temas no los he tratado nunca y no se por donde empezar ya que el desarrollo que he hecho habitualmente es adaptar las aplicaciones para funcionamiento en modo local o red.
No se como puedo enlazar desde una aplicacion powercobol con una aplicacion que genere codigos QR ni generar una API para enviar el fichero XML. Realmente estoy muy perdido con todos estos temas y, la verdad, un poco desesperado.

Espero haberme explicado bien.

Agradezco por adelantado toda ayuda.

Un saludo

QRCode - eu uzo o zint (opensource), posteriormente anexo a imagem a um report (no meu caso Crystal Report)
Exemplo:
Código COBOL:
  1.         STRING "zint -o " DELIMiTED SIZE
  2.             qrfilename DELIMiTED "  "         ----------------------------------------->> o que fica no qrcode
  3.             " --vers=12 --secure=2 --scale=5 -b 58 -d " DELIMiTED SIZE
  4.             '"' DELIMiTED BY SIZE
  5.             WGSTRING DELIMiTED BY "  "
  6.             '"' DELIMiTED BY SIZE
  7.         INTO REGCOMMAND.
  8.         INVOKE POW-SELF "ExecuteSync" USING REGCOMMAND POW-SWHIDE RETURNING ReturnValue.    


Para JSON dá para fazer tudo com esta ferramenta:
jq

Também existem outras alternativas, ver exemplos neste forum.

Gusaiello 12 de julio de 2021 14:02

Hola @lumalma, por si sirve de algo envié para el concurso un programita que genera un QR.

Esta el fuente con todos los accesorios que necesita (Zint para generar el QR y Magick para cambiarle el formato).

Zint genera la imagen pero con formato .png.

No se si tiene algún parámetro para cambiar ese formato, por use Magick para generar un .jpg.

Espero te sirva.

lumalma 12 de julio de 2021 16:13

Hola

Muchas gracias Joseg y Gusaiello por vuestra rapida respuesta.

Me pondré con ello y ya comentaré mis progresos.

Un saludo

Fito 12 de julio de 2021 16:30

Buen día: En Argentina tenemos el servicio de Factura Electrónica que sería más o meno lo mismo.

Para todo el manejo del webservice, acá hay empresas que se dedican a la producción de Activex u Ejecutables en Batch para realizar este tipo de tarea. Tendrías que ver si en España hay productos de ese estilo, para no tener que ponerte a renegar vos con todos esos temas. Porque más allá de tener que realizar la aplicación, después hay que mantenerlas actualizadas por todo los cambios que el Fisco realiza. De esta manera es más sencillo para nosotros.

Y la parte del QR, todo dependerá qué herramienta utilices para hacer los reportes. En mi caso uso Cobview y ya la ultima versión genera QR.

Saludos...

Fito...

lumalma 15 de julio de 2021 19:27

Muchas gracias Fito

Un saludo

---------- Post añadido : 19:27 ---------- Post anterior : 19:16 ----------

Buenas tardes

Siguiendo los ejemplos de Joseg y Gusaiello he intentado crear un codigo QR con zint e insertarlo en un documento impreso.

Gusaiello, además lo he hecho en bmp ya que con un parámetro se puede crear un codigo QR en bmp.

El texto de ejemplo que estoy utilizando es: TICKETBAI

El problema es que al ejecutar el comando con executesync como comentaba Joseg me devuelve el error +000000005. Si pruebo con texto mas pequeño como "Esto es una prueba" me genera el QR en formato bmp.

Pero si pruebo a introducir el texto largo en el programa que Gusaiello presentó al concurso se genera perfectamente el QR y lo puedo imprimir y al leerlo obtengo la url que he indicado.

En el manual de zint en Zint: Home indican unos errores en el capítulo 5. Using the API pero no viene nada respecto al comentado mas arriba.

He hecho bastantes pruebas y no logro nada. Pongo el código que estoy utilizando:

Código COBOL:
  1.      01 WTEXTOQR PIC X(256) VALUE SPACES.
  2.      01 WARCHIVOQR PIC X(8192) VALUE SPACES.
  3.  
  4.      MOVE SPACES TO WARCHIVOQR WTEXTOQR
  5.      MOVE "CODQR.BMP;" TO WARCHIVOQR
  6.      MOVE "https://tbai.egoitza.gipuzkoa.eus/qr/?id=TBAI-44619360G-261020-EzyQEMtxw37Gm-161&s=TB-2020-F&nf=419&i=1542.75&cr=182;" TO WTEXTOQR
  7. *     MOVE "Esto es una prueba;" TO WTEXTOQR
  8.      STRING "zint.exe -o " DELIMITED BY SIZE
  9.         WARCHIVOQR DELIMITED BY ";"
  10.         " --vers=4 --secure=2 --scale=5 -b 58 --filetype=BMP -d " DELIMITED BY SIZE
  11.         '"' DELIMITED BY SIZE
  12.         WTEXTOQR DELIMITED BY ";"
  13.         '"' DELIMITED BY SIZE
  14.         INTO WLINEACOMANDO.
  15. *     INVOKE POW-SELF "ExecuteSync" USING WLINEACOMANDO POW-SWHIDE
  16. *                                   RETURNING WRETURNVALUE2
  17.      INVOKE POW-SELF "ExecuteSync" USING WLINEACOMANDO
  18.                                    RETURNING WRETURNVALUE2
  19.      display "WRETURNVALUE2: " WRETURNVALUE2
  20.  
  21.      MOVE "B" TO EDIT-MODE OF BM-CODQR OF IFactuVT
  22.      MOVE "CODQR.BMP" TO BM-CODQR OF IFactuVT

Muchas gracias

Un saludo

Fito 15 de julio de 2021 20:48

Hola:

Estás usando en ZINT de Gustavo u otra versión? porque esa versión no tiene para trabajar con BMP.

Sacale --filetype=BMP y generalo en PNG

Saludos...

Fito...

Gusaiello 15 de julio de 2021 21:45

Cita:

Citación del post de lumalma (Mensaje 6852)
Gusaiello, además lo he hecho en bmp ya que con un parámetro se puede crear un codigo QR en bmp.

Pues esta parte no se la encontré por ningun lado. Claro, asi te ahorras el paso de convertir el .png a otro formato.
En mi caso lo necesito en .bmp o .jpg que son los formatos gráficos que puedo leer con Acu.

---------- Post añadido : 16:45 ---------- Post anterior : 16:41 ----------

Cita:

Citación del post de Fito (Mensaje 6857)
Estás usando en ZINT de Gustavo u otra versión? porque esa versión no tiene para trabajar con BMP

Ah, entonces no es que no lo encontré, es que no lo tiene.
Gracias @Fito, entonces no soy tan burro :mola:

Agrego : buscando por ahi encontré otro programa para generar QR : qrencode, se usa mas o menos como Zint, por un lado tiene menos limitaciones, pero por otro lado no corre bajo XP.

Y...si... tengo algunos clientes que aún usan XP.

fastpho 15 de julio de 2021 22:00

Buenas
Esta ocx que subio Rapinto
en este link [Componente] Imprimir código QR - COBOL Foro
Genera qr-code en formato .jpg .png .bmp sin problemas
Código COBOL:
  1.         move "TEXT" OF EncodeTxt to "TextToEncode" OF qrcode1.
  2.          
  3.           move "filepng.png" to "ImageFileName" OF qrcode1.
  4.           INVOKE qrcode1 "Refresh".
  5.           INVOKE qrcode1 "SavePicture".
  6.          
  7.          move "filebmp.bmp" to "ImageFileName" OF qrcode1.
  8.           INVOKE qrcode1 "Refresh".
  9.           INVOKE qrcode1 "SavePicture".
  10.          
  11.          
  12.          move "filejpg.jpg" to "ImageFileName" OF qrcode1.
  13.           INVOKE qrcode1 "Refresh".
  14.           INVOKE qrcode1 "SavePicture".
Saludos

Joseg 16 de julio de 2021 10:22

Cita:

Citación del post de Gusaiello (Mensaje 6858)
Pues esta parte no se la encontré por ningun lado. Claro, asi te ahorras el paso de convertir el .png a otro formato.
En mi caso lo necesito en .bmp o .jpg que son los formatos gráficos que puedo leer con Acu.

---------- Post añadido : 16:45 ---------- Post anterior : 16:41 ----------



Ah, entonces no es que no lo encontré, es que no lo tiene.
Gracias @Fito, entonces no soy tan burro :mola:

Agrego : buscando por ahi encontré otro programa para generar QR : qrencode, se usa mas o menos como Zint, por un lado tiene menos limitaciones, pero por otro lado no corre bajo XP.

Y...si... tengo algunos clientes que aún usan XP.

Também uso isto para o efeito:
Mais detalhes: ImageMagick - Convert, Edit, or Compose Digital Images


Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  REGCOMMAND             PIC X(4096).
  5.  01  WSTEXTOENC             PIC X(4096).
  6.  01  ReturnValue            pic s9(5) comp-5.
  7.  PROCEDURE       DIVISION.
  8.     MOVE qrfilename TO qrfileconv.
  9.     inspect qrfileconv replacing ALL ".png" BY ".bmp".
  10.     INITIALIZE REGCOMMAND.
  11.     STRING "magick convert " DELIMiTED SIZE
  12.            qrfilename DELIMiTED "  "
  13.            " "  DELIMiTED BY SIZE
  14.            qrfileconv DELIMiTED "  "
  15.            INTO REGCOMMAND.
  16.     INVOKE POW-SELF "ExecuteSync" USING REGCOMMAND POW-SWHIDE RETURNING ReturnValue.
  17.     display "Convert ReturnValue " ReturnValue.
  18.      


La franja horaria es GMT +2. Ahora son las 23:59.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.