Show Menu
ARGOMENTI×

Messaggi di errore di convalida standard per i 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 di moduli adattivi

Prima di aggiungere un gestore personalizzato, è necessario configurare il modulo adattivo per l'invio asincrono. Esegui i seguenti passaggi:
  1. In modalità di creazione moduli adattivi, selezionare l'oggetto Contenitore modulo e toccare le proprietà adattivo per aprirne le proprietà.
  2. Nella sezione Proprietà invio , 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 il modello dati modulo e selezionare il modello dati appropriato, se si utilizza il modello dati modulo basato su servizi Web RESTful come origine dati.
    • Selezionare Invia a endpoint REST e specificare l'URL/percorso di reindirizzamento se si utilizzano i servizi Web RESTful come origine dati.
  5. Toccate per salvare le proprietà.

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

In AEM Forms sono inclusi i gestori di errori e di successo per l'invio dei moduli. 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 Modulo nella struttura Oggetti modulo e toccare Crea .
  3. Selezionare Errore nell&#39;invio dall'elenco a discesa Evento.
  4. Scrivete una regola per convertire la struttura di errore personalizzata nella struttura di errore standard e toccate Fine 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);
    }
}

L' var som_map elenco elenca 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 nel formato var som_map 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 errori per convertire una struttura di errore personalizzata nella struttura di errore standard, eseguire la procedura seguente utilizzando l'azione Servizio di chiamata dell'Editor regole :
  1. Aprite il modulo adattivo in modalità di creazione, selezionate un oggetto modulo qualsiasi e toccate Editor regole per aprire l'editor di regole.
  2. Toccate Crea .
  3. Creare una condizione nella sezione Quando della regola. Ad esempio, # viene modificato. Selezionate viene modificato dall’elenco a discesa Seleziona stato per ottenere questa condizione.
  4. Nella sezione Quindi , selezionare Richiama servizio dall'elenco a discesa Seleziona azione .
  5. Selezionare un servizio Post e i relativi binding dati dalla sezione Input . Ad esempio, se si desidera convalidare i campi Nome , ID e Stato nel modulo adattivo, selezionare un servizio Post (animale domestico) e quindi pet.name, pet.id e pet.status nella sezione Input .
Come risultato di questa regola, i valori inseriti per i campi Nome , ID e Stato 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 Fine 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);
    
    
    L' var som_map elenco elenca 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 null parametri e errorHandler i parametri basati sul nuovo gestore di errori personalizzato.
    Utilizzando questo handler di errori personalizzato, il modulo adattivo converte i campi elencati nel formato var som_map di messaggio di errore standard. Di conseguenza, i messaggi di errore convalida vengono visualizzati a livello di campo nel modulo adattivo.