El Modelo de Estados de Siebel nos permite controlar las transiciones de valores para determinados campos. Si bien está enfocado a campos de ‘Estado’, podemos utilizarlo para cualquier otro campo.
Si es importante tener en cuenta que un simple error de sintaxis puede provocar que el Modelo de Estados completo (no solo la transición en la que estuviese la errata) deje de funcionar correctamente, por lo que es altamente recomendable aplicarlo solo para campos que utilicen Listas de Valores, y probar exhaustivamente cualquier cambio que se lleve a cabo.
También conviene recordar que está basado en un Business Component, por lo tanto si en nuestra aplicación los usuarios tuviesen acceso a la misma funcionalidad desde vistas que utilicen diferentes BC, sería necesario mantener un Modelo de Estados independiente para cada BC. Lo más recomendable en estos casos es procurar mantener el mínimo número de BC’s para cada funcionalidad. Si la aplicación contiene código que trabaje sobre ese mismo BC, el Modelo de Estados también le afectará.
Y por fin vamos a meternos en harina, ¿cómo se configura el Modelo de Estados? Bien, se hace en 3 fases, la primera consiste en crear el Modelo de Estados en si. Desde ‘Configuración de Aplicaciones’/’Modelos de Estados’, crearemos nuestro Modelo indicando para que BC y campo concreto lo queremos, así como las fechas de vigencia del mismo.
Una vez creado, la 2ª fase será definir los Estados con los que vamos a trabajar desde la pestaña ‘Regiones’. Dado que como comentábamos se debería aplicar a un campo que utilice Lista de Valores, solo tendremos que ir seleccionando aquellos valores de la lista que sean válidos. Estableceremos uno de ellos como predeterminado y marcaremos ‘Restringir transición’ para todos, de modo que podamos controlar las transiciones para las que se podrá utilizar cada uno de ellos.
Para concluir, desde la pestaña de Transiciones definiremos todas las transiciones válidas (estado original y estado destino). Una vez hayamos concluido toca definir quien y en que circunstancias puede utilizar cada transición. Si definimos la transición como Publica, cualquier usuario podrá utilizarla, mientras que si por el contrario no lo hacemos, solo los usuarios con una de las posiciones que listemos en el applet de Posiciones Autorizadas tendrán visibilidad de esa transición al desplegar la lista de valores en el campo (el resto de usuarios ni siquiera verán esa transición destino). Para definir en que circunstancias se permite la transición, podemos introducir una expresión condicional que lo regule. Esto no hace que el usuario no vea la transición cuando las condiciones no se cumplan, pero en ese caso el sistema le devolverá un mensaje de error impidiéndole cambiar el valor del campo. Como ejemplo, si nuestro Modelo de Estados regula los cambios del campo Estado de Actividades, podemos impedir que se utilice una transición concreta para Actividades de un tipo concreto utilizando la expresión:
[Type] <> «<tipo no aceptado>»

Si el tipo de actividad es el indicado en la expresión saltará el mensaje indicando que la condición no se cumple. Es recomendable simplificar al máximo estas expresiones para un mantenimiento adecuado del Modelo de Estados, como indicábamos arriba un error de sintaxis en estas expresiones haría que el Modelo de Estados completo dejase de funcionar.
Cuando tengamos listo nuestro Modelo de Estados (así como cada vez que se realicen cambios sobre el mismo) será necesario reiniciar el Object Manager para que los cambios entren en vigor.








