Power Fx에는 수식 수준 오류를 처리할 수 있는 프리뷰 기능이 포함되어 있습니다. 기본적으로 이 기능은 설정에서 켜져 있습니다.
이 설정은 IfError, IsError, Error 및 IsBlankorError와 같은 수식에 대한 액세스를 제공합니다. 이러한 함수를 사용하면 오류를 감지하거나, 대체 값을 제공하거나, 오류에 따라 특정 작업을 수행할 수 있습니다.
유효성 검사 오류 처리
이러한 함수는 잘못된 형식 또는 필수 필드와 같은 입력의 유효성을 검사하는 데 도움이 됩니다.
If 문이나 IsBlank 및 IsError와 같은 함수를 사용하여 사용자 입력의 유효성을 검사합니다. 명확한 오류 메시지를 제공하고 입력이 수정될 때까지 추가 처리를 방지합니다.
If( IsBlank(TextInput.Text),
Notify("Field cannot be blank",
NotificationType.Error),
// Continue with processing
)
Patch 함수 오류 처리
이전 예제와 마찬가지로 Error 함수는 데이터를 데이터 원본에 패치하는 동안 오류를 포착하는 데 도움이 됩니다. 이 Patch 함수는 두 가지 방법으로 오류를 보고합니다.
작업 결과로 오류 값을 반환할 수 있습니다.
UpdateContext(
{
result : Patch(
Feeds,
Defaults(Feeds),
{
createdon: Now(),
crde8_content: TextInput1_1.Text
cr9ce_imageurl: filename
}
)
}
)
IsError를 사용하여 오류를 감지하고 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)
)
양식 오류 처리
SubmitForm 함수를 사용하여 Forms에서 데이터를 제출하는 경우, Form 컨트롤 속성 OnFailure를 사용하여 사용자에게 오류 메시지를 알립니다.
// 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);
OnError 속성이 포함된 사용자 지정 오류 메시지
이 Power Apps OnError 속성을 사용하면 앱에서 처리되지 않은 모든 오류를 캡처할 수 있습니다.
OnError 속성을 사용하면 앱에서 오류를 처리하지 못할 때마다 실행되는 식을 실행할 수 있습니다(예: 변수에 저장하거나 IfError와 같은 함수를 사용하여 오류를 다른 값으로 대체).
OnError 속성을 사용하려면 해당 속성을 적용하려는 앱에 추가해야 합니다. 그런 다음 OnError 속성 상자에 수식을 작성하여 표시할 오류 메시지를 지정할 수 있습니다.
App.OnError는 IfError와 같은 방식으로 오류를 바꿀 수 없다는 점에 유의해야 합니다.
App.OnError가 실행되는 시점에서는 오류가 이미 발생했으며, 그 결과는 다른 수식을 통해 전파되었습니다.
App.OnError는 오류가 최종 사용자에게 보고되는 방식만 제어하고, 원하는 경우 제작자가 오류를 기록할 수 있는 후크를 제공합니다.
App.OnError의 이 코드는 오류의 원인을 찾는 데 도움이 될 수 있습니다.
Notify(
Concatenate(
FirstError.Message,
", Observed: ",
FirstError.Observed,
", Source: ",
FirstError.Source
),
NotificationType.Error
)