REQUERIMIENTO: GESTIÓN DE DATOS MAESTROS – CONTABILIDAD: GRUPO DE ELEMENTO DE GASTOS ASESORES Y CONSULTORES REQUERIMIENTO: GESTIÓN DE DATOS MAESTROS – CONTABILIDAD Nombre del documento Requerimiento para el proceso de Gestión de Datos Maestros – Contabilidad: Grupo de Elemento de Gastos V1.0 . 07-02-2020 Product Owner – Henry Gutiérrez Saona Henry Gutiérrez Saona Versión Fecha Autores Gerente de Área HISTORIA DE APROBACIONES APROBACIONES Nombre Henry Gutiérrez Saona Titulo Fecha 07-02-2020 CIO Firma REVISORES Nombre Titulo Fecha Henry Gutiérrez Saona quipo EquipoTécnico Técnico Product Owner Sixto Bocanegra Coronel Planificación Sección Revisada 07.01.2020 Funcional 05.01.2020 No Funcional (Técnica) Diseño y Experiencia de usuario HISTORIA DE REVISIONES Versión Fecha de Revisión V.1.0 25.01. 2020 Etapa Autor Requerimiento Funcional. Revisión: DBA, Coordinador de Desarrollo, Scrum Master, Líder Back End, Líder Front End LISTA DE DISTRIBUCIÓN Nombre Equipo de Desarrollo Fecha 07.02. 2020 Versión V1.0 Henry Gutiérrez Saona I. MÓDULO DE CONTABILIDAD: DATOS MAESTROS 1.1. MAESTRO DE GRUPO DE ELEMENTO DE GASTOS Consideraciones comunes: o Cada ingreso a una opción o ejecución de alguna acción autorizada se debe registrar en la tabla selogfuncionacceso, siempre que se indique en el parámetro correspondiente a la tabla. El parámetro tiene el formato LOG<NOMBRETABLA>. o Con relación a autorizaciones a conceptos de negocio (objetos de negocio), es necesario considerar que la compañía puede definir manejar seguridad por diversos objetos de negocio, en general esto debe ser indicado por parámetros con prefijo SEG<XXX> que se usarán para definir si se aplica seguridad por algún objeto de negocio, donde en valor texto se almacenará el nombre del objeto de negocio que se va a validar, ejemplo: CTB: La compañía usa seguridad en el objeto CTB: Cuenta Contable N : La compañía No usa seguridad en el objeto Cuenta Contable. Esto debe considerarse cada vez que se liste o se consulte los registros de los objetos de negocio. El procedimiento por seguir, para verificar si existe seguridad sobre algún objeto de negocio (la verificación debe realizarse siempre antes de mostrar la información al usuario), de manera general debe ser: a. Verificar si en la tabla seobjeto existe el objeto (tabla de Base de Datos), seobjeto.nombretabla, del que se requiere conocer si hay manejo de seguridad para sus conceptos (registros de la tabla): Si el objeto existe, se toma el campo <objeto> (seobjeto.objeto) y se pasa al paso siguiente. Si el objeto no existe entonces se asume que no se maneja seguridad por ese objeto. b. Verificar si existe el parámetro con código SEG<objeto>: Si el parámetro existe entonces: o Se verifica el estado y el valor del parámetro: (mgparametro.estado, mgparametrosxcompania.estado, parametrosxcompania.texto): Si el estado es activo entonces: Si el valor del parámetro es igual al nombre del objeto que se obtuvo en el paso anterior entonces se continúa con el paso siguiente (c). Si el valor del parámetro es “N” entonces se asume que no se maneja seguridad por ese objeto. Si el estado es inactivo se muestra el mensaje “El parámetro SEG<objeto> se encuentra inactivo. Comuníquese con el administrador del sistema para activar el parámetro” Si el parámetro no existe se asume que no se maneja seguridad por ese objeto. c. Se verifica el estado del registro correspondiente del objeto (seobjeto.objeto): o o o Si se encuentra en estado activo entonces, sí hay manejo de seguridad por ese objeto y todos los componentes donde figure o se referencie a ese objeto debe verificarse que el usuario tenga autorización explícita sobre los conceptos (registros) de ese objeto (tabla), excepto si el usuario tiene asignado el rol o función con código SUP<objeto> Si el estado es inactivo entonces se muestra el mensaje “Se ha definido gestionar la seguridad por <seobjeto.descripcion> pero el objeto se encuentra inactivo. Comuníquese con el Administrador del Sistema para una de las siguientes posibles acciones: 1. Activar el registro del objeto ó 2. Deshabilitar la gestión de seguridad por <seobjeto.descripcion>” A la par con la definición de seguridad sobre un objeto de negocio también existe (se define) un rol (función de tipo atributo) de “SUPERVISOR” al que no afecta la restricción de seguridad sobre el objeto y que equivale a tener autorizados todos los conceptos (registros) del objeto de negocio. El código de este tipo de función o rol siempre tiene el prefijo SUP, es decir el código tiene el formato SUP<objeto> La primera acción al cargar un formulario debe ser la verificación de la existencia y estado activo de los diversos parámetros relacionados a ese formulario que sean obligatorios, excluyendo a los parámetros con prefijo SEG. Se consideran obligatorios cuando: o El parámetro es del Sistema, es decir está definido como “Restringido” o El parámetro está relacionado o contiene nombres de Tablas de Usuario relacionados con campos obligatorios para el formulario. En cualquier caso, se deben mostrar los mensajes correspondientes: “El parámetro <código> es requerido y no existe o está inactivo. Comuníquese con el Administrador del Sistema.” Y el último mensaje debe ser “El formulario se cerrará” y a continuación el formulario se cierra. Si todos los parámetros relacionados con el formulario no son obligatorios, entonces también se muestran los mensajes correspondientes por cada parámetro faltante o inactivo, y el último mensaje debe ser “Es posible que en algunas listas no se muestran datos” y a continuación se muestra el formulario. Además, se debe considerar que aún si el parámetro pudiere no estar definido para la compañía actual (de búsqueda), corresponde verificar si se ha establecido un valor preferido (por defecto) para el parámetro (mgparametrosxcompania.preferidoflag=true), si existe un valor por defecto para el parámetro, ya no se considera que el parámetro no existe por lo que el mensaje ya no es como lo que se indica anteriormente y este hecho debe informarse al usuario indicándole que se usarán los valores por defecto con el mensaje: “No se ha definido el parámetro <código> para la compañía <código1>-<descripción1>. Se usará el valor por defecto definido en la compañía <código2>-<descripcion2>. Si necesita definir un valor específico para la compañía <codigo1>-<descripcion1>, comuníquese con el administrador del sistema” Los caracteres permitidos para los códigos, descripción y/o descripción en inglés son los definidos en el estándar de Back End y de Front End, salvo que expresamente se indique lo contrario. o o o o o o o o o En todas las interfaces (formularios), en las cajas de texto se debe identificar aquellas obligatorias con un asterisco (*) y en todas se debe indicar explícitamente la cantidad de caracteres que se pueden ingresar en ella. Todos los datos propios del negocio (de la empresa) que estén definidos en tablas de usuario, se referencian a través de parámetros fijos en los que se indicará el nombre de la tabla (de usuario). En general, estos parámetros tendrán el prefijo TDU como parte de su nombre (código). En el caso específico de los códigos fiscales el prefijo será TDUCOFI En general, las consultas a los registros de una Tabla de Usuario deben realizarse, según sea el caso: o Si es una Tabla Externa, es decir si está relacionado a través de un parámetro que contiene el nombre de la tabla, entonces los registros que se muestran (mgtablausuariodetalle) deben corresponder a la tabla de usuario cuyo Valor Código sea igual al valor (texto) del parámetro (mgtablausuario.codigo=<nombre_parametro>.texto). Este es el caso de tablas de usuario que guardan información externa: caso de códigos ISO, anexos de SUNAT, etc. o Si es una Tabla Interna, es decir si la tabla de usuario está relacionada (para usarse) con alguna tabla del sistema (que existe en el esquema de Base de Datos), entonces los registros que se muestran (mgtablausuariodetalle) deben corresponder a la tabla usuario cuyo Nombre Tabla sea igual a una tabla de la base de datos y además cuyo campo Nombre Columna sea igual a una columna de la tabla indicada en Nombre Tabla. Este es el caso de tablas de usuario que guardan información interna, es decir valores que se consideran fijos y en su mayoría son propios del sistema. De ser factible, debiera identificarse los controles (componentes) que estén asociados tanto a tablas internas como a tablas externas, para considerar el método de consulta adecuado según lo descrito. Los valores (registros) que se muestren en los listados de selección (combo box) deben ser siempre los que tienen estado activo (activo=true). En la vista de modificación si el valor actual del registro ya está inactivo entonces además de los valores activos se debe incluir el valor actual del registro. En los listados, cuando se muestren registros con estado “Inactivo” éstos deben mostrarse en color de fuente rojo. Cuando se defina seguridad en algún objeto, en la definición misma de los conceptos (registros del dato maestro) se excluye la validación de seguridad. Para los filtros se debe mostrar todos los registros en un combo, pero para el mantenimiento sólo registros activos. En el caso de una acción de modificar un registro que haga referencia a un registro (clave externa) de otra tabla cuyo estado actual sea Inactivo, sólo en este caso, además de los registros activos se debe adicionar este registro Inactivo. En todo listado (combo, tabla, etc.) de una tabla que tenga el indicador es común, en el caso de una compañía que no sea la principal (“000”) se deben mostrar también los registros de la compañía “000” que tengan el indicador “Es común”. En los Filtros no se debe implementar la dependencia entre campos, para el caso de mostrar, solamente en el caso de ocultar se debe reflejar la dependencia. o Las acciones de Registro (Inserción) y Modificar de un registro en cualquier tabla (maestra o transaccional), los valores de ese registro antes y después de la acción ejecutada se guardan en tabla semaestrohistorial, siempre que se indique en el parámetro correspondiente a la tabla. El parámetro tiene el formato HISTORIAL<NOMBRETABLA>. 1.1.1. Tablas involucradas: ctelementogastogrupo 1.1.2. Restricciones: El acceso a esta función (opción) es para el usuario o posición que tiene autorizada ésta opción, además, va a poder ejecutar mantenimiento a este maestro: Nuevo, Modificar, Ver, Ampliar, Copiar, Exportar, Importar, si explícitamente tiene asignado estas autorizaciones. El indicador “Es común” sólo puede aplicarse a la compañía “000”. 1.1.3. Parámetros relacionados: GRUELEGASCODGEN: Indica el Método que utiliza la compañía para generar el código del Grupo de Elemento de Gastos. Se define una vez, en la compañía “000”. o MAC = Manual por Compañía: Toma el Código digitado por el usuario, el que debe ser único por compañía. o SQC = Correlativo Simple autogenerado por Compañía. o MAU = Manual único para todas las compañías: Toma el Código digitado por el usuario, el que debe ser único por compañía. o SQU = Correlativo Simple autogenerado único para todas las compañías. GRUELEGASCODLON: Indica la longitud o cantidad de caracteres a usar para el código del Grupo de Elemento de Gastos. Se define una vez, en la compañía “000”. El límite máximo es 3. HISTORIALGRUELEGAS: Indica si se lleva el historial de cambios en el maestro de Grupo de Elementos de Gasto. LOGGRUELEGAS: Indica si se lleva el historial de accesos a la interfaz del maestro de Grupos de Elemento de Gastos, además de las acciones que se realicen en ella. 1.1.4. Carga de Formulario Grupos de Elemento de Gastos Al cargar el formulario, se presenta una vista de los Grupos de Elemento de Gastos, además, de los botones para acciones disponibles, de acuerdo con las autorizaciones otorgadas al usuario o posición (indicadas en la sección 1.1.2 Restricciones): Nuevo, Exportar, Filtrar, Listar Todo, Importar. Además de Modificar, Ampliar, Copiar, Ver Historial (si HISTORIALGRUELEGAS=”S”) y Ver, acciones que están disponibles por cada registro del listado. El listado debe mostrar la siguiente información (columnas): Compañía, Código, Descripción [Local | Inglés], Es Común (Check), Estado. El listado debe estar ordenado por Compañía, Código. Los registros que se muestran en el listado corresponden a los que cumplen los criterios o filtros que se cargan por defecto; es decir: Compañía, Comunes (incluir comunes), Estado y sólo los conceptos (compañías) a los que el usuario tenga autorización (en caso corresponda). A los registros que le correspondan a la compañía seleccionada, se deben agregar los registros comunes (aún si el usuario pudiere no tener acceso a la compañía “000” pero en modo de sólo visualización, ya que para tratar o modificar el registro, sí es necesario tener explícitamente la autorización a la compañía.) 1.1.5. Acciones A) Listar según filtros Para realizar una búsqueda, se seleccionan los filtros correspondientes. Los filtros de búsqueda son: Compañía [Combo box - Múltiple]: Cargar en el combo box la lista de compañías (Tipo Compañía P – Principal) que tengan una licencia activa (mgempresa.estado=1) y dentro del período de uso otorgado (max(mgaplicacionxempresa.fechafin) > fecha actual, y estado sea 1), y sólo a las que el usuario tenga autorización. Si el usuario tiene definida una compañía preferida, se mostrará como seleccionada esa compañía. Si el usuario no tiene definido Compañía preferida se muestra la compañía en la que ha iniciado sesión. Para el registro seleccionado se muestra el nombre de la Compañía. Al desplegar la lista de compañías se muestra el código y el nombre de la compañía. Si se selecciona la compañía “000” entonces se muestra en el filtro Comunes “Es común” Criterio de Búsqueda [Combo box]: La lista de valores es fija y son: Código, Descripción Local, Descripción Inglés. Por defecto, se debe mostrar el valor <Seleccione un criterio de búsqueda>. Cuando se selecciona un criterio de búsqueda se debe digitar el valor de búsqueda en una Caja de Texto. Comunes o Es Común [Check box]: Se muestran sólo los registros (grupos de elemento de gasto) que cumplen la condición escomunflag=true. Por defecto se muestra desmarcado. Sólo se muestra cuando se selecciona la compañía “000”. o Incluir comunes [Check box]: Indica que se incluyen a la compañía seleccionada, los registros que tienen la condición escomúnflag=true (en la compañía “000”, siempre que el usuario tenga autorización a esa compañía). Por defecto se muestra marcado. Estado [Radio Button]: Los valores son: Activo, Inactivo. Por defecto se muestra el valor “Activo”. Luego se hace click en el botón “Aceptar” y el listado se actualiza de acuerdo a las condiciones definidas en los filtros. Los filtros por defecto son: Compañía y Estado. B) Agregar nuevo registro Al hacer click en el botón “Nuevo” se muestra la interfaz para el ingreso o alta de un nuevo registro de “Grupo de Elemento de Gastos”. Los datos que se deben ingresar son: Compañía [Combo box][Obligatorio]: Cargar en el combo box la lista de compañías (Tipo Compañía P – Principal) que tengan una licencia activa (mgempresa.estado=1) y dentro del período de uso otorgado (max(mgaplicacionxempresa.fechafin) >fecha actual, y estado sea 1), y sólo a las que el usuario tenga autorización. Si el usuario tiene definida una compañía preferida, se mostrará como seleccionada esa compañía. Si el usuario no tiene definido Compañía preferida se muestra la compañía en la que ha iniciado sesión. Para el registro seleccionado se muestra el nombre de la Compañía. Al desplegar la lista de compañías se muestra el código y el nombre de la compañía. Validación: Si se selecciona la compañía “000” entonces se muestra la opción “Es común” Es Común [Check Box]: Indica que el grupo de elementos de gasto se extiende y tiene el mismo comportamiento (valores de sus atributos) para todas las compañías. Validación: Sólo se muestra cuando se selecciona la compañía “000”. Código [Caja de texto][Obligatorio][Numérico hasta GURELEGASCODLON caracteres]: Corresponde al código del grupo de elementos de gasto. Validación: o Si GRUELEGASCODGEN=”SQU” entonces la caja de texto es no editable y el sistema genera un código único, para todas las compañías, al grabar el registro, el mismo que debe informarse al usuario luego de ese evento, con el mensaje: “Se ha generado el código del grupo de elemento de gastos <codigo>”. El código debe generarse y grabarse completando hasta los GRUELEGASCODLON caracteres, por ejemplo, si GRUELEGASCODLON se define en 3 entonces el primer código será “001”. o Si GRUELEGASCODGEN=”SQC” entonces la caja de texto es no editable y el sistema genera un código único para la compañía seleccionada, al grabar el registro, el mismo que debe informarse al usuario luego de ese evento, con el mensaje: “Se ha generado el código del grupo de elemento de gastos <codigo> en la compañía <código>-<descripcion>”. El código debe generarse y grabarse completando hasta los GRUELEGASCODLON caracteres, por ejemplo, si GRUELEGASCODLON se define en 3 entonces el primer código será “001”. o Si GRUELEGASCODGEN=”MAU” entonces la caja de texto es editable y al hacer Tab, Enter o perder el foco, los caracteres deben completarse con ceros hasta GRUELEGASCODLON, en caso corresponda, (Ejemplo, si el usuario ingresa 11 y GRUELEGASCODLON es 3, entonces el código deberá completarse a ‘011’), además se debe validar que la secuencia de caracteres digitada sea única por todas las compañías, es decir que no haya sido previamente registrada. En caso el código ya exista debe mostrar el mensaje “El código digitado ya existe. Debe ingresar un código diferente.” y debe borrar la caja de texto y ubicar nuevamente el foco en Código. o Si GRUELEGASCODGEN=”MAC” entonces la caja de texto es editable y al hacer Tab, Enter o perder el foco, los caracteres deben completarse con ceros hasta GRUELEGASCODLON, en caso corresponda, (Ejemplo, si el usuario ingresa 11 y GRUELEGASCODLON es 3, entonces el código deberá completarse a ‘011’), además se debe validar que la secuencia de caracteres digitada sea única para la compañía, es decir que no haya sido previamente registrada. En caso el código ya exista para la compañía seleccionada debe mostrar el mensaje “El código digitado ya existe en la compañía <código>-<descripción>. Debe ingresar un código diferente.” y debe borrar la caja de texto y ubicar nuevamente el foco en Código. Descripción Local [Caja de texto][Obligatorio][Alfanumérico y especiales hasta 50 caracteres]: Corresponde al nombre o la descripción del grupo de elementos de gasto. Los caracteres alfabéticos se muestran siempre en mayúscula. Se permiten espacios en blanco. Descripción Inglés [Caja de texto][Opcional][Alfanumérico y especiales hasta 50 caracteres]: Corresponde al nombre o descripción en inglés del grupo de elementos de gasto. Los caracteres alfabéticos se muestran siempre en mayúsculas. Se permiten espacios en blanco. Estado [Radio Button]: Se puede seleccionar “Activo” o “Inactivo” para el registro correspondiente. Por defecto se muestra en “Activo”. Una vez ingresada toda la información necesaria, para grabar la información, se hace click en el botón Aceptar. Además de la información ingresada, también se guardan los siguientes datos de auditoría: Alta Aplicación: Aplicación desde donde se hizo el ingreso del registro. Alta Usuario: Usuario que hizo el ingreso del registro Alta Fecha: Fecha y hora que se hizo el registro. Última Fecha de modificación: Fecha de la última modificación del registro. En un nuevo registro es igual a Alta Fecha. Ultimo Usuario de modificación: Usuario que hizo la última modificación del registro. En un nuevo registro es igual a Alta Usuario. C) Ampliar un Grupo de Elemento de Gastos Sólo está disponible si GRUELEGASCODGEN es ‘MAC’ siempre que el código del grupo a ampliar no haya sido usado en la compañía destino. Esta opción se usa para ampliar el ámbito o aplicación de un Grupo de Elemento de Gastos de una compañía a otra, pero que podría tener un comportamiento (valores de sus atributos) diferente. Sólo se pueden ampliar los grupos que no tengan la condición “Es común” (escomunflag=false). Para ampliar un grupo de elemento de gasto primero se debe ubicar (o filtrar) el grupo a partir de la cual se va a ampliar (generar el nuevo registro). Al hacer click en el botón “Ampliar” se muestra la interfaz de Nuevo pero llena con la información del registro seleccionado, excepto los campos: Compañía, donde se mostrará <Seleccione una Compañía> (en la lista no debe mostrarse la compañía desde la que se está ampliando). El campo: “Código” debe ser no editable, todos los demás campos pueden ser modificados. En la interfaz se deben replicar todas las validaciones que para un Nuevo ingreso. Una vez ingresada toda la información necesaria, para grabar la información se hace click en el botón Aceptar. La inserción debe guardar además de la información ingresada, los siguientes datos de auditoría: Alta Aplicación: Aplicación desde donde se hizo el ingreso del registro. Alta Usuario: Usuario que hizo el ingreso del registro Alta Fecha: Fecha y hora que se hizo el registro. Última Fecha de modificación: Fecha de la última modificación del registro. En un nuevo registro es igual a Alta Fecha. Ultimo Usuario de modificación: Usuario que hizo la última modificación del registro. En un nuevo registro es igual a Alta Usuario. D) Copiar un Grupo de Elemento de Gastos La Opción de Copiar Grupo de Elemento de Gastos, en la práctica es lo mismo que Nuevo. Sin embargo, para Copiar un Grupo de Elemento de Gastos, primero se debe ubicar (o filtrar) el grupo a partir del cual se va a copiar o generar el nuevo registro. Esta opción se usa para crear un grupo de elemento de gasto nuevo a partir de otro. Al hacer click en el botón “Copiar” se muestra la interfaz de Nuevo pero llena con la información del registro seleccionado, excepto el campo Código (no se podrá usar el código del registro del que se está copiando). Se deben considerar todas las validaciones que en Nuevo (por ejemplo, la relacionada a “Es común” y las consideraciones con respecto a la generación del código del grupo). Todos los demás campos pueden ser modificados. En la interfaz se deben replicar todas las validaciones que para un Nuevo ingreso. Una vez ingresada toda la información necesaria, para grabar la información se hace click en el botón Aceptar. La inserción debe guardar además de la información ingresada, los siguientes datos de auditoría: Alta Aplicación: Aplicación desde donde se hizo el ingreso del registro. Alta Usuario: Usuario que hizo el ingreso del registro Alta Fecha: Fecha y hora que se hizo el registro. Última Fecha de modificación: Fecha de la última modificación del registro. En un nuevo registro es igual a Alta Fecha. Ultimo Usuario de modificación: Usuario que hizo la última modificación del registro. En un nuevo registro es igual a Alta Usuario. E) Modificar un registro Para modificar un registro, primero se ubica el registro que se requiere actualizar y hacer click en el botón “Modificar”. Esta acción muestra la misma interfaz que para el Ingreso de un Nuevo Registro, pero con los datos cargados del registro del Grupo de Elemento de Gastos seleccionado. Los datos que se pueden modificar son: Compañía: Solo de visualización. No se puede modificar este dato. Es Común [Check Box]: Por defecto se muestra el valor actual del registro. Validación: Siempre es editable cuando está marcado (disponible para cambiar a desmarcado, es decir cambiar Común a No Común). Cuando no está marcado, sólo es editable cuando la compañía sea “000” y además no tenga registros asociados a ninguna otra compañía. Considerar las mismas restricciones y validaciones indicadas en la inserción de un nuevo registro. Código: Sólo de visualización. No se puede modificar este dato. Descripción Local [Caja de texto][Obligatorio][Alfanumérico y especiales hasta 50 caracteres]: Es Editable. Por defecto se muestra el valor actual del registro. Considerar las mismas restricciones y validaciones indicadas en la inserción de un nuevo registro. Descripción Inglés [Caja de texto][Opcional][Alfanumérico y especiales hasta 50 caracteres]: Es Editable. Por defecto se muestra el valor actual del registro. Considerar las mismas restricciones y validaciones indicadas en la inserción de un nuevo registro. Estado [Radio Button]: Es Editable. Por defecto se muestra el valor actual del registro. Una vez ingresada toda la información necesaria, para actualizar la información se hace click en el botón Aceptar. La modificación debe actualizar además de la información ingresada, los siguientes datos de auditoría: Última Fecha de modificación: Fecha de la última modificación del registro. Ultimo Usuario de modificación: Usuario que hizo la última modificación del registro. F) Importar A esta opción se llega a través del botón Importar que abre una nueva ventana (Tab), y se usa para realizar una importación masiva de los Grupos de Elemento de Gastos de un archivo (texto, Excel, etc.), según esté definida en mgarchivoestructura y mgarchivotipo, donde también está definida la estructura del archivo (columnas, tamaño, opcionalidad, etc.). En esta opción existen los botones: Seleccionar Archivo, Procesar, Actualizar BD, Insertar Registro, Eliminar Registro, Cancelar. Para cargar el archivo de importación se hace click en el botón “Seleccionar archivo”, que abre una ventana de diálogo, en la que sólo se visualizan archivos del mismo formato definido (por ejemplo, *.txt, *.csv, *.xls, etc.) y cuando se ubica el archivo y se hace click en “Aceptar” se lee el archivo línea a línea validando que cada fila del archivo cumpla con la definición de la estructura en cada columna: tipo de dato, longitud, opcionalidad, cuando se detecte un registro que no cumple con la definición se debe mostrar el mensaje: “Error en la fila <Nro. Fila>, columna <nombre_columna>. Proceso terminado con errores.” y no se carga ningún registro en la lista. Si no existen errores, los registros se cargan en un Grid. Luego se hace click en el botón “Procesar” acción que desencadena la ejecución de todas las validaciones que se realizarían si se insertaran los registros individualmente; si el proceso de validación es satisfactorio entonces se habilita el botón “Actualizar BD”. Para insertar los registros en la Base Datos se hace click en el botón “Actualizar BD”, pudiendo el usuario previamente insertar o eliminar registro(s) del listado, para cada registro que se inserte se debe adicionar los datos de auditoría: Alta usuario, Alta fecha, Alta Aplicación, Ultimo Usuario y Ultima Fecha Modificación. G) Ver Historial Se muestra este botón si HISTORIALGRUELEGAS es “S”. Se muestra una lista cronológica con los campos (columnas) y valores (anterior y posterior) que fueron actualizados de este maestro. H) Ver un registro Para ver o consultar el detalle de un registro se debe ubicar el registro y hacer click en el botón de acción correspondiente, esta acción muestra la misma interfaz para Modificar un registro, con los datos del Grupo de Elemento de Gastos seleccionado. Esta interfaz es de sólo visualización, es decir ningún campo es editable. Además, se debe visualizar los datos de auditoría: Alta Aplicación Alta Usuario Alta Fecha Última Fecha de modificación Ultimo Usuario de modificación I) Exportar En esta opción se puede exportar el listado que se muestra en la sección 1.1.5-A, a un formato Excel.