Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol COBOL - General
COBOL - General Discusiones de temática general sobre el lenguaje COBOL y todo lo relacionado con él.
 
Respuesta

  #1
Antiguo 8 de octubre de 2025, 05:40
Jorgeanna
Forero Junior
Última Actividad 25.01.2026 23:59
Posts Posts: 24
Likes enviados Enviados: 0
Likes recibidos Recibidos: 39
Post Demo PHP para Altas Directo en Archivos Binarios
6 Inactivo Inactivo

Estimados COBOLeros,

¡Espero que este hilo sirva para despertar un poco el Espíritu COBOLero y nos impulse a la modernización!

Como muchos de ustedes, me he enfrentado al desafío de integrar nuestros robustos sistemas COBOL con la web moderna. Existe un vacío notable en PHP (y me atrevería a decir, en la mayoría de los lenguajes web) cuando se trata de realizar operaciones de Altas, Bajas y Modificaciones (ABM) directamente en archivos de datos binarios de COBOL sin requerir middleware o drivers propietarios.

He dedicado tiempo a la ingeniería inversa de la estructura de nuestros archivos de datos para desarrollar una modesta librería en PHP que permite leer, escribir e insertar registros directamente en archivos binarios, logrando que estos datos sean accesibles y modificables desde una aplicación web, sin ninguna modificación en la aplicación de escritorio COBOL original.

Detalles de la Solución Propuesta
El objetivo de este proyecto es que la comunidad pueda probar y validar la portabilidad de esta arquitectura.

La aplicación web de ejemplo incluye:

Altas de Clientes y Saldos: Un formulario para la inserción directa de nuevos registros.

Listado por Claves: Visualización de los clientes ordenados por dos claves (numérica y alfabética).

Ejemplo simple: para que puedan replicarlo en un servidor web local como xampp y tienen la libreria desde hace mucho tiempo en el foro.

Descarga para Pruebas: Un botón que permite descargar el archivo clientes.dat con los registros ingresados hasta ese momento, para que puedan cargarlo y probar su lectura en sus propias aplicaciones de escritorio COBOL.

Enlace al Ejemplo:
https://jorgeanna.info/
https://jorgeanna.info/index.php

Para mayor claridad en la implementación, los archivos de ejemplo en el link están presentados sin CSS.

Un Llamado a la Comunidad
Sé que he probado el concepto con PowerCOBOL, pero la arquitectura de archivos binarios es similar en muchos entornos. Los invito a que lo prueben con RMCobol, Micro Focus, o cualquier otra plataforma para validar la universalidad de este enfoque.

Aviso al Administrador y Moderadores del Foro
Agradecería enormemente que este tema no sea etiquetado ni asociado a ningún sistema propietario específico (PowerCOBOL, RMCobol, etc.).

El código se basa enteramente en ingeniería inversa de formatos de archivo comunes y es un esfuerzo por democratizar el conocimiento técnico que a menudo queda secuestrado por las licencias propietarias, las cuales, más que COBOL, son las que frenan nuestra innovación.

Mi compromiso es con la comunidad COBOL, no con ninguna empresa.

Quedo atento a sus comentarios, pruebas y sugerencias. ¡Espero que les sea de gran utilidad!

Saludos cordiales,
Jorge Anna.
la url demo: la dejare un tiempo para que cualquier cobolero necesite consultar el tema.

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  panta.png
Vistas: 207
Tamaño:  53,4 KB  

Última edición por Jorgeanna fecha: 8 de octubre de 2025 a las 05:44.
Jorgeanna is offline   Responder Con Cita
  #2
Antiguo 8 de octubre de 2025, 18:11
Paulo
Forero Senior
Última Actividad 17.09.2026 16:22
Posts Posts: 101
Likes enviados Enviados: 25
Likes recibidos Recibidos: 33

Mais um bom aporte para a ponte entre o Cobol e a web.
Apenas um reparo: no "Ejemplo" não vejo o "RmFile.php"
Saludos
Paulo is offline   Responder Con Cita
  #3
Antiguo 8 de octubre de 2025, 19:35
Jorgeanna
Forero Junior
Última Actividad 25.01.2026 23:59
Posts Posts: 24
Likes enviados Enviados: 0
Likes recibidos Recibidos: 39

Citación del post de Paulo Ver Mensaje
Mais um bom aporte para a ponte entre o Cobol e a web.
Apenas um reparo: no "Ejemplo" não vejo o "RmFile.php"
Saludos
La libreria en si para lectura de registros cobol ya esta en el foro, solo fijate que si haces las pruebas en un servidor web el nombre es case sensitive, si es en entorno local con windows no importa.

