Creación y parametrización de objetos
La principal característica de MaxGP es, que permite al usuario ir adecuando y construyendo acorde a sus necesidades el sistema de tal forma permita crear, modificar, eliminar y consultar datos los objetos que el vaya definiendo permitiendo su almacenamiento con mínimo conocimiento en lenguajes de programación.
MaxGP en si es una herramienta para generación de aplicaciones bajo un mismo estándar funcional enfocado en el diseño de patrones.
Toda esta flexibilidad se gestiona por el módulo de Objetos en el panel del control o por el botón configurar que tienes cada opción u objeto del sistema.
En este capítulo aprenderemos a parametrizar MaxGP, detallaremos la creación de las estructuras básicas u objetos para el correcto uso de esta funcionalidad.
Los objetos son elementos que definen una estructura con una información relevante que requiere ser almacenada en el sistema y se visualiza como una opción de MaxGP.
A continuación, mostraremos algunos ejemplos de lo que son los objetos del sistema:
Primero seleccionamos en el Panel de control del sistema MaxGP la opción Objetos del sistema:
Por defecto el sistema despliega la información de todos los objetos creados en MaxGP:
Para crear el objeto se selecciona la opción de nuevo y el sistema despliega un formulario que estará conformado por 4 secciones:
Cada objeto se crea con una información básica que permitirá identificarlo frente a los otros objetos del sistema, se le asigna un nombre, orden dentro en la lista de objetos, incluso se le puede asignar una imagen cuando el objeto este ubicado en el Tab principal:
Ubicación en el Sistema
El acceso al objeto se puede realizar desde el panel de control en los objetos del sistema o se le puede dar un acceso rápido dentro de los Tabs externos de objetos del sistema, para esto se define su ubicación si es visible en el menú, en el tab o en el panel de control, este detalle se define al crear el objeto:
Transacciones Adicionales
Son procesos que se ejecutan de pendiendo de la sentencia donde sea llamado, esto permite realizar acciones después de alguna de estas sentencias, por ejemplo, se requiere que se cada vez que se inserte un registro en un objeto A automáticamente se realice un registro en la tabla B, o que se actualice o se borre.
Primero se debe aclarar el concepto de que es un POST:
Nota: para la edición de este archivo se recomienda tener previos conocimientos de programación.
En el sistema un Post es un archivo .php ubicado en la ruta RaizMaxGP/src/post que contiene una clase cuyo nombre es dado según la compañía en la que este implementado el sistema, esta clase contiene funciones que realizan diferentes acciones que son codificadas por el administrador.
A estas funciones le llegan ciertos parámetros que son:
- $tabla: Nombre de la tabla que está siendo usada
- $valores: Datos de los campos del registro actual
- $valor_llave: Dato del campo llave primaria del registro
- $objeto: Llave del objeto en la tabla objetos
- $campo_llave = “” : Nombre del campo llave de la tabla que está siendo usada
Con estos parámetros se realizan consultas, inserciones, actualizaciones, eliminaciones de registros, validaciones etc. A continuación, se presenta un ejemplo de este archivo:
La estructura para llamarlo es nombreclase::nombrefuncion en la misma sentencia se deben llamar dos post se deben separar por punto y coma (;) por ejemplo para la compañía Infodec se crea el post con la clase in y se tienen dos funciones: in::cierre_oportunidad;in::actualiza_apellidos.
Configuración
Después de crear el objeto se puede acceder a él para ser consultado, realizarle modificaciones o edición a los atributos que se le dieron y eliminarlo si ya no se requiere, estas opciones son de consulta, edición y eliminación, estas opciones se habilitan según los permisos que tenga el rol del usuario sobre el objeto.
Consultar
El objeto puede ser consultado en el panel de control y seleccionar objetos del sistema:
En la pantalla de gestión de objetos que se despliega seleccionar Filtros, escribir algún valor que coincida con el objeto que se está buscando y dar clic en el botón Buscar, el sistema desplegará los registro que coincidan con el valor que se ingresó para la búsqueda, los campos que se podrán utilizar en la búsqueda son aquellos a los que se les de la opción usar en filtros en al momento de crear el campo, esta opción también puede ser agregada al editar el campo después de crearlo.
Si al objeto se le asignó la opción de ser visible en los Tabs externos, podrá acceder a él en la pantalla principal del sistema seleccionándolo desde los tabs ubicados en la parte izquierda, el icono que tiene forma del engranaje es el acceso rápido a la configuración de cada objeto:
Editar
La edición del objeto permite modificar la información básica del objeto, se pueden realizar dos tipos de cambio, el primero es cambiar los atributos que se dio al objeto como su información, ubicación en el sistema, las transacciones adicionales o la configuración, cabe aclarar que no todos los campos una vez guardados serán editables después.
El segundo cambio es el componente del objeto que son propiedades más avanzadas que se le asignan como los campos que se le crean las estructuras de reporte o las validaciones que se le dieron.
Para editar el objeto se ubica en el sistema, una vez se encuentra se selecciona el botón Editar (tiene forma de lápiz) y el sistema desplegará el formulario con la información del objeto para que sea modificada
Eliminar
No es recomendable la eliminación de objeto, se sugiere inactivar sus componentes para que no genere transacciones dentro de la base de datos, generalmente se realiza la eliminación de la estructura del objeto como, grupos, campos, validaciones y demás componentes creadas dentro del objeto.
Para eliminar, se ubica el objeto y sin ingresar al detalle se selecciona el botón eliminar, se indica la eliminación, el sistema validará si está seguro, el nivel de seguridad del sistema define los permisos de sobre objetos según el rol.
En la creación de un objeto también se definen los componentes que apoyaran el correcto funcionamiento de la tabla.
- Campos
- Estructuras de reporte
- Objetos detalle
- Plantillas de correo
- Notificación de Correo
- Validaciones
Los grupos permiten organizar los campos en bloques de información agrupada, permite visualizar los datos de forma organizada y de fácil acceso:
El grupo se crea un grupo dentro del objeto donde despliega un formulario con los datos básicos del grupo:
Al crear un nuevo campo se le indicará a que grupo pertenece.
Los campos son las columnas donde se almacenará la información del objeto, los campos se crean sobre el objeto y se le asignan las características básicas que tendrá el campo como tipo de dato, longitud, hasta propiedades especiales como los permisos que tendrán el campo y los datos que almacenará:
Detallaremos la creación de campos más adelante en el capítulo de campos del sistema.
La estructura del reporte nos permite asociar todos los objetos con sus respectivos campos que estarán disponibles en la generación de reportes del objeto que se está definiendo, es importante aclarar que estos objetos deben estar relacionados a través de llaves foráneas para asegurar la coherencia de la información.
La estructura del reporte también puede ser editada y eliminada con los botones del sistema para edición y eliminación.
Son los objetos que se pueden visualizar desde el detalle del objeto actual como pestañas.
Para crear un objeto detalle dar clic en el botón nuevo que tiene el siguiente formulario:
Son formatos estándares del sistema que permiten realizar el envío de un correo cuando se ejecuta una actividad dentro del objeto, también puede ejecutarse una acción o el cumplimiento del tiempo de una alerta, estos correos se envían a los usuarios del sistema.
Para acceder al detalle de una plantilla de correo se ingresa al objeto donde se va a configurar la tarea que se va a ejecutar donde pertenece la plantilla y en los tabs auxiliares se selecciona Plantilla de Correos en las pestañas de configuración del objeto:
Para la creación de una plantilla nueva, se selecciona la opción Nuevo y el sistema despliega el formulario con los datos que tendrá la plantilla:
Ejemplo de Plantilla:
Crearemos una plantilla en el objeto Tareas donde el usuario creador de una tarea recibirá una notificación por correo con la información de la tarea creada, se crea la plantilla con el mensaje que va a recibir el usuario:
Dentro del campo plantilla se encuentra el siguiente código en HTML:
Como se puede observar entre el símbolo # # está el nombre exacto del campo en la base de datos en el objeto tareas que se quiere mostrar en el contenido del correo y al enviarse la notificación con esta plantilla aparecerá el dato correspondiente al campo.
Permite configurar a que usuarios se les enviará el correo generado en la plantilla de correo creada previamente según el tipo de gestión que se realice en el objeto. Las notificaciones se pueden parametrizar en cualquier objeto y usar una plantilla creada en un objeto diferente.
Para la creación de una Notificación nueva se accede a la pestaña Notificaciones de Correos en la configuración del objeto donde se ejecutará la actividad que requiere enviar un correo al ser ejecutada:
Se selecciona nuevo y se diligencia el formulario que tiene los campos con la información básica que requiere la notificación:
Formulario de diligenciamiento de datos de la notificación del correo:
Ejemplo del correo que recibe el usuario, para este caso es una notificación de una tarea creada:
La plantilla puede tener formato adjunto o una imagen predeterminada.
Permitirá realizar validaciones adicionales sobre los formularios del sistema antes de realizar una transacción a la base de datos (Guardarlo). La sintaxis de esta validación está dada por el lenguaje JavaScript donde al realizar la validación y falle debe volver a digitar el formulario. Eventualmente puede suceder que no aplique los cambios inmediatamente sobre el navegador por el tipo de lenguaje utilizado, este puede almacenarse en la cache.
El acceso a las validaciones se realiza en la pestaña de configuración del objeto donde se vaya a configurar, dentro de los tabs auxiliares del objeto se selecciona Validaciones y la opción Nuevo:
Para el ejemplo se quiere validar un par de fechas que la fecha inicial no sea menor que la fecha final, para este caso en la base de datos debe existir las dos columnas tanto la fecha mínima de entrega y la fecha máxima de entrega para generar la comparación, la configuración se vería de la siguiente manera:
Los permisos que se le asignan a un objeto están enfocados en el rol de usuario que puede acceder al objeto para trabajar sobre él y visualizar la información.
Cuando se crea un objeto este debe ser incluido dentro del área y rol que lo va a gestionar, en el panel de control en la opción roles, su funcionalidad es la de crear los perfiles de usuario de acceso al sistema, pero esta información la detallaremos más adelante en el capítulo de usuarios:
El sistema despliega toda la información del objeto Roles con la lista de los roles actuales creados:
Dentro del rol se asignan los permisos de los objetos a los cuales tendrá acceso el rol y que clase de interacción puede tener con el objeto, con el botón de consulta detalle (tiene forma de binocular) se ingresa al detalle del rol:
En la pestaña Permisos de los Objeto se puede visualizar los permisos de los objetos y en la pestaña Reportes Inicio, los reportes de inicio configurados para el rol, para crear el permiso se selecciona el botón nuevo, el sistema despliega el formulario de creación de permiso:
Al terminar la asignación de los permisos el usuario tendrá acceso al objeto, si un usuario tiene problemas para acceder a la información del sistema es porque no se le ha otorgado permisos del objeto a su rol.
El reporte de inicio es el pantallazo inicial que tiene el usuario, con el fin de revisar en una sola vista su gestión en el sistema, el administrador del sistema puede crear reportes de inicio para cualquier rol y así facilitar el análisis de la información en primera instancia como pendientes y medición de indicadores, estos reportes de inicio se realiza según la creatividad del administrador y el planteamiento que solicite el jefe de cada área de como desea visualizar los resúmenes de gestión.
Vista inicial de los reportes de inicio del usuario al ingresar al sistema o al seleccionar el objeto inicio:
Previamente a la asignación de los reportes de inicio, el administrador debe crear el reporte sobre el objeto de la información que se va a utilizar, si por ejemplo se requiere medir la gestión de casos de servicio, debe ubicarse en el objeto de casos y allí realizar el reporte, luego debe compartirlo para ser un reporte de inicio, para esto es importante que el usuario que va a visualizar el reporte en el inicio del sistema, debe tener permisos sobre el objeto.
La creación y detalle de los reportes los visualizaremos más adelante en el capítulo de reportes del sistema, al crear el permiso para el reporte de inicio se selecciona en la pestaña Reportes de Inicio y nuevo, el sistema despliega la lista de los reportes generados que al ser creados se les dio la opción de reporte de inicio, se selecciona el reporte y orden que tendrá dentro de la pantalla:
Pertenece al componente de objetos del sistema, son columnas de almacenamiento de datos dentro del objeto, siendo el campo la unidad básica de entrada de datos de un registro se crean con un nombre y opciones de interpretación, introducción, cálculo, almacenamiento y visualización de los datos en los campos teniendo en cuenta en su definición opciones de validación, introducción automática y almacenamiento permite gestionar información ya sea del sistema como de los procesos que se realizan dentro de la organización.
Los campos siempre deben estar asociados al objeto y se crea dentro del mismo, se puede crear campos como llaves primarias que estén asociados a un objeto donde se relacionará la información de los dos objetos a través del identificador que se le asigne.
El objetivo entonces es poder definir para ese objeto cuales son los campos o datos que lo conforman, es importante tener en cuenta que en la creación de los objetos y de los campos de este se deben crear unos que el sistema requiere para su correcto funcionamiento entre ellos: Cada objeto se le debe crear un identificador único que se denomina el ID que es un número que se genera automáticamente por el sistema, el estándar que sugerimos es el nombre corto que se le da al objeto seguido de un guion bajo _ y la palabra número, esta palabra define que la tabla tiene identificador único como número, ejemplo:
Actualmente el sistema tiene una tabla de cuentas que aloja la información de los clientes o cuentas del sistema, el nombre de la tabla es cnta_nmero el nombre cnta es la abreviación que se le asignó a la palabra cuenta y le sigue el guion bajo _ y la palabra número.
Si necesitáramos crear una tabla llamada expediente un ejemplo para la creación del nombre de la tabla es la abreviación que le asignemos a expediente que puede ser expe y seguido del guion bajo seguido de la palabra número y así quedaría el nombre de la tabla expediente expe_numero.
Se recomienda tener en cuenta la organización de los campos ya que el sistema permite que se genere la cantidad que el usuario requiera y el objeto no tiene limitantes en la cantidad de campos que se le creen, para mantener el orden se crean los campos dentro del objeto para mantener la relación de en qué tabla del sistema se almacenara la información, estar asociado a un grupo de campos para que sea agradable a la vista la agrupación de la información en los formularios, pantallas o reportes que despliega el usuario.
Para crear un campo se realiza la búsqueda del objeto y dentro de la configuración del objeto en las pestañas de configuración del objeto se selecciona Campos del Objeto:
Dentro del objeto en la pestaña de campos del objeto donde se puede visualizar la lista actual de campos que se le han creado al objeto y se selecciona nuevo para crear un nuevo campo.
Crear Campos
Para crear un campo se selecciona nuevo:
Se sugiere tener claro que funcionalidad tendrá el objeto para que se pueda crear correctamente el sistema le solicitara las características que tendrá el campo:
- Atributo del Campo Identificación de los campos
- Fuente de Información Origen de los datos que alimentarán la información del campo
- Características Atributos básicos del campo
- Ubicación Vistas generales del campo en el sistema
- Funcionalidades Relación obligatoria con otros campos
Se selecciona la opción de nuevo y el sistema realiza el despliegue del formulario para la creación del campo:
Al diligenciar los atributos y características que tendrá el campo se selecciona el botón guardar.
Transacciones adicionales de los campos
Al realizar la creación de los campos también se le pueden dar características especiales que permitirán al campo ser utilizados en flujos de trabajo.
Un flujo de trabajo es una secuencia de actividades que le permiten al usuario llevar una interacción de un proceso que debe tener una trazabilidad de gestión, detallaremos los flujos de trabajo en el capítulo de CRM.
Cada actividad que se defina en el flujo tiene un formulario de gestión de información donde se crean campos para ser diligenciados con los datos que debe ser documentado por el usuario que diligencia las actividades.
Al finalizar la gestión y documentación de esta actividad el sistema habilita la actividad siguiente que se defina en el flujo, para esto se crean campos con valores de referencia y eventos en el campo.
Valores de referencia
Al tener un campo referencia asignado se deben crear los valores de referencia, estos valores indican cuando aparecerá el campo. Por ejemplo, en el objeto Contactos se tiene el campo Sexo que define si el contacto es hombre (M) o mujer (F), se crea un campo nuevo que se llamará Embarazo y solo aplica para las personas de sexo femenino, el campo referencia para el campo Embarazo sería Sexo, y en valores referencia tendría el valor de la lista del sexo que sería F. Lo que quiere decir que cada vez que en el campo Sexo se seleccione la opción F (Femenino) aparecerá el campo Embarazo en el formulario.
Eventos de los Campos
Un evento es una acción que se va a realizar posterior al diligenciamiento del campo, los eventos que se pueden realizar son los siguientes:
- OnClick Acción al realizar click en el campo.
- OnFocus Acción cuando un campo recibe el enfoque, ya sea por medio del mouse o por navegación tabulada.
- OnKeypress Acción al presionar una tecla y luego soltada mientras el campo tiene el enfoque.
- OnChange Acción cuando el campo pierde el enfoque y su valor ha sido modificado desde que recibió el enfoque por última vez.
- Onkeydown Acción cuando una tecla es presionada (independientemente de que sea soltada o no) mientras el campo tiene el enfoque.
- Onkeyup Acción cuando una tecla es soltada mientras el campo tiene el enfoque.
- OnBlur Acción cuando el elemento pierde el enfoque bien sea a través del mouse o por navegación tabulada.
Dar clic en el botón nuevo para crear un evento en el campo:
El sistema despliega el formulario de la creación del evento:
Las dependencias de los campos son configuraciones especializadas que le otorgan atributos de valor padre y valor hijo que relaciona la información de dos campos y permite crear listas dependientes, un ejemplo claro puede ser los campos de País – Ciudad donde uno está dependiendo de la información seleccionada en la lista del campo.
El sistema tiene dos clases de dependencias:
- Dependencias Propias
Esta relación se genera desde la base de datos donde se asocia la dependencia a una entidad donde se enlaza la entidad con otra entidad o con una lista:
Ejemplo:
Actualmente el sistema ya tiene dependencias propias como la relación que tiene los objetos Cuenta – Contacto donde los contactos están relacionados específicamente a una cuenta y la relación es la dependencia que existe en el número de identificación de la cuenta (NIT, RUC).
- Dependencias Impropias
Corresponde a las dependencias que no existen en la base de datos y es la relación que se genera entre una lista y otra.
Ejemplo:
Actualmente en el sistema existe por defecto las listas País – Ciudad y tiene la dependencia relacionando las ciudades con su país original asociando así que cada vez que se ingrese a un país solo se pueda visualizar las ciudades que le corresponden.
La creación de una nueva dependencia se realiza desde el panel de control en la opción de Dependencias:
El sistema muestra las dependencias actuales, para la creación de una dependencia nueva debe crear previamente las listas y sus valores, seleccione nuevo y el sistema despliega el formulario de la creación de dependencias:
Para crear las dependencias se debe tener los valores padre e hijo.
- Valores Padre: Son los valores de los cuales dependerán los hijos puede ser un objeto o una lista.
- Valores Hijo: Son los valores de un objeto o una lista, que se permitirá seleccionar dependiendo del valor del padre.
El Formulario de creación de dependencia solicita los datos básicos, los objetos padre e hijos solamente se puede escoger uno por nivel.
Al crear la dependencia el sistema despliega el detalle y muestra los valores que se le creen a la dependencia:
La relación entre las dos listas se genera primero creando los valores padre con la referencia de su valor hijo:
Se tienen dos campos:
- Campo 1: País
- Campo 2: Ciudad
A cada campo se le crea una lista
- Lista 1 con el nombre de los países
- Lista 2 con el nombre de las ciudades de cada país
Para este caso el campo 2 es dependiente del campo 1 ya que según el país que se seleccione en el campo 1, se despliega la lista de valores correspondiente en el campo 2
Ejemplo:
- Campo 1 Colombia
- Valores del campo 2: Bogotá, Cali y Medellín
- Los valores de la lista 2 son dependientes de los valores de la lista 1.
Para ir asignando los valores hijos al campo padre se ingresa al valor padre y se selecciona nuevo para ingresar los valores hijos:
Los campos tienen propiedades avanzadas que se les puede asignar con filtros, formulas o condiciones que se dan al sistema las cuales tendrá en cuenta al momento de crear una transacción en ese campo.
En el caso de un campo lista cuando se le crea una condición a la lista donde se espera que el campo restrinja un dato existente en la lista se le asigna la orden de omitir la información que se le indique, para estos casos las condiciones se dan a través de una sentencia.
Ejemplo:
Tenemos una lista en el campo color con tres valores: verde, amarillo y rojo, queremos que el campo omita el valor rojo ya que por el momento no hay existencia de ese color el vendedor no debe escoger ese color, se le pide al campo que cuando despliegue su información no muestre dentro de la lista el color rojo, se indicaría la sentencia de la siguiente manera: and + campo (color)+ condición (<>rojo)
Esta es una condición básica, pero si lo que se quiere es filtrar más datos de acuerdo a una información de un formulario como por ejemplo que muestre los productos existentes menos los productos registrados, entonces se debe crear una condición especial para capturar la información del formulario que traiga los datos que ya existan y sobre estos crear el filtro.