Compartir vía


Gestión de errores

Power Fx admite el control de errores de nivel de fórmula. Esta característica está activada de forma predeterminada para todas las aplicaciones nuevas. Sin embargo, algunas aplicaciones anteriores podrían tenerla desactivada en la configuración de la aplicación. Se recomienda mantener activada esta característica.

Para comprobar si esta característica está activada:

  1. Abra una aplicación de lienzo para su edición.
  2. Vaya a la pestaña Configuración>Actualizaciones>retiradas .
  3. Asegúrese de que la administración a nivel de fórmula esté desactivada.

Cuando esta configuración está habilitada, puede usar fórmulas como IfError, IsError, Errory IsBlankorError. Estas funciones le ayudan a detectar errores, proporcionar valores alternativos o realizar acciones específicas en función del error. Al activar esta configuración, puede escribir valores NULL o en blanco en orígenes de datos. Al desactivar esta característica, los errores se devuelven como valores en blanco.

Tratamiento de errores de validación

Estas funciones ayudan a validar entradas, como formatos incorrectos o campos obligatorios. Utilice If declaraciones o funciones como IsBlank y IsError para validar la entrada del usuario. Proporcione mensajes de error claros y evite el procesamiento posterior hasta que se corrija la entrada.

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

Gestión de errores de la función parche

Al igual que en el ejemplo anterior, las funciones Error ayudan a detectar errores mientras se introducen datos en una fuente de datos. La función Patch informa de los errores de dos maneras.

Puede devolver un valor de error como resultado de las operaciones.

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

Puede detectar errores mediante IsError y reemplazarlos o suprimirlos mediante 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ón de errores de formularios

Cuando use formularios para enviar datos mediante la función SubmitForm, use la propiedad de control de formulario OnFailure para notificar a los usuarios de los mensajes de 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);

Mensaje de error personalizado mediante la propiedad OnError

La propiedad Power Apps OnError captura todos los errores no controlados en la aplicación. Con la OnError propiedad , puede ejecutar una expresión cada vez que la aplicación encuentre un error no controlado. Por ejemplo, puede almacenar el error en una variable o usar una función como IfError para reemplazar el error por otro valor. Para usar la OnError propiedad , agréguela a la aplicación donde desea controlar los errores. A continuación, escriba una fórmula en el OnError cuadro de propiedades para especificar el mensaje de error que desea mostrar.

App.OnError no puede reemplazar el error como IfError puede. Cuando App.OnError se ejecuta, el error ya se ha producido y el resultado ya ha pasado por otras fórmulas. App.OnError solo controla cómo se notifica el error al usuario final. También proporciona una manera de que el creador registre el error si lo desea.

Este código en App.OnError puede ayudar a localizar el origen del error:

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

Siguiente paso