Soporte de expresiones en flujo
La expresión puede utilizarse para acceder a las propiedades dentro del tiempo de ejecución de la instancia de flujo.
Visión general
Una vez que el flujo se activa mediante la URL ejecución, se rellena un conjunto de propiedades predeterminadas o integradas en la instancia del flujo. Además, algunas propiedades se rellenan mediante las tareas que se utilizan en el flujo.
El documento muestra un conjunto de distintas funciones u operadores condicionales que se utilizan en las expresiones.
El usuario necesita seguir una sintaxis determinada para declarar una expresión en tareas y puntos de decisión para un flujo determinado. La expresión debe empezar por @context y terminar por @. Por ejemplo, @context.__tenantid@.
Acceso a las propiedades de instancia de flujo
Cada propiedad de instancia de flujo tiene su propio tipo. Por lo tanto, el acceso al valor de propiedad está influenciado por el tipo de la propiedad. Los tipos de propiedad soportados son 'String', 'Number', 'Boolean', 'JSON' y 'Array'. Consulte los detalles adicionales proporcionados para comprender cómo se puede utilizar cada uno de estos tipos de propiedad diferentes.
- Se puede acceder a una serie o booleano o número como
@context.propertyName@. Por ejemplo:- estado-
@context.status@ - __tenantid-
@context.__tenantid@ - __entorno_local-
@context.__locale@
- estado-
- Se puede acceder a una propiedad JSON anidada utilizando los delimitadores '
.' o con corchetes[]. Por ejemplo:- userName de la propiedad de usuario-
@context.user.id@ - messageId de la propiedad de error-
@context.error.messageId@ - id de la propiedad de usuario-
@context.user['id']@
Nota:- Los corchetes
[]deben utilizarse sólo para acceder a las propiedades hijo. - Las propiedades anidadas que contienen delimitadores '
.' deben incluirse entre corchetes[].
- userName de la propiedad de usuario-
- Se puede acceder a una propiedad de matriz utilizando el índice necesario entre corchetes
[]. Por ejemplo:- correo electrónico de la propiedad de usuario-
@context.user.emails[0].value@o@context.user['emails'][0].value@ - nombre de atributo personalizado de la propiedad de usuario-
@context.user['urn:ietf:params:scim:schemas:extension:ibm:2.0:User'].customAttributes[0].name@
- correo electrónico de la propiedad de usuario-
Utilización de expresiones en los parámetros de entrada
La expresión puede utilizarse para acceder a propiedades de instancia en parámetros de entrada para tareas. Los parámetros de entrada también admiten expresiones junto con operadores. Se pueden utilizar operadores binarios y ternarios junto con expresiones en parámetros de entrada. Consulte los ejemplos siguientes
- Propiedad de acceso-
@context.themeId@ - Utilización del operador binario-
@context.user.userName@ == "Jessica Hill" - Utilización 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 del punto de condición se basa en el generador de condiciones. El constructor 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 tener cero o más conjuntos de condiciones «or». Cada conjunto de condiciones puede tener varias condiciones. Cada condición se divide en tres secciones: Atributo, Operadory Valor.
@context y finalizar por @. Por ejemplo, para acceder a una propiedad personalizada denominada responseCode, el usuario puede introducir - @context.responseCode@.La sección Valor admite cadenas, números, booleanos y expresiones de flujo como entrada.
| Operador | tipos de datos soportados | Descripción | Ejemplo |
|---|---|---|---|
equal to |
Serie, número y booleano | El atributo y el valor de la comparación son de igual valor. | @context.status@ igual a ha fallado. |
not equal to |
Serie, número y booleano | El atributo y el valor de la comparación no son del mismo valor. | @context.themeId@ no es igual a predeterminado. |
less than |
Número | El atributo de la comparación tiene un valor menor que el valor. | @context.numericProperty@ (supongamos que hay una variable denominada 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@ menor o igual que 20. |
greater than |
Número | El atributo de la comparación tiene un valor mayor que el valor. | @context.numericProperty@ mayor que 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 que 20. |
is true |
Boolean | La propiedad de atributo se evalúa como true. | @context.booleanProperty@ (supongamos que hay una variable denominada booleanProperty en el contexto) es true. |
is false |
Boolean | La propiedad de atributo se evalúa como false. | @context.booleanProperty@ es false. |
has property |
_ | El atributo contiene una propiedad que se menciona en el valor. | @context.user.name@ tiene la propiedad givenName |
is not null |
Serie, número y booleano | 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ío. |
- Los operadores
is true,is false,is not nullyis not emptyno requieren la sección Valor . - Para calcular condiciones complejas, el usuario debe utilizar la tarea Función . Por ejemplo, para filtrar un usuario de una lista de usuarios basándose en algunos atributos. A continuación, se puede acceder al usuario filtrado utilizando la expresión.
- Un tipo de datos se puede convertir a String colocándolo dentro de "". Por ejemplo, el número 10 se puede convertir en serie como "10", o el valor booleano true se puede convertir en serie como "true".