Unofficial Content

Vigencia Pattern
Estoy buscando un nombre mas lindo para este pattern!! (Enrique Almeida)

Es una variacion de Last Value Pattern , pero en vez de ser intervalos continuos en el tiempo puede necesitarse, que en algun momento pueda no estar vigente el valor.

Ejemplo Canonico


__Movimientos Comercio Exterior __
Id*
PaisId
PaisNombreFecha = Find(PaisNombre, PaisFechaInicial <= Fecha <=PaisFechaFinal)
Fecha
CantidadImportada
Importe

__Paises__
PaisId*
PaisFechaInicial*
PaisFechaFinal
PaisNombre



Por ejemplo
Yugoslavia se partio en 5 paises, en distintas fechas

Bosnia and Herzegovina (BA, BIH, 070)
Croatia (HR, HRV, 191)
Macedonia, The Former Yugoslav Republic of (MK, MKD, 807)
Serbia and Montenegro (CS, SCG, 891)
Slovenia (SI, SVN, 705)

y no es valido el tener una referencia a Yugoslavia cuando en una fecha donde la vigencia ya no existe.
Tampoco es valida una referencia a Croatia antes que el pais existiera.

A tener en cuenta en la implementacion

Validacion de rango de fechas.

Hay que validar que los rangos de fechas de las vigencias sean validas (PaisFechaInicial <= PaisFechaFinal) y tambien que no se solapen con otros registros existentes en la base de datos.

Integridad "referencial"

Es indispensable validar que no se pueda borrar un pais, de la tabla de paises, si esta referenciado por algun movimiento dentro de su rango de vigencia.
Solo se puede dar de baja un registro de la tabla de paises, si no hay ningun moviiento que caiga en el rango de vigencia establecido.
Si existe alguno, hay que dejar el registro, cerrar la vigencia y abrir otro rango.

Prompts

Seria bueno tener prompts que tuvieran en cuenta la vigencia, o sea que recibieran una fecha como parametro y mostraran solo los registros vigentes a la fecha.

Combobox de Paises.

El combobox de paises, debe mostrar los paises que son validos en la fecha que esta siendo instanciada, por el movimiento.

Fecha Obligatoria

En cualquier operacion que se realice con paises (cualquier referencia a la misma), es obligatoria tener una "Fecha Valor" en la cual dicha operacion se realiza.

Operaciones interesantes.

Cerrar una vigencia y abrir otra en forma simultanea. Consiste en ponerle al registro actual una fecha y abrir otro registro con esa fecha 1 como inicial. Sirve para solucionar el problema de: El 1o. de Enero del 2007, Serbia y Montenegro pasan a ser 2 paises.
No se puede permitir cerrar periodos de vigiencia que tengan algun elemento que los referencie.

Last update: February 2024 | © GeneXus. All rights reserved. GeneXus Powered by Globant