Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > precarga y aprobacion de procesos

Estoy en el desarrollo de un software para el departamento de recursos humanos de una compañía.

Tengo una pantalla de personas donde se muestra lo siguiente:
1 La información general: Toda esta información se guarda en una misma tabla (personas) y corresponde a la información más relevante de la persona.
2 Referencias laborales: las referencias laborales entregadas por la persona al solicitar el ingreso a la compañía. Se guarda en una tabla (referencias) relacionada con la tabla principal (personas).
3 Familiares directos: familiares directos registrados para la persona, se guarda en una tabla (famiDire), relacionada con la tabla principal (personas). Por ejemplo: padre, madre, hijo, esposa, etc.
4 Información bancaria: las referencias bancarias entregadas por la persona al solicitar el ingreso. Se guarda en una tabla (infoBanc) y se relaciona con la tabla principal (personas).

Entre los requerimientos que tengo, me indicaron que por cada ingreso, modificación o eliminación de algún dato de alguna persona (sea en la tabla personas o en alguna de sus tablas relacionadas) debo generar un proceso de aprobación de dicha operación por un segundo usuario.

He pensado en agregar un campo a cada tabla, donde se guarde que tipo de operación se está realizando, luego guardar el registro ingresado, modificado o eliminado en una tabla espejo y luego al aprobarlo copiarlo a la tabla maestro, cambiarle el estatus a aprobado y eliminarlo de la tabla espejo.

Cuando sea una modificación el proceso cambia porque tendría que mostrar las diferencias entre el registro actual y el nuevo en la pantalla de aprobación. Por eso la idea de una tabla espejo.
¿Esto estaría bien?

Estoy un poco enredado así que si tienen alguna pregunta bienvenida sea.

Cualquier idea que puedan aportarme será de gran ayuda, le he preguntado por semanas a San Google y no doy con una solución óptima que me termine de convencer.

septiembre 24, 2015 | Unregistered Commenterelabno

Hola Elabno

Se me ocurre lo siguiente:

1) En cada tabla define como llave primaria (pk) que sea un secuencial numerico y un campo Situacion varchar(1) donde sea E: En proceso; P: Procesado.
2) Genera una tabla Evaluacion que tenga la siguiente estructura.
id_evaluacion int
id_registro int
tipo_operacion varchar(1) // puede ser N: Nuevo; M:Modificacion; E:Eliminacion, por
defecto que tenga el valor N
situacion varchar(1) // Puede ser E: En Espera; A:Aprobado; D:Desaprobado, por
defecto debe tener el valor E

Cada vez que hagas una operacion, pues inserta un registro en la tabla Evaluacion, luego los registro se muestra en la bandeja de entrada del 2do usuario para que proceda a realizar la evaluacion.
Para el caso de modificacion puedes agregar campos axuliares en la misma tabla y cada vez que apruebe el campo pues los datos de los campos auxilares reemplaza a los campos originales y se dejan vacios.

Espero haberte ayudado, cualquier cosa no dudes en escribirme a oscardelphi@gmail.com

Saludos cordiales,

Maverick

septiembre 26, 2015 | Unregistered CommenterMaverick

Buenos días Maverick, primero quería agradecerle por la intención de ayudar,
Tengo una duda: la tabla que me comentas crear (Evaluación) debería ser por cada tabla "maestra" definida?, es decir, debería tener tablas como:

info_gene / info_gene_eval
refe_labo / refe_labo_eval
fami_dire / fami_dire_eval
info_banc / info_banc_eval

para gestionar cada operación en cada estructura individual???

Creo que estoy haciendo, o intentando algo parecido con las tablas espejos para guardar ahí los datos de la persona antes de que sean aprobados y reemplazados en las tablas principales.

En lo que intento, por cada ingreso o eliminación de personas, guardo un campo con la identificación de la operación en el registro (por ejemplo estatus = "ingreso por aprobar"), para luego buscarlo y mostrarlo en la bandeja del segundo usuario (ésto lo hago primero en la tabla espejo y luego al aprobar lo copio a la tabla maestra y creo que está de más porque con el campo que identifica la operación de ingreso o eliminación, obtengo lo que quiero). Cuando es una operación de modificación es donde realmente uso los campos de las tablas espejo, pues lo que el usuario ingresa se guarda en la tabla espejo hasta que se apruebe o elimine la operación, momento en el cual es copiado el registro de la tabla espejo a la tabla maestra correspondiente.

Observación: Cada ingreso, modificación o eliminación de referencia, familiares o información bancaria, lo proceso como una modificación a la persona ya que la persona debe existir si deseo operar algún dato de éstos.

Gracias de nuevo por la ayuda, si tienes algún comentario adicional será igualmente de gran ayuda para mi.

septiembre 28, 2015 | Unregistered Commenterelabno