Messaggi di errore di convalida standard per moduli adattivi

I moduli adattivi convalidano gli input forniti nei campi in base a criteri di convalida predefiniti. I criteri di convalida fanno riferimento ai valori di input accettabili per i campi di un modulo adattivo. È possibile impostare i criteri di convalida in base all'origine dati utilizzata con il modulo adattivo. Ad esempio, se si utilizzano i servizi Web RESTful come origine dati, è possibile definire i criteri di convalida in un file di definizione Swagger.

Se i valori immessi soddisfano i criteri di convalida, i valori vengono inviati all'origine dati. In caso contrario, nel modulo adattivo viene visualizzato un messaggio di errore.

Come per questo approccio, i moduli adattivi possono ora integrarsi con i servizi personalizzati per eseguire le convalide dei dati. Se i valori di input non soddisfano i criteri di convalida e il messaggio di errore di convalida restituito dal server è nel formato di messaggio standard, i messaggi di errore vengono visualizzati a livello di campo nel modulo.

Se i valori di input non soddisfano i criteri di convalida e il messaggio di errore convalida server non è nel formato di messaggio standard, i moduli adattivi forniscono un meccanismo per trasformare i messaggi di errore di convalida in un formato standard in modo che siano visualizzati a livello di campo nel modulo. Potete trasformare il messaggio di errore nel formato standard utilizzando uno dei due metodi seguenti:

  • Aggiunta di un gestore errori personalizzato per l'invio di moduli adattivi
  • Aggiunta di un gestore personalizzato all'azione di richiamo del servizio tramite Editor regole

Questo articolo descrive il formato standard dei messaggi di errore convalida e le istruzioni per trasformare i messaggi di errore da un formato personalizzato a quello standard.

Formato del messaggio di errore convalida standard

Nei moduli adattivi sono visualizzati gli errori a livello di campo se i messaggi di errore convalida server sono nel seguente formato standard:

   {
    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>
}

Dove:

  • errorCausedBy descrive il motivo dell'errore
  • errors menzionare l'espressione SOM dei campi che non hanno soddisfatto i criteri di convalida insieme al messaggio di errore di convalida
  • originCode contiene il codice di errore restituito dal servizio esterno
  • originMessage contiene i dati di errore non elaborati restituiti dal servizio esterno

Configurare l'invio di moduli adattivi per aggiungere gestori personalizzati

Se il messaggio di errore convalida server non è visualizzato nel formato standard, è possibile abilitare l'invio asincrono e aggiungere un gestore errori personalizzato per l'invio di moduli adattivi per convertire il messaggio in un formato standard.

Configurare l'invio asincrono del modulo adattivo

Prima di aggiungere un gestore personalizzato, è necessario configurare il modulo adattivo per l'invio asincrono. Effettuate i seguenti passaggi:

  1. In modalità di creazione di moduli adattivi, selezionare l'oggetto Contenitore modulo e toccare proprietà del modulo adattivo per aprirne le proprietà.

  2. Nella sezione delle proprietà Invia, abilitare Usa invio asincrono.

  3. Selezionare Revoca sul server per convalidare i valori dei campi di input sul server prima dell'invio.

  4. Selezionate l’azione Invia:

    • Selezionare Invia utilizzando Form Data Model e selezionare il modello dati appropriato, se si utilizza RESTful Web Service based form data model come origine dati.
    • Selezionare Invia all'endpoint REST e specificare l' URL/percorso di reindirizzamento, se si utilizzano i servizi Web RESTful come origine dati.

    proprietà di invio dei moduli adattivi

  5. Toccate Salva per salvare le proprietà.

Aggiunta di un gestore errori personalizzato per l'invio di moduli adattivi

AEM Forms fornisce handler out-of-the-box per l'invio di moduli con esito positivo e errore. I gestori sono funzioni lato client che vengono eseguite in base alla risposta del server. Quando un modulo viene inviato, i dati vengono trasmessi al server per la convalida, che restituisce una risposta al client con informazioni sull'evento success o error per l'invio. Le informazioni vengono trasmesse come parametri al gestore interessato per eseguire la funzione.

