< Introducción


Planteamiento inicial

Lo primero que tenemos que hacer es plantearnos dónde vamos a guardar la distinta información; ¿es conveniente crear una tabla nueva personalizada o crear campos en los objetos configurables? ¿Qué formato deberíamos usar para crear tablas y campos?


Creación de tablas personalizadas

Para nuestro ejemplo necesitaremos, principalmente, tres tablas nuevas; una donde guardaremos los grupos de firmas como tal, otra donde asignaremos los empleados a dichos grupos y una última para guardar el histórico de las firmas de las líneas del pedido.


IMPORTANTE: La creación de las tablas es un proceso estándar de SQL por lo que no nos detendremos mucho en este punto, únicamente recalcar que debe seguir la guía de estilo que puede verse en el siguiente artículo

En los ejemplo adjuntos podemos observar que usamos el procedimiento zPermisos. Es necesario ejecutar dicho procedimiento para que el ERP pueda acceder a los objetos que creemos de forma externa.


Pers_Grupos_Firmas

En esta tabla almacenaremos el id del grupo, que será numérico, y una breve descripción del mismo. Definiremos como clave primaria el id. Ejemplo completo en script adjunto "Creación tabla Pers_Grupos_Firmas".


NOTA: Podríamos crear para la asignación de un empleado a un grupo un campo configurable en la tabla de Empleados_Datos pero esto nos limitaría a un único grupo por usuario por lo que consideramos que es mejor la creación de una tabla intermedia.


Pers_Grupos_Firmas_Empleados

Aquí almacenaremos los grupos y su asignación a los empleados. Tendrá el id del grupo y el id del empleado autorizado a firmar. Añadiremos una clave externa para garantizar que no guardamos un IdEmpleado que no exista en la tabla correspondiente Empleados_Datos y otra para IdGrupoFirma. Ambas claves las crearemos con eliminado y actualización en cascada. Ejemplo completo en script adjunto "Creación tabla Pers_Grupos_Firmas_Empleados".


Pers_Hco_EstadosFirmasLineas

Necesitaremos también una tabla que almacenará los distintos estados de las líneas del pedido y el empleado que ha efectuado el cambio para poder mostrarlo en la pantalla del pedido, en la pestaña que crearemos de "Histórico de firmas". Contendrá, referenciados mediante clave externa, el IdPedido y el IdLinea de la tabla Pedidos_Cli_Lineas, la fecha de la modificación, el empleado que ha validado, también referenciado en la tabla Empleados_Datos, y un identificador único que nos servirá de índice. Ejemplo completo en script adjunto "Creación tabla "Pers_Hco_EstadosFirmasLineas".



Creación de campos configurables

Necesitaremos crear los campos necesarios para almacenar la validación del empleado en una determinada línea de pedido y la validación final que bloqueará su cabecera. También necesitaremos la fecha en que se realiza dicha aprobación y la fecha en que se desbloquea, en cualquiera de sus procesos. Las tablas que tendremos que modificar son las correspondientes a la cabecera y líneas del pedido.


Para ello usaremos la opción correspondiente de la aplicación Admon siguiendo los pasos indicados en el siguiente artículo.


Un breve resumen:


- Opción "Campos configurables" del ERP.

Objeto Pedido. Creamos sus campos configurables, con "Pers_" delante:

- Pers_Validado, tipo "Si/No".

- Pers_FechaValidacion, tipo "Fecha".

- Pers_IdGrupoFirma, tipo "Long"



Al seleccionar el objeto podemos ver como el sistema nos da la tabla asignada a los campos configurables del objeto seleccionado.


NOTA: Aunque no es relevante para este ejercicio cabe destacar que la tabla que asigna el sistema a los campos configurables corresponde a la propiedad "Tabla campos configurables" accesible mediante la opción "Objetos" del Admon. Se recomienda, salvo que sea estrictamente necesario, no modificar este valor en los objetos estándar.


Objeto Linea Pedido. Creamos sus campos configurables, con "Pers_" delante:

- Pers_Validado_Linea, tipo "Si/No".

- Pers_FechaValidacion_Linea, tipo "Fecha".

- Pers_IdEmpleado_Validacion, tipo "Long".



Creación de vistas personalizadas

Tendremos que crear nuevas vistas que usaremos posteriormente para añadir los campos personalizados que hemos creado y que el sistema recuperará de forma automática.

Para ello necesitaremos acceder a las colecciones para comprobar qué vista tienen actualmente asignada, aunque la modificación de las mismas la realizaremos en el siguiente punto.

Necesitamos crear una vista personalizada para la colección Pedidos y Lineas Pedido.


- Opción "Objetos" del ERP.

Accedemos a la colección Pedidos. La propiedad que nos interesa es "Sql".

 

Para garantizar que nuestra modificación no afecta ningún proceso estándar es muy importante respetar todos los campos de la vista original. Para ello simplemente crearemos una nueva vista que contenga los campos nuevos que hemos creado y todos los campos nuevos que hemos añadido, que en este caso son dos. Ejemplo completo en script adjunto "Creación vista Pers_VDLG_Pedidos_Cli_Cabecera_Col".


Repetimos el proceso para la colección Lineas Pedido. Ejemplo completo en script adjunto "Creación vista Pers_VDLG_OBJETOS_Pedidos_Cli_Lineas".


Por otra parte, como queremos mostrar la información relativa al histórico con el nombre del empleado y un estado que no sea 0 ó 1 crearemos una vista con tal fin, relacionando la tabla Pers_Hco_EstadosFirmasLineas con Empleados_Datos y añadiendo estados descriptivos. Ejemplo completo en script adjunto "Creación vista Pers_vHco_EstadosFirmasLineas".


Modificación de objetos del ERP

Una vez añadidos los campos configurables en los objetos que deseamos necesitamos modificar determinadas propiedades de los mismos para recuperar la nueva información. Estas nos servirán para automatizar la inserción o modificación de dichos campos en los formularios estándar, lo cual nos facilitará enormemente la inserción de los mismos para nuestros fines.


NOTA: Para entender la diferencia entre Objetos y Colecciones podemos consultar el siguiente artículo.


Para ello usaremos la opción correspondiente de la aplicación Admon,  siguiendo los pasos indicados en el siguiente artículo.


Otro breve resumen visual:


Colección Pedidos. Propiedad "SQL". Asignamos la vista personalizada que hemos creado "Pers_VDLG_Pedidos_Cli_Cabecera_Col" en la propiedad Sql, sustituyendo el existente. Como también modificaremos sus propiedades por grid asignamos el mismo valor a la propiedad Edición en grid por objetos. Guardamos el objeto. Salimos del mismo y volvemos a entrar para que se recarguen sus propiedades.


En la pestaña Propiedades del objeto añadimos los campos que hemos creado, que tras la asignación de la nueva vista nos aparecerá en el combo del campo Propiedad. Le damos una descripción y dejamos Selección en blanco.



Colección Lineas Pedido. Repetimos los mismos pasos que en la colección de Pedidos, y añadimos en Selección una Sql para recuperar el empleado, de igual forma que podemos ver en la propiedad IdEmpleado de la misma colección.



En los siguientes apartados veremos el porqué de estos cambios aplicados en los objetos y colecciones.


Modificación de pantallas y grids para añadir los campos nuevos >