Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cambiar ID de cuentas contables a mongo generado #133

Open
5 of 6 tasks
AlexFBP opened this issue Dec 31, 2021 · 2 comments
Open
5 of 6 tasks

Cambiar ID de cuentas contables a mongo generado #133

AlexFBP opened this issue Dec 31, 2021 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@AlexFBP
Copy link
Contributor

AlexFBP commented Dec 31, 2021

Consideraciones

  • El objetivo de Kronos es, a grandes rasgos, reemplazar varios de los sistemas que se emplean en la Universidad, entre otros, Siigo y SiCapital
  • Lo revisado el 30 de Diciembre (video - texto)
  • Se está trabajando con una arquitectura orientada a (micro)servicios, con CRUD APIs desligadas unas de otras, lo que implica que no todos los datos se propagan al cambiar
  • Las cuentas actualmente se están almacenando a nivel de base de datos, de tal manera que en cada registro/objeto, el identificador es el mismo código de la cuenta (Esto quizás para intentar evitar que un código pudiese repetirse), no hay un identificador inmutable
  • Otros sistemas están almacenando justamente este "identificador" como cuenta_contable_id
  • Los dos puntos anteriores tienen, entre otras, las siguientes implicaciones:
    • Si Contabilidad decide, por la razón que sea, recodificar una cuenta (cambiarle el código a una cuenta, manteniendo su historial), a nivel interno puede que no haya problema, pero cuando otras APIs realicen movimientos contables acorde a la parametrización de cada concepto contable de cada negocio, las transacciones van a fallar
    • Para evitar lo anterior, habría que impedir el renombrado de cuentas. Pero hacer esto iría en contra de la primer consideración, del objetivo de Kronos: se le estaría limitando a Contabilidad la funcionalidad de que, sin intervención alguna de la OAS, en Kronos puedan recodificar las cuentas
    • Esta funcionalidad se podría plantear como un caso de soporte, en que se solicite desde Contabilidad, sin embargo es inviable, principalmente porque un cambio no mas en una única cuenta implicaría realizar consultas y cambios en varias bases de datos, y eso a nivel de las bases de datos que se tienen administradas por la OAS

Tareas

Estrategia de Mitigación

Para mitigar la situación se propone el siguiente proceso:

  • 1. Realizar una primer migración (mongo) en la que se agregue un campo "codigo" a cada registro de la tabla (colección mongo) de cuentas contables, y "_id" para regenerar mongo_ids. Lo que está actualmente en "_id" se copiaría a "codigo", y luego se generaría el "_id" como un ObjectID. Esto podría realizarse, bien sea elemento a elemento, o creando una nueva colección. Agregar por cada uno de los campos anteriores un índice único (mongo), según haga falta.
  • 2. Dejar preparada (y simular) una segunda migración, a ser ejecutada en la-etapa/el-paso 4
  • 3. Una vez terminado lo anterior, notificar y dar un tiempo definir una fecha prudente para que los demás sistemas apliquen las correcciones pertinentes, de tal manera que todos sus procesos consuman dicho campo en vez del id, a nivel de consulta, pero a nivel de base de datos, deberán empezar a usar el id generado por la base de datos. En lo que concierne a datos, una vez identificados los sistemas afectados, coordinar con DBA la estrategia de migración de datos
  • 4. Finalizado el tiempo, eliminar el id que originalmente usaba la cuenta contable. A nivel del id de cada objeto retornado por la API, dejar de retornar el codigo y usar el id mongo

Fecha Estimada hasta las dos primeras migraciones: 12 de Enero

@AlexFBP AlexFBP added the bug Something isn't working label Dec 31, 2021
@AlexFBP
Copy link
Contributor Author

AlexFBP commented Jan 4, 2022

Un posible ejemplo de cómo cambiaría un registro en base de datos de una cuenta contable (antes/despues arriba/abajo)
cambio en un registro

@salcedogeiner
Copy link
Contributor

se actualiza desarrollo para primer migrado de cuentas.
ramas:

cuentas_contables_crud: primer-migracion-id
contabilidad_cliente: refactor-codigo-id

Para segundo paso de migracion
ramas:
cuentas_contables_crud: refactor-codigo-id

A nivel de la bd en Mongo se debe definir fecha para extraer data, actualizar parametro de codigo y actualizar bd.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants