El valor anterior es una propiedad de los campos en los objetos base de modelo que permite leer el valor que tenía un campo antes del cambio que se está guardando. Con ella, una regla puede comparar el valor nuevo con el anterior y actuar solo si el campo cambió. Es una de las cuatro propiedades de la Tabla 1.3 de la lección, junto con obligatorio, visibilidad y valor.
Su uso más frecuente es detectar un cambio. En AR_Derivar motivo de evento, la primera rama pregunta si el grado es distinto del grado anterior; la segunda, si la ubicación es distinta de la anterior. Si el grado cambió, el registro queda como promoción con AR_PROMO; si cambió la ubicación, como traslado con AR_TRASL. Sin el valor anterior, la regla no tendría forma de saber qué cambió, solo cuál es el valor actual.
En la U5 L4 lo usamos con otro propósito: que la alerta del período de prueba no se repitiera. La regla de alerta comparaba la fecha de fin del período de prueba con la anterior y solo generaba una alerta nueva si la fecha había cambiado. Sin esa condición, cada guardado del registro, por cualquier motivo, habría generado otra alerta.
En la L4 de esta unidad aparece una tercera vez. AR_Grupo de pago por grado pregunta si el grado es distinto del grado anterior antes de ajustar el grupo de pago de la compensación. Si el grado no cambió, la regla no toca la compensación, aunque el registro se guarde por otro motivo.
Hay un detalle que conviene entender: qué es "anterior" depende del contexto. En un cambio desde el botón de acciones, el valor anterior es el del registro vigente antes del cambio. En una inserción de un registro en el medio de la historia, es el del registro inmediatamente anterior. En una importación, depende de cómo se cargue el archivo. Las reglas que dependen del valor anterior conviene probarlas en los tres caminos, porque un resultado correcto en la pantalla no garantiza el mismo resultado en una carga.
También hay que considerar el alta. En una contratación no hay registro anterior, así que la comparación con el valor anterior se comporta distinto que en un cambio. Las reglas de derivación del motivo suelen excluir las altas o tratarlas en una rama propia, para que una contratación no quede registrada como promoción porque el grado anterior está vacío.
Para usar esta propiedad, la regla necesita un objeto base de modelo. Con el objeto base estándar no aparece. Es una de las razones por las que SAP recomienda los objetos base de modelo, y por las que todas las reglas de Best Run Argentina sobre la información del puesto se crean con el modelo de información del puesto.
En el diagnóstico, el valor anterior también es una pista. Si una regla que depende de él no corrió, la vista de ejecución de reglas de la L6 muestra si se excluyó, y la traza de reglas muestra con qué valores se evaluó la condición.
