WhatsApp

  
Valores Calculados en MetaAtributos

Bienvenidos a un nuevo post sobre Mega Hopex, en esta ocasión estaremos trabajando con los Valores Calculados sobre MetaAtributos. Esta implementación que se realizará nos recordará a los TaggedValue, con la diferencia de que ahora el cálculo si pasará a formar parte de los metaAtributos de una MetaClase, es decir que no sólo se mostrarán sobre una MetaPropertyPage, aparte de esto, también serán valores únicos para cada Objeto de la MetaClase, en este caso, Incidente.

Si recordamos, los TaggedValues son valores que se definen por medio de Macros y el caso de los MetaAtributos de valores calculados también se calcularán con Macros. Recordemos que en el post de TaggedValues utilizamos estos para mostrar nombres en una vista de tipo ListView, sin embargo, esto no era un atributo propiamente, pues para las unidades organizacionales, los Procesos Organizacionales son asociaciones que se tienen, pero ahora imaginemos que para un objeto de Tipo Incidente, deseamos que un atributo cambie en función de otros mismos del objeto. El caso de ahora será la clave del incidente que cambiará por la Fecha de Ocurrencia y la primera letra del nombre del Incidente, por lo que, al crear el Incidente y declarar su fecha de ocurrencia, la Clave se registrará automáticamente.

Para comenzar, debemos crear un nuevo atributo para la clave del incidente, debido a que el estándar ya se genera de forma automática.

Esta clave la mostraremos en la property page de características por debajo del nombre y la Clave estándar del Incidente para quedar de la siguiente manera:

Visualizado desde Web con el perfil de contribuidor IRM, tenemos el siguiente incidente que ya muestra el nuevo MetaAtributo:

Ahora, como mencionamos, este valor se pretende calcular en base a las fechas de ocurrencia y el nombre, por lo tanto, la configuración del nuevo atributo quedaría como se describe en la siguiente imagen, en donde se le agrega una macro para calcular:

Ahora pasaremos a configurar la Macro con la lógica adecuada para generar una clave de incidente en base a la primera letra del nombre y la fecha de ocurrencia. La macro quedaría tal que:

Sub GetAttributeValue(Object as MegaObject,AttributeID as Variant,Value as String)
Dim Ocurrencia, Nombre, oDay, oMonth, oYear, nInicial
Nombre = Object.GetProp("Short name")
Ocurrencia = Object.GetProp("Fecha de Ocurrencia")
oDay = Day(Ocurrencia)
oMonth = Month(Ocurrencia)
oYear = Year(Ocurrencia)
nInicial = Left(Nombre,1)
Value = nInicial & "-" & oYear & oMonth & oDay
End Sub

Con esto, estaríamos definiendo que, del objeto al que pertenece el metaAtributo, tomaremos su nombre y su fecha de ocurrencia, extraeremos la primera letra del nombre sin importar cuál sea el valor y de la fecha la seccionaremos por día, mes y año, para al final insertar un valor de la concatenación de todos estos, veamos cómo se ve desde la interfaz final del usuario. 

Podemos observar que efectivamente, la clave de Major Cheque Loss con fecha de Ocurrencia del 22/11/2022 queda como M-20221122, sencillo pero que puede distinguir también a la lista de todos los incidentes. Esto se calculará cada que se actualice la vista o que cambiemos un valor que se tome en la macro, por lo que si cambiamos la fecha de ocurrencia, debe actualizarse el valor:

Y es de esta manera en la que se pueden obtener valores calculados para asignarlos de manera dinámica a los atributos y su diferencia, recordando, con los Tagged Values es que esto ya forma parte directa de los atributos, por lo que si se cambia este valor de forma manual, será reemplazado automáticamente.


Rodolfo Velazquez 8 febrero, 2024
Compartir
Categorías


Iniciar sesión dejar un comentario

  
Creación de MetaClases con diagramas de MetaModelo