Condividi tramite


Gestione degli errori

Power Fx supporta la gestione degli errori a livello di formula. Questa funzionalità è attivata per impostazione predefinita per tutte le nuove app. Tuttavia, alcune app meno recenti potrebbero averla disattivata nelle impostazioni dell'app. È consigliabile mantenere attivata questa funzionalità.

Per verificare se questa funzionalità è attivata:

  1. Aprire un'app canvas per modificarla.
  2. Passare alla scheda Impostazioni>Aggiornamenti>Ritirati.
  3. Assicurarsi che Disabilita la gestione a livello di formula sia disattivata.

Quando questa impostazione è abilitata, è possibile usare formule come IfError, IsErrorError, e IsBlankorError. Queste funzioni consentono di rilevare gli errori, fornire valori alternativi o eseguire azioni specifiche in base all'errore. Quando si attiva questa impostazione, è possibile scrivere valori Null o vuoti nelle origini dati. Quando si disattiva questa funzionalità, gli errori vengono restituiti come valori vuoti.

Gestione errori di convalida

Queste funzioni consentono di convalidare gli input, ad esempio i formati non corretti o i campi obbligatori. Utilizzare dichiarazioni o funzioni If come IsBlank e IsError per convalidare l'input dell'utente. Fornire messaggi di errore chiari e impedire ulteriori elaborazioni finché l'input non viene corretto.

If( IsBlank(TextInput.Text),
    Notify("Field cannot be blank", 
    NotificationType.Error),
    // Continue with processing
)

Gestione errori relativi alla funzione Patch

Analogamente all'esempio precedente, le funzioni Error aiutano a individuare gli errori mentre si applicano patch ai dati a una fonte di dati. La funzione Patch segnala gli errori in due modi.

Può restituire un valore di errore come risultato delle operazioni.

UpdateContext(
    {   
    result : Patch(
             Feeds,
             Defaults(Feeds),
             {
                 createdon: Now(),
                 crde8_content: TextInput1_1.Text
                 cr9ce_imageurl: filename
             }
        )
    }
)

È possibile rilevare gli errori usando IsError e sostituirli o eliminarli usando IfError.

IfError(result, Notify("There was an issue saving data" , NotificationType.Error));
IfError(result, Notify("There was an issue saving data" , & FirstError.Message, NotificationType.Error))

If(
    IsError(
        Patch(
            Feeds,
            Defaults(Feeds),
            {
                createdon: Now(),
                crde8_content: TextInput1_1.Txt,
                cr9ce_imageurl: filename        
            }
        )
    ),
    Notify("Error: There was an issue saving data", NotificationType.Error)
)

Gestione degli errori relativi ai moduli

Quando si utilizza Forms per inviare dati tramite la funzione SubmitForm, utilizzare la proprietà Controllo Modulo OnFailure per notificare agli utenti di messaggi di errore.

// OnSelect property of the form's submit button
SubmitForm(frm_SubmitData);

// OnSuccess property of the form
Navigate('Success Screen');

// OnFailure property of the form
Notify("Error: the invoice could not be created", NotificationType.Error);

Messaggio di errore personalizzato tramite la proprietà OnError

La proprietà Power Apps OnError acquisisce tutti gli errori non gestiti nell'app. Usando la OnError proprietà , è possibile eseguire un'espressione ogni volta che l'app rileva un errore non gestito. Ad esempio, è possibile archiviare l'errore in una variabile o usare una funzione come IfError per sostituire l'errore con un altro valore. Per usare la OnError proprietà , aggiungerla all'app in cui si vogliono gestire gli errori. Scrivere quindi una formula nella casella delle OnError proprietà per specificare il messaggio di errore che si desidera visualizzare.

App.OnError non può sostituire l'errore come IfError può. Quando App.OnError viene eseguito, l'errore si è già verificato e il risultato è già stato sottoposto ad altre formule. App.OnError controlla solo la modalità di segnalazione dell'errore all'utente finale. Fornisce inoltre un modo per consentire all'autore di registrare l'errore, se lo desiderano.

Questo codice su App.OnError può aiutare a individuare l'origine dell'errore:

Notify(
    Concatenate(
        FirstError.Message,
        ", Observed: ",
        FirstError.Observed,
        ", Source: ",
        FirstError.Source
    ),
    NotificationType.Error
)

Passaggio successivo