# Personalización del sistema La personalización de un sistema V12 se refiere al conjunto de configuraciones, adaptaciones y extensiones que deben realizarse para que cumpla con los requisitos específicos de una organización. Dado que V12 es un sistema de código abierto, el nivel de personalización al que se puede aspirar solo está limitado por las capacidades e imaginación del desarrollador, sin embargo en la práctica resulta más conveniente; por razones de costos y esfuerzos de mantenimiento; adaptar los paquetes existentes sin modificar su código fuente original preservando la compatibilidad con versiones futuras, trasladando así el costo al desarrollador original. ## Configuración Las opciones de configuración parten de la selección de paquetes a instalar y sus parámetros de operación. Los parámetros de operación de los distintos paquetes están implementados desde dentro de los mismos, es decir se han tomado esas previsiones y se ajustan al mecanismo de configuraciones de V12 que son: * Variables de configuración global (Pueden administrarse con la [aplicación disponible](https://docs.induxsoft.net/es/productos/v12/users/dbext/globalvar/) desde la acción **XB40**) * Privilegios. Son los permisos generales o específicos para asignar a grupos o usuarios en particular a través de las aplicaciones disponibles para tal efecto en el panel de control * Parámetros del host (que se encuentran en archivos JSON en la carpeta ```_config```) ## Adaptación Las adaptaciones (o adecuaciones) a las aplicaciones se realizan mediante la programación de componentes que reemplazan a los componentes originales o cambian su funcionalidad sin que se deba modificar el código fuente de estos. * Reemplazo de vistas. Consiste en realizar una copia de una vista existente y adaptarla según los requerimientos, ya sea quitando elementos, estableciendo valores o agregando otros, pero manteniendo la compatibilidad con el modelo de la aplicación de la que se trate. * Inyección de código cliente. Consiste en incluir scripts (javascript) en determinadas vistas, que se ejecutan en el dispositivo cliente (navegador) que rellenan valores automáticamente, bloquean u ocultan controles o realizan ajustes menores. ## Extensión Es el desarrollo de un nuevo paquete con sus respectivos programas para satisfacer requisitos puntuales de la organización que se integra de forma transparente al entorno. Para esto se cuenta con el marco de V12 y Devkron, incluyendo sus capacidades de interoperabilidad. Usualmente puede ser necesario crear un paquete que incorpore: * Controladores de eventos del backend para realizar acciones encadenadas que constituyan el flujo de procesos normal de la organización * Aplicaciones a la medida para realizar procesos puntuales apoyados en los definidos de manera predeterminada * Informes o cuadros de indicadores que ofrezcan información relevante a las personas adecuadas * Tareas que realicen procesos del lado del servidor para cumplir con los requisitos de la organización