Os formulários adaptáveis validam as entradas fornecidas nos campos com base em um critério de validação predefinido. Os critérios de validação se referem aos valores de entrada aceitáveis para campos em um formulário adaptável. É possível definir os critérios de validação com base na fonte de dados usada com o formulário adaptável. Por exemplo, se você usar os serviços Web RESTful como a fonte de dados, poderá definir os critérios de validação em um arquivo de definição Swagger.
Se os valores de entrada atenderem aos critérios de validação, eles serão enviados para a fonte de dados. Caso contrário, o formulário adaptativo exibirá uma mensagem de erro.
Semelhante a essa abordagem, os formulários adaptáveis agora podem se integrar aos serviços personalizados para executar validações de dados. Se os valores de entrada não atenderem aos critérios de validação e a mensagem de erro de validação retornada pelo servidor estiver no formato de mensagem padrão, as mensagens de erro serão exibidas no nível do campo no formulário.
Se os valores de entrada não atenderem aos critérios de validação e a mensagem de erro de validação do servidor não estiver no formato de mensagem padrão, os formulários adaptativos fornecerão um mecanismo para transformar as mensagens de erro de validação em um formato padrão, de modo que sejam exibidas no nível do campo no formulário. É possível transformar a mensagem de erro no formato padrão usando qualquer um dos dois métodos a seguir:
Este artigo descreve o formato padrão para as mensagens de erro de validação e as instruções para transformar as mensagens de erro de um formato personalizado para o padrão.
Os formulários adaptáveis exibem os erros no nível do campo se as mensagens de erro de validação do servidor estiverem no seguinte formato padrão:
{
errorCausedBy : "SERVER_SIDE_VALIDATION/SERVICE_INVOCATION_FAILURE"
errors : [
{
somExpression : <somexpr>
errorMessage / errorMessages : <validationMsg> / [<validationMsg>, <validationMsg>]
}
]
originCode : <target error Code>
originMessage : <unstructured error message returned by service>
}
Em que:
errorCausedBy
descreve o motivo da falhaerrors
mencionar a expressão SOM dos campos que falharam nos critérios de validação junto com a mensagem de erro de validaçãooriginCode
contém o código de erro retornado pelo serviço externooriginMessage
contém os dados de erro brutos retornados pelo serviço externoSe a mensagem de erro de validação do servidor não for exibida no formato padrão, você poderá ativar o envio assíncrono e adicionar um manipulador de erros personalizado no envio do formulário adaptável para converter a mensagem em um formato padrão.
Antes de adicionar o manipulador personalizado, é necessário configurar o formulário adaptável para envio assíncrono. Execute as seguintes etapas:
No modo de criação de formulário adaptável, selecione o objeto Container de formulário e toque em para abrir suas propriedades.
Na seção de propriedades Submission, ative Utilizar submissão assíncrona.
Selecione Revalidar no servidor para validar os valores de campo de entrada no servidor antes do envio.
Selecione a Ação Enviar:
Toque em para salvar as propriedades.
A AEM Forms fornece manipuladores de erros e sucesso prontos para uso para envios de formulário. Os manipuladores são funções do lado do cliente que são executadas com base na resposta do servidor. Quando um formulário é submetido, os dados são transmitidos ao servidor para validação, o que retorna uma resposta ao cliente com informações sobre o evento bem-sucedido ou erro para o envio. As informações são passadas como parâmetros para o manipulador relevante para executar a função.
Execute as seguintes etapas para adicionar o manipulador de erros personalizado no envio do formulário adaptável:
A seguir está um exemplo de código para converter uma estrutura de erro personalizada para a estrutura de erro padrão:
var data = $event.data;
var som_map = {
"id": "guide[0].guide1[0].guideRootPanel[0].Pet[0].id_1[0]",
"name": "guide[0].guide1[0].guideRootPanel[0].Pet[0].name_2[0]",
"status": "guide[0].guide1[0].guideRootPanel[0].Pet[0].status[0]"
};
var errorJson = {};
errorJson.errors = [];
if (data) {
if (data.originMessage) {
var errorData;
try {
errorData = JSON.parse(data.originMessage);
} catch (err) {
// not in json format
}
if (errorData) {
Object.keys(errorData).forEach(function(key) {
var som_key = som_map[key];
if (som_key) {
var error = {};
error.somExpression = som_key;
error.errorMessage = errorData[key];
errorJson.errors.push(error);
}
});
}
window.guideBridge.handleServerValidationError(errorJson);
} else {
window.guideBridge.handleServerValidationError(data);
}
}
O var som_map
lista a expressão SOM dos campos de formulário adaptáveis que você deseja transformar no formato padrão. Você pode visualização a expressão SOM de qualquer campo em um formulário adaptável tocando no campo e selecionando Expressão SOM da Visualização.
Usando esse manipulador de erros personalizado, o formulário adaptativo converte os campos listados em var som_map
para o formato de mensagem de erro padrão. Como resultado, as mensagens de erro de validação são exibidas no nível do campo no formulário adaptável.
Execute as seguintes etapas para adicionar o manipulador de erros para converter uma estrutura de erro personalizada na estrutura de erro padrão usando a ação Chamar serviço do Editor de regras:
Como resultado dessa regra, os valores inseridos para os campos Name, ID e Status são validados, assim que o campo definido na etapa 2 é alterado e você sai do campo no formulário.
Selecione Editor de código na lista suspensa de seleção de modo.
Toque em Editar código.
Exclua a seguinte linha do código existente:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs);
Grave uma regra para converter a estrutura de erro personalizada para a estrutura de erro padrão e toque em Done para salvar a regra.
Por exemplo, adicione o seguinte código de amostra no final para converter uma estrutura de erro personalizada para a estrutura de erro padrão:
var errorHandler = function(jqXHR, data) {
var som_map = {
"id": "guide[0].guide1[0].guideRootPanel[0].Pet[0].id_1[0]",
"name": "guide[0].guide1[0].guideRootPanel[0].Pet[0].name_2[0]",
"status": "guide[0].guide1[0].guideRootPanel[0].Pet[0].status[0]"
};
var errorJson = {};
errorJson.errors = [];
if (data) {
if (data.originMessage) {
var errorData;
try {
errorData = JSON.parse(data.originMessage);
} catch (err) {
// not in json format
}
if (errorData) {
Object.keys(errorData).forEach(function(key) {
var som_key = som_map[key];
if (som_key) {
var error = {};
error.somExpression = som_key;
error.errorMessage = errorData[key];
errorJson.errors.push(error);
}
});
}
window.guideBridge.handleServerValidationError(errorJson);
} else {
window.guideBridge.handleServerValidationError(data);
}
}
};
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, null, errorHandler);
O var som_map
lista a expressão SOM dos campos de formulário adaptáveis que você deseja transformar no formato padrão. Você pode visualização a expressão SOM de qualquer campo em um formulário adaptável tocando no campo e selecionando Expressão SOM Visualização no menu Mais opções (…).
Certifique-se de copiar a seguinte linha do código de amostra para o manipulador de erros personalizado:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, null, errorHandler);
A API executeOperation inclui os parâmetros null
e errorHandler
com base no novo manipulador de erros personalizado.
Usando esse manipulador de erros personalizado, o formulário adaptativo converte os campos listados em var som_map
para o formato de mensagem de erro padrão. Como resultado, as mensagens de erro de validação são exibidas no nível do campo no formulário adaptável.