Guía 30 – Cargar datos muy rápidos y online

Hay muchos proyectos de PHPRunner que son funcionalidades añadidas a grandes sistemas de CRM, etc. y en ocasiones requiere que copiemos una parte importante de información al sistema desarrollado en PHPRunner.

También, como es el caso del ejemplo que os traigo, se utilizan datos de OPEN DATA de las administraciones públicas para complementar información de nuestros sistemas.

El ejemplo que he hecho es la captura dinámica de la información del COVID de todos los países del mundo y de las regiones de los países de la Unión Europea.

El ejemplo hace:

  • Al primer usuario que se conecta del día, inicia el refresco de la información que publica la UE con el sistema que explico a continuación.
  • El resto de usuarios del día, utiliza la información que previamente se ha cargado.

El proceso de refresco hace (en mi PC tarda menos de 20 segundos):

  • Bloquear la tablas involucradas para que nadie acceda hasta completar el proceso de refresco de datos.
  • Limpiar las tablas de almacenamiento de los datos.
  • Descarga de la web de la UE de los 2 ficheros (unos 20 MB de información y unos 75.000 registros). Son ficheros JSON
  • Convertir esos ficheros JSON en ficheros CSV.
  • Cargar los nuevos datos con el comando «LOAD DATA INFILE».
  • Desbloquear las tablas involucradas.
  • Refrescar la página para que se vean los nuevos datos.

Objetivo

Explicar un método de refresco de datos Online en donde esté involucrado un volumen considerable de información en un tiempo muy pequeño.

DEMO: https://fhumanes.com/covid/

Si te interesa este tema o deseas acceder al código, sigue leyendo el artículo de este enlace.

Guía 29 – informar a través de barra de progreso

En este ejercicio intento resolver 2 situaciones que normalmente se producen en proyectos que suelen ser complejos, a saber:

  1. Definir una «barra de progresión» para indicar cuanto del trabajo lleva hecho el usuario que está utilizando la aplicación.
  2. Informar que el sistema está haciendo una actualización y que el usuario debe esperar a que termine para continuar.

El caso de uso típico de la (1) opción es cuando estamos haciendo una encuesta o simplemente, cuando estamos cumplimentando datos en varias etapas. La barra informa de lo que llevamos hecho y/o de lo que falta para terminar.

En el caso de la (2) opción es cuando estamos haciendo un proceso de actualización que no es inmediato y debemos indicar al usuario que se está produciendo una actualización y debe esperar a que termine.

DEMO: https://fhumanes.com/progress_bar

Si te interesa el tema y deseas los fuentes del ejemplo sigue leyendo el artículo.

Guía 28 – Situar el servidor en un «timezone» concreto

Aquellos que alquilamos un hosting para nuestros desarrollos, yo me encuentro en este caso, vemos que nuestras máquinas unas veces están en un país y otras veces en otro, y que sobre todo ni el sistema operativo ni el gestor de base de datos está en la zona horaria que a mi me interesa. En algunos casos, a través de CPanel se puede configurar el PHP y se puede indicar la zona horaria (time_zone), pero no así el gestor de base de datos, estando normalmente en configuración UTC.

También, puede ser que aún teniendo la capacidad de ajustar el servidor, requieras que diferentes aplicaciones tengan zonas horarias diferentes.

En mi caso concreto, al residir en Madrid, el server, tanto en SO como en DB, están en una hora menos.

Objetivo

Configurar las aplicaciones de PHPRunner para situarla en una zona horaria independientemente de la zona horaria del servidor.

DEMO: https://fhumanes.com/change_time/

Si te interesa este tema sigue leyendo el artículo de este enlace.

Guía 27 – Validaciones por AJAX personalizados

Estamos acostumbrados a que PHPRunner hace algunas validaciones utilizando Ajax (comunicación asíncrona), por ejemplo para validar que un campo no esté duplicado, pero no está claro cómo añadir este tipo de validaciones personalizadas cuando el usuario está rellenando un formulario de datos.

En jerga de tecnología, se indica que se desea comunicación por Ajax entre el navegador y el servidor de aplicaciones.

Este tipo de comunicaciones se puede utilizar para validar un dato o recuperar una información del servidor partiendo de la información ya informada en el formulario.

Objetivo

Describir de forma sencilla y clara cómo hacer comunicaciones Ajax (entre navegador y servidor de aplicaciones) para validad y/o recuperar datos

DEMO: https://fhumanes.com/guia27/

Si estas interesado en este tema haz clic en este enlace al artículo completo y a la descarga del proyecto

Guía 26 – Gestión de registros seleccionados de página LIST

Este ejemplo es bastante simple pero parece que a los desarrolladores de PHPRunner, en algunos casos, nos cuesta recordar lo fácil que lo hace el producto para tratar los registros que previamente hemos seleccionado en una página LIST.

El ejemplo tiene como objetivo registrar si un registro se ha archivado o no, con que actualiza un campo en el registro con esta información y además crea un registro en la tabla de archivados, con la información del registro original.

Para el ejemplo me he fijado estos requisitos:

  • Se actualizará el registro seleccionado, indicado que el registro se ha «archivado» y se creará un registro copia del anterior, en la tabla de «archivados».
  • Se crearán 2 botones uno para «Archivar» y otro «Des-archivar» que hace la operación contraria.
  • No se hará la operación si el registros está en el estado que se solicita debe quedar.

Objetivo

Facilitar la compresión y disponer de un ejemplo para el tratamiento de los registros seleccionados en una página de tipo LIST.

DEMO: https://fhumanes.com/guia26

Si deseas más información y obtener el código del ejemplo sigue leyendo el artículo.