Añadir una nueva dimensión de inventario

En este post explicaremos como añadir una nueva dimensión de inventario.
Realizar los pasos para añadirla es muy fácil pero implementar toda la funcionalidad necesaria, es una tarea muy costosa como veréis al final de este post.

El primer paso será añadir la nueva dimensión(campo) en la tabla InventDim.

Para este ejemplo he creado la tabla de la imagen para mi dimensión, la cual almacenará el nombre e identificador de la nueva dimensión.




El campo StatusId de mi nueva tabla InventDimStatus extiende del EDT que se ve en la imagen, el cual será arrastrado a la tabla InventDim.




Crearemos una relación entre las tablas.


Añadiremos el campo a uno de los grupos de campos existentes (en el que tenga más sentido), con esto conseguiremos que en todos los formularios de la aplicación donde se estén utilizando los grupos de campos se muestre automáticamente..




Dependiendo del grupo al cual lo añadamos nos aparecerá para su configuración en el formulario de Grupo de dimensiones de ....

Gestión de información de productos > Grupos de dimensiones > ...



Agregaremos el nuevo campo al indice DimIdx



Modificaremos el método find de la tabla inventDim para agregar nuestro nuevo campo.




De la misma manera agregaremos el nuevo campo en el método create de la tabla InventDim



Sincronizaremos la tabla y si es necesario el DataDictionary


Deberemos modificar el método isFieldIdConsistentDim de la tabla InventDim para añadir nuestro campo.




De la misma manera deberemos arreglar/modificar los siguientes métodos.




Ahora en todos los formularios que estén utilizando los grupos de campos de la tabla dimensiones se mostrará el campo, en caso contrario deberemos agregarlo nosotros.




Si realizamos una prueba veremos como se guarda el valor de nuestra dimensión en la InventDim




Con esto, ¿será suficiente para que nuestra nueva dimensión funcione en toda la aplicación?

Siento informar que no será así, hemos hecho lo más fácil pero ahora deberemos buscar por toda la aplicación para añadirle funcionalidad a la nueva dimensión..

Por ejemplo: 
La nueva dimensión no aparecerá  en el formulario estándar de presentación de dimensiones.




Esto es debido a que no hemos agregado un campo Flag para nuestra dimensión.



Os podéis imaginar que habrá múltiples partes de código que utilicen la InventDim y que deban ser modificados.
Imaginad la multitud de selects que deben existir en la aplicación y que tal vez ahora deban ser modificados.

Para que la tarea no sea tan dura se pueden utilizar las referencias cruzadas, para eso nos dirigiremos a la tabla InventDim y actualizaremos las referencias cruzadas para poder luego ver las que están en uso.

Esto paso puede demorar horas... 



Otra opción es buscar en todos los nodos por InventDim para ver donde tenemos que tocar....Esto también llevará su tiempo.




Como dije al principio agregar la dimensión es fácil, el problema es modificar toda la funcionalidad de la InventDim en la aplicación.


Comentarios