Compatibilidad con expresiones en Flow
La expresión se puede utilizar para acceder a las propiedades durante la ejecución de la instancia del flujo.
Visión general
Una vez que se activa el flujo mediante el « URL » de ejecución, se rellenan una serie de propiedades predeterminadas o integradas en la instancia del flujo. Además, algunas propiedades se rellenan con las tareas que se utilizan en el flujo.
El documento muestra un conjunto de funciones y operadores condicionales que se utilizan en las expresiones.
El usuario debe seguir una sintaxis concreta para declarar una expresión en las tareas y los puntos de decisión de un flujo determinado. La expresión debe comenzar por @context y terminar por @. Por ejemplo, @context.__tenantid@.
Acceso a las propiedades de una instancia de flujo
Cada propiedad de una instancia de flujo tiene su propio tipo. Por lo tanto, el acceso al valor de la propiedad depende del tipo de propiedad. Los tipos de datos admitidos son «String», «Number», «Boolean», «JSON» y «Array». Consulte la información adicional que se ofrece a continuación para comprender cómo se puede utilizar cada uno de estos tipos de propiedades.
- Se puede acceder a una cadena, un valor booleano o un número mediante
@context.propertyName@. Por ejemplo:- estado -
@context.status@ - __tenantid -
@context.__tenantid@ - __locale -
@context.__locale@
- estado -
.Se puede acceder a una propiedad JSON anidada utilizando los delimitadores '' o los[]corchetes. Por ejemplo:- userName a partir de la propiedad del usuario -
@context.user.id@ - messageId de la propiedad error -
@context.error.messageId@ - ID de la propiedad de usuario -
@context.user['id']@
Nota:- Los
[]corchetes deben utilizarse únicamente para acceder a las propiedades secundarias. .Las propiedades anidadas que contengan delimitadores «» deben incluirse entre[]corchetes.
- userName a partir de la propiedad del usuario -
- Se puede acceder a una propiedad de una matriz utilizando el índice correspondiente entre
[]corchetes. Por ejemplo:- Correo electrónico de la propiedad del usuario -
@context.user.emails[0].value@o@context.user['emails'][0].value@ - nombre del atributo personalizado a partir de la propiedad del usuario -
@context.user['urn:ietf:params:scim:schemas:extension:ibm:2.0:User'].customAttributes[0].name@
- Correo electrónico de la propiedad del usuario -
Uso de expresiones en los parámetros de entrada
La expresión se puede utilizar para acceder a las propiedades de las instancias en los parámetros de entrada de las tareas. Los parámetros de entrada también admiten expresiones junto con operadores. Los operadores binarios y ternarios se pueden utilizar junto con expresiones en los parámetros de entrada. Consulte los siguientes ejemplos
- Acceso a la propiedad -
@context.themeId@ - Uso del operador binario -
@context.user.userName@ == "Jessica Hill" - Uso del operador ternario -
@context.user['urn:ietf:params:scim:schemas:extension:ibm:2.0:User'].userCategory@ == "regular" ? @context.basicLdapUrl@ : @context.federatedUrl@
Creador de condiciones
La ruta de decisión de los puntos de condición se crea en el generador de condiciones. El generador de condiciones está disponible en el flujo de secuencia saliente desde el punto de condición. El generador de condiciones comienza con un conjunto de condiciones «if» y puede incluir cero o más conjuntos de condiciones «or». Cada conjunto de condiciones puede contener varias condiciones. Cada condición se divide en tres secciones: «Atributo», «Operador » y «Valor ».
@context y terminar por @. Por ejemplo, para acceder a una propiedad personalizada llamada responseCode, el usuario puede escribir - @context.responseCode@.La sección «Valor» admite cadenas, números, valores booleanos y expresiones de flujo como datos de entrada.
| Operador | tipos de datos soportados | Descripción | Ejemplo |
|---|---|---|---|
equal to |
Cadenas, números y valores booleanos | El atributo y el valor de la comparación tienen el mismo valor. | @context.status@ es lo mismo que fracasar. |
not equal to |
Cadenas, números y valores booleanos | El atributo y el valor de la comparación no tienen el mismo valor. | @context.themeId@ no es igual al valor predeterminado. |
less than |
Número | El atributo de la comparación tiene un valor inferior al valor. | @context.numericProperty@ (supongamos que hay una variable llamada « numericProperty » en el contexto) menor que 20. |
less than or equal to |
Número | El atributo de la comparación es menor o igual que el valor. | @context.numericProperty@ igual o inferior a 20. |
greater than |
Número | El atributo de la comparación tiene un valor mayor que ese valor. | @context.numericProperty@ superior a 20. |
greater than or equal to |
Número | El atributo de la comparación es mayor o igual que el valor. | @context.numericProperty@ mayor o igual a 20. |
is true |
Boolean | El valor de la propiedad del atributo es «true». | @context.booleanProperty@ (suponiendo que en el contexto existe una variable llamada « booleanProperty ») es verdadera. |
is false |
Boolean | El valor de la propiedad del atributo es «false». | @context.booleanProperty@ es falso. |
has property |
_ | El atributo contiene una propiedad que se menciona en el valor. | @context.user.name@ tiene la propiedad givenName |
is not null |
Cadenas, números y valores booleanos | El atributo no es nulo. | @context.user.name.givenName@ no es nulo. |
is not empty |
Serie | El atributo no está vacío. | @context.user.name.givenName@ no está vacía. |
is trueLos operadores,is false,is not null, yis not emptyno requieren la sección «Valor ».- Para calcular condiciones complejas, el usuario debe utilizar la tarea «Función ». Por ejemplo, para filtrar a un usuario de una lista de usuarios en función de determinados atributos. A continuación, se puede acceder al usuario filtrado utilizando la expresión.
- Un tipo de datos se puede convertir en una cadena de caracteres colocándolo entre comillas dobles («»). Por ejemplo, el número 10 se puede convertir en la cadena «10», o el valor booleano «true» se puede convertir en la cadena «true».