Uma variável em um modelo de fluxo de trabalho é uma maneira de armazenar um valor com base em seu tipo de dados. Em seguida, você pode usar o nome da variável em qualquer etapa do fluxo de trabalho para recuperar o valor armazenado na variável . Também é possível usar nomes de variáveis para definir expressões para tomar decisões de roteamento.
Em AEM modelos de fluxo de trabalho, você pode:
O vídeo a seguir demonstra como você pode criar, definir e usar variáveis em AEM modelos de fluxo de trabalho:
As variáveis são uma extensão do 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. AEM variáveis de fluxo de trabalho são compatíveis com os seguintes tipos de dados:
Os fluxos de trabalho suportam apenas o formato ISO8601 para variáveis do tipo Data .
Você precisa Pacote do complemento AEM Forms para tipos de dados Documento e Modelo de dados de formulário. Use o tipo de dados ArrayList para criar coleções de variáveis. É possível 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 .
Execute as seguintes etapas para criar uma variável:
Em uma instância AEM, navegue até Ferramentas > Fluxo de trabalho > Modelos.
Toque Criar e especifique o título e um nome opcional para o modelo de fluxo de trabalho. Selecione o modelo e toque em Editar.
Toque no ícone de variáveis disponíveis 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 no 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 em que 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 apenas a instância do processo em que 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 subsequentemente.
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.
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.
Notação de ponto JSON: 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.
Em relação à carga: Use a opção quando o valor a ser salvo na variável estiver disponível em um caminho relativo à carga útil.
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 notação JSON DOT ou notação XPATH.
Execute as seguintes etapas para adicionar o mapeamento entre as 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. Use 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 a variável cc-app.xml arquivo. Consulte o formdata para definir o valor da variável email address variável de string para armazenar o valor da variável 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 custo dos ativos e valor do saldo e armazene 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:
É baseado no editor de regras de formulários adaptáveis com as seguintes alterações. Editor de regras em variáveis:
Para obter mais informações, consulte editor de regras de formulários adaptáveis.
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 Split e todas as etapas do fluxo de trabalho do AEM Forms suportam variáveis.
A divisão OR cria uma divisão no fluxo de trabalho, após a qual apenas uma ramificação está ativa. Essa etapa permite introduzir caminhos de processamento condicional no fluxo de trabalho. Adicione etapas de fluxo de trabalho a cada ramificação, conforme necessário.
Você pode definir uma 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 OU Dividir , consulte OU Split step.
Neste exemplo, antes de definir a expressão de roteamento, use exemplo 2 para definir o valor da variável valor total variável. A Ramificação 1 estará ativa se o valor da variável valor total for maior que 50000. Da mesma forma, é possível definir uma regra para tornar a Ramificação 2 ativa se o valor da variável valor total é menor que 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.
Para obter mais exemplos, consulte Criar um modelo de fluxo de trabalho.
O Etapa Ir para permite especificar a próxima etapa no modelo de fluxo de trabalho a ser executado, dependendo do resultado de uma expressão de roteamento.
Semelhante à etapa OU Dividir , é possível 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 especifica a opção Revisar aplicativo de cartão de crédito como a próxima etapa se o valor da variável ação é igual a Precisa de mais informações.
Para obter mais exemplos sobre o uso da definição de regra na etapa Ir para , consulte Simulação de um loop For.
Todas as etapas do fluxo de trabalho do AEM Forms suportam 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 suportam 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 da variável | API |
---|---|
Primitivo (Longo, Duplo, Booliano, Data e Cadeia de Caracteres) | 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 | Pacotes.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); |
Você precisa Pacote do complemento AEM Forms para tipos de dados de variáveis Document and Form Data Model.
Exemplo
Recupere o valor do tipo de dados da 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 da variável 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 O usa modelo, wfData e metaData como argumentos. Use o MetaDataMap para definir o valor da variável.
Nessa API, a variável variableName estiver definida como value utilização de 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
Inicialize o doc objeto do documento para um caminho ("a/b/c") e defina o valor da variável docVar para o caminho armazenado no objeto de 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);
Os dados processados por meio do fluxo de trabalho de formulários podem conter dados confidenciais do usuário, como Informações pessoais identificáveis e Informações pessoais confidenciais. As empresas podem optar por armazenar os dados, que são processados por várias etapas do fluxo de trabalho (e transmitidos usando variáveis de fluxo de trabalho), do armazenamento JCR em um armazenamento de dados externo pertencente e gerenciado por elas. Para saber mais sobre a persistência de dados de workflow em um armazenamento externo, consulte Uso de variáveis de fluxo de trabalho para armazenamentos de dados de propriedade do cliente.
Adobe Experience Manager fornece API de fluxo de trabalho UserMetaDataPersistenceProvider para armazenar variáveis de fluxo de trabalho em armazenamentos de blob externos do Azure. Para obter detalhes sobre o uso da API, consulte Use variáveis de fluxo de trabalho para parametrizar dados confidenciais e armazenar em armazenamentos de dados externos.
Antes de excluir a variável , remova todas as referências da variável do fluxo de trabalho. Certifique-se de que a variável não seja usada no workflow.
Execute as seguintes etapas para excluir uma variável:
Para obter mais exemplos sobre como usar variáveis em etapas de fluxo de trabalho do AEM Forms, consulte Variáveis em workflows AEM.