Criar uma função personalizada para um formulário adaptável com base nos Componentes principais
O Forms adaptável baseado em Componentes principais oferece experiências dinâmicas de usuário, ajustando o conteúdo e o comportamento com base na entrada do usuário. As funções personalizadas permitem que os desenvolvedores estendam a funcionalidade, garantindo que os formulários possam atender a requisitos específicos. Ao integrar funções personalizadas, os desenvolvedores podem implementar lógica complexa, automatizar processos e introduzir interações exclusivas que se alinham a requisitos de negócios específicos ou expectativas do usuário. Garante que os formulários não só se adaptem a condições variáveis, mas também forneçam uma solução mais precisa e eficaz para casos de uso diversos.
Este artigo orienta você pelas etapas da criação de funções personalizadas para o Adaptive Forms usando componentes principais.
Considerações
-
O
parameter type
e oreturn type
não dão suporte aNone
. -
As funções não suportadas na lista de funções personalizadas são:
- Funções geradoras
- Funções assíncronas/Await
- Definições de método
- Métodos de classe
- Parâmetros padrão
- Parâmetros rest
Pré-requisitos para criar uma função personalizada
Antes de começar a adicionar uma função personalizada ao Adaptive Forms, verifique se você tem o seguinte:
Software:
-
Editor de Texto sem Formatação (IDE): embora qualquer editor de texto sem formatação possa funcionar, um IDE (Ambiente de Desenvolvimento Integrado) como o Microsoft Visual Studio Code oferece recursos avançados para facilitar a edição.
-
Git: este sistema de controle de versão é necessário para gerenciar alterações de código. Se não estiver instalado, baixe-o de https://git-scm.com.
Criar uma função personalizada
Crie uma biblioteca do cliente para chamar funções personalizadas no editor de regras. Para obter mais informações, consulte Usando bibliotecas do lado do cliente.
As etapas para criar funções personalizadas são:
Criar uma biblioteca do cliente create-client-library
É possível adicionar funções personalizadas adicionando uma biblioteca do cliente. Para criar uma biblioteca do cliente, execute as seguintes etapas:
Clonar o Repositório
Clonar o Repositório as a Cloud Service do AEM Forms:
-
Abra a linha de comando ou a janela do terminal.
-
Navegue até o local desejado na máquina em que deseja armazenar o repositório.
-
Execute o seguinte comando para clonar o repositório:
git clone [Git Repository URL]
Este comando faz o download do repositório e cria uma pasta local do repositório clonado no computador. Neste guia, nos referimos a essa pasta como o [diretório do projeto AEMaaCS].
Adicionar uma pasta da biblioteca do cliente
Para adicionar uma nova pasta da biblioteca do cliente ao [diretório do projeto AEMaaCS], siga estas etapas:
-
Abra o [diretório do projeto AEMaaCS] em um editor.
-
Localizar
ui.apps
. -
Adicionar nova pasta. Por exemplo, adicione uma pasta chamada
experience-league
. -
Navegue até a pasta
/experience-league/
e adicione umClientLibraryFolder
. Por exemplo, crie uma pasta da biblioteca do cliente chamadacustomclientlibs
.Location is: [AEMaaCS project directory]/ui.apps/src/main/content/jcr_root/apps/
Adicionar arquivos e pastas à pasta da Biblioteca do Cliente
Adicione o seguinte à pasta da biblioteca do cliente adicionada:
- arquivo .content.xml
- arquivo js.txt
- pasta js
Location is: [AEMaaCS project directory]/ui.apps/src/main/content/jcr_root/apps/experience-league/customclientlibs/
-
Em
.content.xml
, adicione as seguintes linhas de código:code language-javascript <?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="cq:ClientLibraryFolder" categories="[customfunctionscategory]"/>
note note NOTE Você pode escolher qualquer nome para a propriedade client library folder
ecategories
. -
Em
js.txt
, adicione as seguintes linhas de código:code language-javascript #base=js function.js
-
Na pasta
js
, adicione o arquivo javascript comofunction.js
, o que inclui as funções personalizadas:code language-javascript /** * Calculates Age * @name calculateAge * @param {object} field * @return {string} */ function calculateAge(field) { var dob = new Date(field); var now = new Date(); var age = now.getFullYear() - dob.getFullYear(); var monthDiff = now.getMonth() - dob.getMonth(); if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < dob.getDate())) { age--; } return age; }
-
Salve os arquivos.
Incluir a nova pasta no filter.xml:
-
Navegue até o arquivo
/ui.apps/src/main/content/META-INF/vault/filter.xml
no seu [diretório do projeto AEMaaCS]. -
Abra o arquivo e adicione a seguinte linha no final:
<filter root="/apps/experience-league" />
-
Salve o arquivo.
Implante a pasta da biblioteca do cliente recém-criada no seu ambiente AEM
Implante o AEM as a Cloud Service, [diretório do projeto AEMaaCS], no seu ambiente Cloud Service. Para implantar no ambiente de Cloud Service:
-
Confirmar as alterações
- Adicione, confirme e envie as alterações no repositório usando os comandos abaixo:
code language-javascript git add . git commit -a -m "Adding custom functions" git push
-
Implante o código atualizado:
- Acione uma implantação do seu código por meio do pipeline de pilha completa existente. Isso cria e implanta automaticamente o código atualizado.
Se você ainda não tiver configurado um pipeline, consulte o manual sobre como configurar um pipeline para o AEM Forms as a Cloud Service.
Depois que o pipeline for executado com êxito, a função personalizada adicionada à biblioteca do cliente ficará disponível em seu editor de regras de Formulário adaptável.
Adicionar a biblioteca do cliente a um Formulário adaptável use-custom-function
Depois de implantar a biblioteca do cliente no ambiente do Forms CS, use os recursos dela no Formulário adaptável. Para adicionar a biblioteca do cliente no Formulário adaptável
-
Abra o formulário no modo de edição. Para abrir um formulário no modo de edição, selecione um formulário e selecione Editar.
-
Abra o navegador Conteúdo e selecione o componente Contêiner do Guia do seu Formulário adaptável.
-
Clique no ícone de propriedades do Guia Contêiner
-
Abra a guia Básico e selecione o nome da categoria da biblioteca do cliente na lista suspensa (neste caso, selecione
customfunctionscategory
).note note NOTE É possível adicionar várias categorias especificando uma lista separada por vírgulas no campo Categoria da biblioteca do cliente. -
Clique em Concluído.
Você pode usar a função personalizada no editor de regras de um Formulário Adaptável usando as anotações do JavaScript.
Uso de uma função personalizada em um Formulário adaptável
Em um Formulário adaptável, você pode usar funções personalizadas no editor de regras. Vamos adicionar o seguinte código ao arquivo JavaScript (arquivo Function.js
) para calcular a idade com base na Data de Nascimento (AAAA-MM-DD). Crie uma função personalizada como calculateAge()
que use a data de nascimento como entrada e retorne a idade:
/**
* Calculates Age
* @name calculateAge
* @param {object} field
* @return {string}
*/
function calculateAge(field) {
var dob = new Date(field);
var now = new Date();
var age = now.getFullYear() - dob.getFullYear();
var monthDiff = now.getMonth() - dob.getMonth();
if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < dob.getDate())) {
age--;
}
return age;
}
No exemplo acima, quando o usuário insere a data de nascimento no formato (AAAA-MM-DD), a função personalizada calculateAge
é invocada e retorna a idade.
Vamos visualizar o formulário para observar como as funções personalizadas são implementadas por meio do editor de regras:
Recursos de funções personalizadas
As funções personalizadas em formulários AEM oferecem uma solução robusta para estender e personalizar a funcionalidade de seus formulários. Você pode usar as funções personalizadas para atender às necessidades específicas de sua organização.
Essas funções oferecem suporte a várias funcionalidades, incluindo o trabalho com campos específicos, o uso de campos globais e operações assíncronas, além de incorporar mecanismos de armazenamento em cache. Essa flexibilidade garante que os formulários possam se adaptar a requisitos complexos e fornecer uma experiência do usuário eficiente e personalizada. Ao utilizar esses recursos avançados, você pode aprimorar as interações de formulários e otimizar o desempenho, tornando seus formulários AEM mais funcionais e ágeis.
Vamos analisar os recursos de funções personalizadas.
Suporte assíncrono em funções personalizadas support-of-async-functions
Você pode implementar funções assíncronas no editor de regras usando funções personalizadas. Para obter orientação sobre como fazer isso, consulte o artigo Uso de funções assíncronas em um Formulário adaptável.
Suporte a objetos de escopo de campo e global em funções personalizadas support-field-and-global-objects
Os objetos Field referem-se aos componentes ou elementos individuais em um formulário, como campos de texto e caixas de seleção. O objeto Globals contém variáveis somente leitura, como instância de formulário, instância de campo de destino e métodos para fazer modificações de formulário em funções personalizadas.
param {scope} globals
deve ser o último parâmetro e não é exibido no editor de regras de um Formulário adaptável.Para obter mais informações sobre objetos de escopo, consulte o artigo Objetos de escopo em funções personalizadas.
Suporte de cache na função personalizada
O Forms adaptável implementa o armazenamento em cache de funções personalizadas para melhorar o tempo de resposta ao recuperar a lista de funções personalizadas no editor de regras. Uma mensagem como Fetched following custom functions list from cache
aparece no arquivo error.log
.
Caso as funções personalizadas sejam modificadas, o armazenamento em cache é invalidado e é analisado.
Resolução de problemas
-
Se o arquivo JavaScript que contém o código para funções personalizadas tiver um erro, as funções personalizadas não serão listadas no editor de regras de um Formulário adaptável. Para verificar a lista de funções personalizadas, você pode navegar até o arquivo
error.log
para localizar o erro. No caso de um erro, a lista de funções personalizadas aparece vazia:Caso não haja erro, as funções personalizadas são buscadas e aparecem no arquivo
error.log
. Uma mensagem comoFetched following custom functions list
aparece no arquivoerror.log
:
Próxima etapa
Vamos ver vários exemplos de funções personalizadas para um Formulário adaptável com base nos Componentes principais.
Consulte também
- Introdução ao Editor de regras para o Forms adaptável com base nos Componentes principais
- Tipos de operadores e eventos no editor de regras de um Formulário adaptável com base nos Componentes principais
- Interface do usuário do Editor de regras para o Forms adaptável com base nos Componentes principais
- Casos de uso diferentes do Editor de regras para um formulário adaptável baseado em componentes principais
- Diferença em várias edições do editor de regras
- Uso de funções assíncronas em um Formulário adaptável
- Aprimoramentos do Serviço de chamada no Editor de regras visuais para formulários com base nos Componentes principais
- Introdução às funções personalizadas para o Forms adaptável com base nos Componentes principais
- Criar uma função personalizada para um formulário adaptável com base nos Componentes principais
- Objeto de escopo em funções personalizadas
- Exemplos de desenvolvimento e uso de uma função personalizada