PUEDEN CARGAR NUEVOS CLIENTES, Y AUTOMATICAMENTE LO VERAN EN LOS CORRESPONDIENTES EJEMPLOS, es mas me sirve porque estoy probando la libreria Insert y terminando la libreria Update.

Luego de insertar registros, si quieres descargas el clientes.dat y lo pruebas en tu app de escritorio y veras que tenes los datos hasta la ultima descarga

Saludos y Suerte
Jorgeanna is offline   Responder Con Cita
  #4
Antiguo 8 de octubre de 2025, 19:47
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Hola amigos:

Excelente aporte Jorge. Yo estoy haciendo web con cobhttpd, pero la opción que propones me parece muy interesante.

Saludos

Fito...
Fito is offline   Responder Con Cita
  #5
Antiguo 9 de octubre de 2025, 19:55
Jorgeanna
Forero Junior
Última Actividad 25.01.2026 23:59
Posts Posts: 24
Likes enviados Enviados: 0
Likes recibidos Recibidos: 39

Citación del post de Fito Ver Mensaje
Hola amigos:

Excelente aporte Jorge. Yo estoy haciendo web con cobhttpd, pero la opción que propones me parece muy interesante.

Saludos

Fito...

Hola Fito,

gracias por el comentario. Si podés, te invito a probar cargando algún cliente para que veas cómo responde la librería.

https://jorgeanna.info/presentacion.php

Por lo que tengo entendido, COBHTTPD no puede ejecutarse en un hosting Linux contratado, ya que depende de componentes Windows. En ese caso, la única alternativa sería contar con un servidor propio activo 24/7. Esto es asi, no?

Hace tiempo vengo trabajando con archivos indexados COBOL directamente desde aplicaciones web, sin necesidad de convertirlos a otros formatos. En paralelo, estoy desarrollando un conjunto de librerías PHP que permiten operar con esos archivos nativos: lectura, inserción, actualización y eliminación de registros.

Las funciones Insert y Delete ya están operativas y las he verificado con aplicaciones de escritorio que manejan los mismos archivos, obteniendo resultados consistentes.

La función Update está prácticamente terminada: funciona correctamente en todos los casos salvo cuando se modifican campos que forman parte de claves alternativas o secundarias, lo hace bien en la primera y segunda modificacion y luego tengo inconvenientes. (lo cual todavía estoy ajustando).

Lo destacable es que estas librerías PHP acceden a los archivos COBOL de manera directa, sin conversiones intermedias a TXT, SQLite o MySQL, y con una velocidad de lectura sorprendente.

De esta forma, el mismo archivo COBOL utilizado en un entorno Windows (por ejemplo, PowerCOBOL) puede ser leído y manipulado desde la web sin puentes, sin conversiones y sin licencias propietarias.

Además, los archivos modificados desde la web pueden descargarse y seguir siendo utilizados directamente en los sistemas COBOL locales, lo que garantiza total compatibilidad entre ambos entornos.

Bueno, saludos!
Jorgeanna is offline   Responder Con Cita
  #6
Antiguo 9 de octubre de 2025, 20:41
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Jorgeanna, muy buena iniciativa, si señor.

Vamos a dejar este hilo aquí, no te preocupes.

Tengo un par de preguntas.

Según entiendo, has realizado una librería en PHP para el manejo de ficheros Indexados Cobol (tú los llamas binarios).
Entiendo que vas a compartir dicha librería luego?

El caso es que existen varios formatos de ficheros indexados. El de IBM que se usa sólo en Mainframes (en realidad son varios), el de Micro Focus que creo recordar que es propietario, y luego está el RMKF utlizado por Fujitsu y RM (a lo mejor Acu tambén). Mirando muy por encima, encontré alguna info aquí: RM/COBOL data extraction | Tek-Tips

Estos formatos no son compatibles entre sí, ni siquiera las variedades de RMKF son al 100% compatibles entre sí. ¿Cuál de estos formatos has investigado y para cuál de ellos es tu librería?

Como dices que has probado con PowerCobol, imagino que has investigado el formato RMKF utilizado por Fujitsu.



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 20 de octubre de 2025, 02:20
Jorgeanna
Forero Junior
Última Actividad 25.01.2026 23:59
Posts Posts: 24
Likes enviados Enviados: 0
Likes recibidos Recibidos: 39

Hoka Kuk,
agradezco su interés y las preguntas detalladas sobre la librería. Me disculpo por la demora en responder; he estado inmerso en otros compromisos laborales.
Propósito Inicial:
El objetivo primario de la librería era demostrar la viabilidad de la inserción de registros en caliente a un archivo COBOL desde un entorno PHP, y que estos registros pudieran ser leídos correctamente por el runtime de COBOL.

