Una variable en un modelo de flujo de trabajo es una forma de almacenar un valor basado en su tipo de datos. Puede utilizar el nombre de la variable en cualquier paso del flujo de trabajo para recuperar el valor almacenado en la variable . También puede utilizar nombres de variables para definir expresiones para tomar decisiones de enrutamiento.
En AEM modelos de flujo de trabajo, puede:
En el siguiente vídeo se muestra cómo crear, establecer y utilizar variables en AEM modelos de flujo de trabajo:
Las variables son una extensión de la MetaDataMap interfaz. Puede usar MetaDataMap en ECMAScript para acceder a los metadatos guardados con variables.
Las variables se crean mediante la sección Variables disponible en la barra de tareas del modelo de flujo de trabajo. AEM Las variables de flujo de trabajo admiten los siguientes tipos de datos:
Los flujos de trabajo solo admiten el formato ISO8601 para las variables de tipo Fecha.
Utilice el tipo de datos ArrayList para crear colecciones de variables. Puede crear una variable ArrayList para todos los tipos de datos primitivos y complejos. Por ejemplo, cree una variable ArrayList y seleccione String como subtipo para almacenar varios valores de cadena usando la variable .
Para crear una variable:
En una instancia de AEM, vaya a Herramientas > Flujo de trabajo > Modelos.
Toque Crear y especifique el título y un nombre opcional para el modelo de flujo de trabajo. Seleccione el modelo y pulse Editar.
Pulse el icono de variables disponible en la barra de tareas del modelo de flujo de trabajo y pulse Agregar variable.
En el cuadro de diálogo Agregar variable , especifique el nombre y seleccione el tipo de variable.
Seleccione el tipo de datos de la variable Tipo lista desplegable y especifique los siguientes valores:
Especifique una descripción opcional para la variable y pulse para guardar los cambios. La variable se muestra en la lista disponible en el panel izquierdo.
Cuando cree variables, tenga en cuenta las siguientes prácticas:
Puede utilizar el paso Establecer variable para establecer el valor de una variable y definir el orden en que se configuran los valores. La variable se configura en el orden en que se enumeran las asignaciones de variables en el paso establecer variable .
Los cambios en los valores de las variables afectan únicamente a la instancia del proceso en que se produce el cambio. Por ejemplo, cuando se inicia un flujo de trabajo y cambian los datos de las variables, los cambios afectan únicamente a esa instancia del flujo de trabajo. Los cambios no afectan a otras instancias del flujo de trabajo que se iniciaron anteriormente o que se iniciaron más tarde.
Según el tipo de datos de la variable , puede utilizar las siguientes opciones para establecer el valor de una variable:
Literal: Utilice la opción cuando conozca el valor exacto que desea especificar. También puede utilizar la opción para especificar un JSON en forma de cadena.
Expresión: Utilice la opción cuando el valor que se va a utilizar se calcule en función de una expresión. La expresión se crea en el editor de expresiones proporcionado.
Notación de puntos JSON: Utilice la opción para recuperar un valor de una variable de tipo JSON o FDM.
XPATH: Utilice la opción para recuperar un valor de una variable de tipo XML.
En relación con la carga útil: Utilice la opción cuando el valor que se va a guardar en la variable esté disponible en una ruta relativa a la carga útil.
Ruta absoluta: Utilice la opción cuando el valor que se va a guardar en la variable esté disponible en una ruta absoluta.
También puede actualizar elementos específicos de una variable de tipo JSON o XML utilizando Notación DOT JSON o Notación XPATH.
Para agregar asignaciones entre variables:
Seleccione una variable de tipo XML para almacenar un archivo XML. Consulte la variable XML para establecer el valor de una variable de cadena para la propiedad disponible en el archivo XML. Uso Especificar XPATH para la variable XML para definir la propiedad que se almacenará en la variable de cadena.
En este ejemplo, seleccione un formdata Variable XML para almacenar la variable cc-app.xml archivo. Consulte la formdata para establecer el valor de la variable email variable de cadena para almacenar el valor de la variable emailAddress propiedad disponible en la variable cc-app.xml archivo.
Utilice una expresión para calcular la suma de las variables y almacenar el resultado en una variable.
En este ejemplo, utilice el editor de expresiones para definir una expresión para calcular la suma de assetscost y balanceamount y almacenar el resultado en totalvalue variable.
También se utilizan expresiones para calcular el valor de una variable en tiempo de ejecución. Las variables proporcionan un editor de expresiones para definir expresiones.
Utilice el editor de expresiones para:
Se basa en el editor de reglas de Forms adaptable con los cambios siguientes. Editor de reglas en variables:
Para obtener más información, consulte Editor de reglas de Forms adaptable.
Puede utilizar variables para recuperar entradas y salidas o guardar el resultado de un paso. El editor de flujo de trabajo proporciona dos tipos de pasos de flujo de trabajo:
El paso Ir a, O Dividir y todo AEM Forms Los pasos del flujo de trabajo admiten variables.
La división OR crea una división en el flujo de trabajo, tras la cual solo una rama está activa. Este paso le permite introducir rutas de procesamiento condicionales en el flujo de trabajo. Los pasos del flujo de trabajo se agregan a cada rama según sea necesario.
Puede definir la expresión de enrutamiento para una rama mediante una definición de regla, una secuencia de comandos ECMA o una secuencia de comandos externa.
Puede utilizar variables para definir la expresión de enrutamiento mediante el editor de expresiones. Para obtener más información sobre el uso de expresiones de enrutamiento para el paso OR Split , consulte Paso dividido OR.
En este ejemplo, antes de definir la expresión de enrutamiento, utilice ejemplo 2 para establecer el valor de la variable totalvalue variable. La rama 1 está activa si el valor de la variable totalvalue es bueno que 50000. Del mismo modo, puede definir una regla para que la Rama 2 esté activa si el valor de la variable totalvalue es menor que 50000.
Del mismo modo, seleccione una ruta de script externa o especifique la secuencia de comandos ECMA para las expresiones de enrutamiento para evaluar la rama activa. Toque Cambiar nombre de rama para especificar un nombre alternativo para la rama.
La variable Ir al paso permite especificar el paso siguiente en el modelo de flujo de trabajo que se va a ejecutar, según el resultado de una expresión de enrutamiento.
De forma similar al paso OR Split , puede definir la expresión de enrutamiento para el paso Goto mediante una definición de regla, un script ECMA o un script externo.
Puede utilizar variables para definir la expresión de enrutamiento mediante el editor de expresiones. Para obtener más información sobre el uso de expresiones de enrutamiento para el paso Ir a , consulte Ir al paso.
En este ejemplo, el paso Ir a especifica la Solicitud de la Tarjeta de Crédito de Revisión como el siguiente paso si el valor de la variable actiontaken es igual a Necesita más información.
Para obtener más ejemplos sobre el uso de la definición de regla en el paso Ir a , consulte Simulación de un bucle For.
Todo AEM Forms Los pasos del flujo de trabajo admiten variables. Para obtener más información, consulte Flujo de trabajo centrado en Forms en OSGi.
Puede usar MetaDataMap para acceder a variables en pasos de flujo de trabajo que no admiten variables.
Utilice las siguientes API en el script de ECMA para recuperar los valores de variables existentes en función del tipo de datos:
Tipo de datos variable | API |
---|---|
Primitiva (larga, doble, booleana, fecha y cadena) | workItem.getWorkflowData().getMetaDataMap().get(variableName, type) |
Documento | Packages.com.adobe.aemfd.docmanager.Document doc = workItem.getWorkflowData().getMetaDataMap().get("docVar", Packages.com.adobe.aemfd.docmanager.Document.class); |
XML | Packages.org.w3c.dom.Document xmlObject = workItem.getWorkflowData().getMetaDataMap().get(variableName, Packages.org.w3c.dom.Document.class); |
Modelo de datos de formulario | Packages.com.adobe.aem.dermis.api.FormDataModelInstance fdmObject = workItem.getWorkflowData().getMetaDataMap().get(variableName, Packages.com.adobe.aem.dermis.api.FormDataModelInstance.class); |
JSON | Packages.com.google.gson.JsonObject jsonObject = workItem.getWorkflowData().getMetaDataMap().get(variableName, Packages.com.google.gson.JsonObject.class); |
Ejemplo
Recupere el valor del tipo de datos de cadena mediante la siguiente API:
workItem.getWorkflowData().getMetaDataMap().get(accname, Packages.java.lang.String)
Utilice la siguiente API en el script ECMA para actualizar el valor de una variable:
workItem.getWorkflowData().getMetaDataMap().put(variableName, value)
Ejemplo
workItem.getWorkflowData().getMetaDataMap().put(salary, 50000)
Actualiza el valor de la variable salario a 50000.
Puede utilizar una API para establecer variables y pasarlas para invocar instancias de flujo de trabajo.
workflowSession.startWorkflow utiliza model, wfData y metaData como argumentos. Utilice MetaDataMap para establecer el valor de la variable.
En esta API, la variable variableName se configura como value usando metaData.put(variableName, value);
import com.adobe.granite.workflow.model.WorkflowModel;
import com.adobe.granite.workflow.metadata.MetaDataMap;
import com.adobe.aemfd.docmanager.Document;
/*Assume that you already have a workflowSession and modelId along with the payloadType and payload*/
WorkflowData wfData = workflowSession.newWorkflowData(payloadType, payload);
MetaDataMap metaData = wfData.getMetaDataMap();
metaData.put(variableName, value); //Create a variable "variableName" in your workflow model
WorkflowModel model = workflowSession.getModel(modelId);
workflowSession.startWorkflow(model, wfData, metaData);
Ejemplo
Inicializar el doc objeto document a una ruta ("a/b/c") y establezca el valor de la variable docVar a la ruta almacenada en el objeto document.
import com.adobe.granite.workflow.WorkflowSession;
import com.adobe.granite.workflow.exec.WorkflowData;
import com.adobe.granite.workflow.model.WorkflowModel;
import com.adobe.granite.workflow.metadata.MetaDataMap;
import com.adobe.aemfd.docmanager.Document;
/*This example assumes that you already have a workflowSession and modelId along with the payloadType and payload */
WorkflowData wfData = workflowSession.newWorkflowData(payloadType, payload);
MetaDataMap metaData = wfData.getMetaDataMap();
Document doc = new Document("/a/b/c");// initialize a document object
metaData.put("docVar",doc); //Assuming that you have created a variable "docVar" of type Document in your workflow model
WorkflowModel model = workflowSession.getModel(modelId);
workflowSession.startWorkflow(model, wfData, metaData);
Antes de eliminar la variable , elimine todas las referencias de la variable del flujo de trabajo. Asegúrese de que la variable no se utilice en el flujo de trabajo.
Para eliminar una variable:
Para obtener más ejemplos sobre el uso de variables en AEM Forms Pasos del flujo de trabajo, consulte Variables en flujos de trabajo AEM.