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@.

Nota: La descripción de las propiedades y el ejemplo que se utilizan en este documento se pueden consultar aquí.

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@
  • .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.
  • 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@

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@
Nota: El parámetro de entrada de señal no admite expresiones. Cualquier contenido proporcionado se trata como una cadena de caracteres.

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 ».

En la sección «Atributos», el usuario puede seleccionar una propiedad del menú desplegable de propiedades predefinidas y también puede introducir una propiedad personalizada de la instancia del flujo.
Nota: Las propiedades personalizadas de las instancias de flujo deben comenzar por @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.

Nota: La lista de propiedades predeterminadas de las instancias de flujo, junto con su tipo de datos, se puede consultar aquí.
El generador de condiciones ofrece una lista de operadores predefinidos para crear una condición. La tabla muestra la lista de operadores compatibles con el generador de condiciones.
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.
Nota:
  • is trueLos operadores, is false, is not null, y is not empty no 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».