Uma variável em um modelo de fluxo de trabalho é uma maneira de armazenar um valor com base em seu tipo de dados. 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 .
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 .
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 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. Também é possível 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.
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.
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. 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 do Adaptive Forms com as seguintes alterações. Editor de regras em variáveis:
Para obter mais informações, consulte Editor de regras adaptável do Forms.
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 todos AEM Forms As etapas do fluxo de trabalho 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.
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.
Todos AEM Forms As etapas do fluxo de trabalho 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); |
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);
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.
Para excluir uma variável:
Para obter mais exemplos sobre como usar variáveis em AEM Forms Etapas do fluxo de trabalho, consulte Variáveis em workflows AEM.