Per aggiungere un gestore errori personalizzato all'invio di moduli adattivi, eseguire i passaggi seguenti:

  1. Aprite il modulo adattivo in modalità di creazione, selezionate un oggetto modulo qualsiasi e toccate per aprire l'editor delle regole.
  2. Selezionare Form nella struttura degli oggetti modulo, quindi toccare Crea.
  3. Selezionare Errore in Invio dall'elenco a discesa Evento.
  4. Scrivete una regola per convertire la struttura di errore personalizzata nella struttura di errore standard e toccate Done per salvare la regola.

Di seguito è riportato un esempio di codice per convertire una struttura di errore personalizzata nella struttura di errore standard:

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);
    }
}

In var som_map è elencata l'espressione SOM dei campi modulo adattivi che si desidera trasformare nel formato standard. Per visualizzare l'espressione SOM di qualsiasi campo in un modulo adattivo, toccate il campo e selezionate Visualizza espressione SOM.

Utilizzando questo handler di errori personalizzato, il modulo adattivo converte i campi elencati in var som_map nel formato di messaggio di errore standard. Di conseguenza, i messaggi di errore convalida vengono visualizzati a livello di campo nel modulo adattivo.

Aggiunta di un gestore personalizzato tramite l'azione Servizio di chiamata

Per aggiungere un gestore di errori per convertire una struttura di errore personalizzata nella struttura di errore standard, eseguire la procedura seguente utilizzando l'azione del servizio di chiamata Editor regole:

  1. Aprite il modulo adattivo in modalità di creazione, selezionate un oggetto modulo e toccate Editor regole per aprire l'editor delle regole.
  2. Toccate Crea.
  3. Creare una condizione nella sezione When della regola. Ad esempio, quando [Nome del campo] viene modificato. Selezionare viene modificato dall'elenco a discesa Seleziona stato per ottenere questa condizione.
  4. Nella sezione Quindi, selezionare Richiama il servizio dall'elenco a discesa Seleziona azione.
  5. Selezionare un servizio Post e i relativi binding dei dati dalla sezione Input. Ad esempio, se desiderate convalidare i campi Name, ID e Status nel modulo adattivo, selezionate un servizio Post (animale domestico) e selezionate pet.name, pet.id e pet.status nella sezione Input.

Come risultato di questa regola, i valori inseriti per i campi Name, ID e Status vengono convalidati non appena il campo definito al punto 2 viene modificato e si esce dal campo del modulo.

  1. Selezionare Editor di codice dall'elenco a discesa di selezione della modalità.

  2. Toccate Modifica codice.

  3. Elimina la riga seguente dal codice esistente:

    guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs);
    
  4. Scrivete una regola per convertire la struttura di errore personalizzata nella struttura di errore standard e toccate Done per salvare la regola.
    Ad esempio, aggiungete il seguente codice di esempio alla fine per convertire una struttura di errore personalizzata nella struttura di errore standard:

    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);
    

    In var som_map è elencata l'espressione SOM dei campi modulo adattivi che si desidera trasformare nel formato standard. Per visualizzare l'espressione SOM di qualsiasi campo in un modulo adattivo, toccate il campo e selezionate Visualizza espressione SOM dal menu Altre opzioni (…).

    Assicurarsi di copiare la riga seguente del codice di esempio nel gestore errori personalizzato:

    guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, null, errorHandler);
    

    L'API executeOperation include i parametri null e errorHandler basati sul nuovo gestore di errori personalizzato.

    Utilizzando questo handler di errori personalizzato, il modulo adattivo converte i campi elencati in var som_map nel formato di messaggio di errore standard. Di conseguenza, i messaggi di errore convalida vengono visualizzati a livello di campo nel modulo adattivo.

In questa pagina