Uma variável em um modelo de fluxo de trabalho é uma maneira de armazenar um valor com base em seu tipo de dados. É possível usar o nome da variável em qualquer etapa do fluxo de trabalho para recuperar o valor armazenado na variável. Você também pode usar nomes de variáveis para definir expressões para tomar decisões de roteamento.
Em modelos de fluxo de trabalho do AEM, é possível:
O vídeo a seguir demonstra como criar, definir e usar variáveis em modelos de fluxo de trabalho do AEM:
As variáveis são uma extensão do atual MetaDataMap interface. Você pode usar MetaDataMap no ECMAScript para acessar metadados salvos usando variáveis.
Você cria variáveis usando a seção Variáveis disponível no sidekick do modelo de fluxo de trabalho. As variáveis de fluxo de trabalho do AEM são compatíveis com os seguintes tipos de dados:
Os fluxos de trabalho são compatíveis apenas com o formato ISO8601 para variáveis do tipo Date.
Use o tipo de dados ArrayList para criar coleções de variáveis. Você pode criar uma variável ArrayList para todos os tipos de dados primitivos e complexos. Por exemplo, crie uma variável ArrayList e selecione String como subtipo para armazenar vários valores de string usando a variável.
Para criar uma variável:
Em uma instância do AEM, navegue até Ferramentas > Workflow > Modelos.
Toque Criar e especifique o título e um nome opcional para o modelo de workflow. Selecione o modelo e toque em Editar.
Toque no ícone de variáveis disponível no sidekick do modelo de fluxo de trabalho e toque em Adicionar variável.
Na caixa de diálogo Adicionar variável, especifique o nome e selecione o tipo da variável.
Selecione o tipo de dados na Tipo e especifique os seguintes valores:
Especifique uma descrição opcional para a variável e toque em para salvar as alterações. A variável é exibida na lista disponível no painel esquerdo.
Ao criar variáveis, considere as seguintes práticas:
Você pode usar a etapa Definir variável para definir o valor de uma variável e a ordem na qual os valores são definidos. A variável é definida na ordem em que os mapeamentos de variável são listados na etapa Definir variável.
As alterações nos valores da variável afetam somente a instância do processo na qual a alteração ocorre. Por exemplo, quando um workflow é iniciado e os dados variáveis são alterados, as alterações afetam somente essa instância do workflow. As alterações não afetam outras instâncias do fluxo de trabalho que foram iniciadas anteriormente ou são iniciadas posteriormente.
Dependendo do tipo de dados da variável, você pode usar as seguintes opções para definir o valor de uma variável:
Literal: Use a opção quando souber o valor exato a ser especificado. Você também pode usar a opção para especificar um JSON no formato de uma string.
Expressão: Use a opção quando o valor a ser usado for calculado com base em uma expressão. A expressão é criada no editor de expressão fornecido.
Anotação JSON Dot: Use a opção para recuperar um valor de uma variável do tipo JSON ou FDM.
XPATH: Use a opção para recuperar um valor de uma variável do tipo XML.
Relativo à carga: Use a opção quando o valor a ser salvo na variável estiver disponível em um caminho relativo à carga.
Caminho absoluto: Use a opção quando o valor a ser salvo na variável estiver disponível em um caminho absoluto.
Você também pode atualizar elementos específicos de uma variável do tipo JSON ou XML usando a notação JSON DOT ou XPATH.
Para adicionar mapeamento entre variáveis:
Selecione uma variável do tipo XML para armazenar um arquivo XML. Consulte a variável XML para definir o valor de uma variável de string para a propriedade disponível no arquivo XML. Uso Especificar XPATH para a variável XML para definir a propriedade a ser armazenada na variável da string.
Neste exemplo, selecione um formdata Variável XML para armazenar o cc-app.xml arquivo. Consulte o formdata para definir o valor para a variável endereço de email variável de string para armazenar o valor do emailAddress propriedade disponível na cc-app.xml arquivo.
Use uma expressão para calcular a soma das variáveis e armazenar o resultado em uma variável.
Neste exemplo, use o editor de expressão para definir uma expressão para calcular a soma de assetscost e balanceamount variáveis e armazenam o resultado em valor total variável.
Também é possível usar expressões para calcular o valor de uma variável no tempo de execução. As variáveis fornecem um editor de expressão para definir expressões.
Use o editor de expressão para:
Tem como base o editor de regras do Adaptive Forms com as seguintes alterações. Editor de regras em variáveis:
Para obter mais informações, consulte Editor de regras do Forms adaptável.
Você pode usar variáveis para recuperar entradas e saídas ou salvar o resultado de uma etapa. O editor de workflow fornece dois tipos de etapas de workflow:
A etapa Ir para, OU a etapa Dividir e todas as AEM Forms As etapas de fluxo de trabalho são compatíveis com variáveis.
A divisão OR cria uma divisão no fluxo de trabalho, depois da qual apenas uma ramificação fica ativa. Essa etapa permite introduzir caminhos de processamento condicional no fluxo de trabalho. Adicione etapas do fluxo de trabalho a cada ramificação, conforme necessário.
Você pode definir a expressão de roteamento para uma ramificação usando uma definição de regra, um script ECMA ou um script externo.
Você pode usar variáveis para definir a expressão de roteamento usando o editor de expressão. Para obter mais informações sobre o uso de expressões de roteamento para a etapa de Divisão OR, consulte OU Etapa de divisão.
Neste exemplo, antes de definir a expressão de roteamento, use exemplo 2 para definir o valor de valor total variável. A ramificação 1 estará ativa se o valor de valor total for maior que 50000. Da mesma forma, é possível definir uma regra para tornar a Ramificação 2 ativa se o valor de valor total for inferior a 50000.
Da mesma forma, selecione um caminho de script externo ou especifique o script ECMA para expressões de roteamento para avaliar a ramificação ativa. Toque Renomear ramificação para especificar um nome alternativo para a ramificação.
A variável Etapa Ir para permite especificar a próxima etapa no modelo de fluxo de trabalho a ser executada, dependendo do resultado de uma expressão de roteamento.
Semelhante à etapa OU Split, você pode definir a expressão de roteamento para a etapa Ir para usando uma definição de regra, um script ECMA ou um script externo.
Você pode usar variáveis para definir a expressão de roteamento usando o editor de expressão. Para obter mais informações sobre o uso de expressões de roteamento para a etapa Ir para, consulte Etapa Ir para.
Neste exemplo, a etapa Ir para especifica Verificar Aplicação de Cartão de Crédito como a próxima etapa se o valor para a ação realizada é igual a Precisa de mais informações.
Para obter mais exemplos sobre como usar a definição de regra na etapa Ir para, consulte Simulação de um loop For.
Todos AEM Forms As etapas de fluxo de trabalho são compatíveis com variáveis. Para obter mais informações, consulte Fluxo de trabalho centrado no Forms no OSGi.
Você pode usar MetaDataMap para acessar variáveis em etapas de fluxo de trabalho que não aceitam variáveis.
Use as seguintes APIs no Script ECMA para recuperar valores para variáveis existentes com base no tipo de dados:
Tipo de dados variável | API |
---|---|
Primitiva (Longa, Dupla, Booleana, Data e String) | 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 dados do formulário | 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); |
Exemplo
Recupere o valor do tipo de dados string usando a seguinte API:
workItem.getWorkflowData().getMetaDataMap().get(accname, Packages.java.lang.String)
Use a seguinte API no Script ECMA para atualizar o valor de uma variável:
workItem.getWorkflowData().getMetaDataMap().put(variableName, value)
Exemplo
workItem.getWorkflowData().getMetaDataMap().put(salary, 50000)
Atualiza o valor para o salário para 50000.
Você pode usar uma API para definir variáveis e passá-las para chamar instâncias de fluxo de trabalho.
workflowSession.startWorkflow usa model, wfData e metaData como argumentos. Use MetaDataMap para definir o valor da variável.
Nessa API, a variável variableName está definida como value usar 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);
Exemplo
Inicializar o doc objeto de documento a um caminho ("a/b/c") e defina o valor do docVar ao caminho armazenado no objeto do documento.
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 excluir a variável, remova todas as referências da variável do fluxo de trabalho. Verifique se a variável não está sendo usada no fluxo de trabalho.
Para excluir uma variável:
Para obter mais exemplos sobre o uso de variáveis no AEM Forms Etapas do workflow, consulte Variáveis em fluxos de trabalho de AEM.