Usar expresiones en parámetros de acción evento
Algunos, pero no todos, parámetros de acción evento le permiten utilizar expresiones, en lugar de valores literales, para especificar los valores de los parámetros. Normalmente hace esto cuando quiere permitir que se utilicen valores variables o dinámicos para esos valores.
Por ejemplo, puede que quiera especificar un grupo de destinatarios para que reciban varias notificaciones y mensajes de aviso y esos miembros del grupo cambian con frecuencia. Puede crear un valor de constante global para el grupo y luego usar esa constante global siempre que quiera que se envíe un mensaje a ese grupo. A continuación, cuando los miembros del grupo cambien, puede cambiarlo en un lugar (la constante global) y todos los controladores de evento que utilicen esa constante global automáticamente recogen el cambio.
Sintaxis para las expresiones
Utilice comillas para indicar un valor de cadena literal para los números, las fechas o los valores booleanos (VERDADERO/FALSO), las comillas no son obligatorias ni están permitidas.
Tenga en cuenta estos ejemplos:
- CONDITION( "CreditLimit" < "500000" )
Ambos lados de la comparación se reconocen como valores de la cadena literal y se los trata como corresponde al ejecutar la acción de evento. Los valores se comparan alfabéticamente como cadenas. Por lo tanto, esta condición se traduce en un resultado falso, porque «C» se clasifica en un valor mayor a «5» en la intercalación Unicode.
- CONDITION( CreditLimit < 500000 )
Se devuelve un error de sintaxis porque CreditLimit no está reconocido como una función válida.
- CONDITION( P( "CreditLimit" ) > "500000" )
Ambos lados de la comparación son válidos, pero, una vez más, se trata al valor numérico 500000 como una cadena literal y se compara con el valor del campo Límite de crédito que se devuelve. Los valores de propiedad son sin tipo, de modo que la operación de la comparación depende de la expresión en el otro lado. En este caso, «500000» es un valor de cadena literal (según se indica mediante las comillas), de modo que el valor de propiedad se compara con él alfabéticamente como una cadena que puede o no devolver un resultado válido.
- CONDITION( E(MG_CurrentSite) IN ("MI";"ZZ"))
El parámetro MG_CurrentSite se establece para todos los eventos en ejecución. Se utiliza para facilitar la salida del procesamiento a las acciones de evento en función del valor del sitio actual. Se puede utilizar una acción final para hacer que solo un controlador funcione en ciertos sitios.
- CONDITION( P( "CreditLimit" ) > 500000 )
El valor actual de la propiedad CreditLimit se utiliza, pero esta vez se compara matemáticamente, como un valor numérico, con la constante numérica 500000. Si el valor de propiedad no se puede convertir numéricamente (por ejemplo, si contiene caracteres no digitales), aparecerá un error de tiempo de ejecución.
Para más información acerca de expresiones y las funciones utilizadas para compilarlas, consulte "Funciones de expresión» en Guía al Sistema de evento de aplicación.