A continuación, abordo sus inquietudes:

1. Naturaleza Binaria de los Ficheros Indexados de PowerCOBOL
Es correcto que llamo a los archivos indexados de COBOL "binarios" debido a su estructura física subyacente, y esta es la explicación técnica (IA):
Codificación Binaria: A diferencia de los archivos de texto que almacenan datos como caracteres legibles (ASCII o EBCDIC), los ficheros indexados de COBOL (incluyendo PowerCOBOL) son binarios porque sus datos se guardan en la memoria tal como son utilizados por el programa. Esto es especialmente cierto para campos numéricos definidos con cláusulas como COMP-3 (Packed Decimal), COMP (Binary/Native), o COMP-6. Estos formatos almacenan números de manera compacta, ocupando menos espacio que su representación en texto, pero son ilegibles directamente por un humano o un editor de texto estándar.
Bloques de Control y Metadatos: La cabecera (que contiene la firma RMKF) y los árboles de índice del archivo también son estructuras binarias, esenciales para el sistema de tiempo de ejecución (runtime) de COBOL.
Conclusión: Un archivo indexado no es una simple secuencia de registros de texto, sino una mezcla compleja de registros de datos compactos, metadatos y estructuras de índices, lo que colectivamente lo define como un fichero binario estructurado.

2. Alcance y Compatibilidad de la Librería PHP (RMKF)
Tiene razón al señalar que la compatibilidad entre los diversos formatos de archivos indexados es compleja, incluso dentro de la familia RMKF.
Mi librería ha sido diseñada y testeada íntegramente con ficheros indexados generados por PowerCOBOL (Fujitsu) v4 y 5, un entorno del cual poseo la licencia y me permite realizar pruebas exhaustivas de lectura, inserción y validación de registros y realizar las pruebas de ingenieria inversa sobre mis propios archivos.
Compatibilidad RMKF: Si bien PowerCOBOL utiliza la firma de cabecera RMKF (que también es empleada por RM/COBOL), las especificaciones internas de las funciones de gestión de archivos, los códigos de estado y, crucialmente, los niveles de formato específicos de cada implementación pueden diferir ligeramente.
Restricciones de Prueba: Actualmente, no he tenido la oportunidad de probar la librería contra entornos que utilicen la firma RMKF, pero no provengan de Fujitsu (como RM/COBOL o AcuCOBOL). Por lo tanto, aunque la compatibilidad es altamente probable debido a la similitud del formato RMKF base, no está certificada hasta que pueda realizar pruebas directas.

Lamento que no haya habido comentarios sobre la prueba de concepto de inserción de registros. Esperaba una respuesta más positiva respecto al interés y a las pruebas que otros pudieran realizar con distintos runtimes, como RM/COBOL, especialmente en lo referente a la compatibilidad del formato RMKF y sus índices asociados.


Dado que no hubo devoluciones, he decidido posponer el proyecto por el momento y continuar las pruebas por mi cuenta, explorando otras alternativas que permitan una validación más amplia del manejo de índices y estructuras de datos.
Ni bien tenga un panorama más completo, retomare el tema para ayudar a quienes realmente les interese su implementacion.

Gracias nuevamente por su tiempo y por plantear preguntas tan específicas que confirman la complejidad de estos formatos de archivo legados.

Saludos cordiales.
Jorge Anna.

pd. Subo la librería RmFile.php y RmFileDelete adaptada a la version PHP 8.x
Jorgeanna is offline   Responder Con Cita
  #8
Antiguo 20 de octubre de 2025, 09:56
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Jorgeanna, te propongo a que subas también tus librerías aquí en el foro



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
  #9
Antiguo 28 de abril de 2026, 13:52
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Hola Amigos:

Refloto este posteo porque estoy tratando de experimentar con estos temas.

Cualquier avance que haga lo voy a estar compartiendo aquí

Saludos

Fito...
Fito is offline   Responder Con Cita
  #10
Antiguo 28 de abril de 2026, 18:31
luisbago
Forero Junior
Última Actividad 20.09.2026 07:34
Posts Posts: 48
Likes enviados Enviados: 5
Likes recibidos Recibidos: 17

pues no hubo nada, el archivo que permitía el autor bajar un .php estaba vacío, así que aporte o análisis nunca hubo y en su momento no comente porque no quería polémica

aquí hay otro proyecto GitHub - gchiesa/php-mfcobol: PECL Extension able to read and write Microfocus RM Cobol databases · GitHub
luisbago is offline   Responder Con Cita
Respuesta


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

Saltar a Foro


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