Comparteix a través de


Gestió d'errors

Power Fx admet la gestió d'errors a nivell de fórmula. Aquesta funció està activada per defecte per a totes les aplicacions noves. Tanmateix, algunes aplicacions antigues poden tenir-lo desactivat a la configuració de l'aplicació. Recomanem mantenir aquesta funció activada.

Per comprovar si aquesta funció està activada:

  1. Obre una aplicació de llenç per editar.
  2. Ves a la pestanyaActualitzacions>de Configuració>Retirada.
  3. Assegura't que desactivar la gestió a nivell de fórmula estigui desactivada.

Quan aquesta opció està activada, pots utilitzar fórmules com IfError, IsError, Error, i IsBlankorError. Aquestes funcions t'ajuden a detectar errors, proporcionar valors alternatius o prendre accions específiques basades en l'error. Quan actives aquesta configuració, pots escriure valors nuls o en blanc a les fonts de dades. Quan desactives aquesta funció, els errors es retornen com a valors en blanc.

Gestió d'errors de validació

Aquestes funcions ajuden a validar entrades com ara formats incorrectes o camps obligatoris. Utilitzeu If declaracions o funcions com IsBlank i IsError per validar l'entrada de l'usuari. Proporcioneu missatges d'error clars i eviteu el processament fins que es corregeixi l'entrada.

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

Gestió d'errors de la funció de pedaç

De manera similar a l'exemple anterior, Error les funcions ajuden a detectar errors mentre es pedeixen dades a una font de dades. La Patch funció informa d'errors de dues maneres.

Pot retornar un valor d'error com a resultat de les operacions.

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

Pots detectar errors utilitzant IsError i substituint-los o suprimint-los utilitzant 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)
)

Gestió d'errors de formularis

Quan utilitzeu Formularis per enviar dades mitjançant la SubmitForm funció, utilitzeu la propietat OnFailure de control de Formularis per notificar als usuaris missatges d'error.

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

Missatge d'error personalitzat utilitzant la propietat OnError

La propietat Power Apps OnError captura tots els errors no gestionats a la teva aplicació. Utilitzant aquesta OnError propietat, pots executar una expressió cada vegada que l'aplicació trobi un error no gestionat. Per exemple, pots emmagatzemar l'error en una variable o utilitzar una funció per substituir IfError l'error per un altre valor. Per utilitzar la OnError propietat, afegeix-la a l'aplicació on vols gestionar errors. Després, escriu una fórmula a la OnError caixa de propietats per especificar el missatge d'error que vols mostrar.

App.OnError No es pot substituir l'error com IfError si fos possible. Quan App.OnError s'executa, l'error ja s'ha produït i el resultat ja ha passat per altres fórmules. App.OnError Només controla com es reporta l'error a l'usuari final. També proporciona una manera perquè el fabricant pugui registrar l'error si vol.

Aquest codi pot App.OnError ajudar a localitzar l'origen de l'error:

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

Pas següent