Power Fx는 수식 수준 오류 처리를 지원합니다. 이 기능은 모든 새 앱에 대해 기본적으로 설정되어 있습니다. 그러나 일부 이전 앱은 앱 설정에서 꺼져 있을 수 있습니다. 이 기능을 계속 켜두는 것이 좋습니다.
이 기능이 켜져 있는지 확인하려면 다음을 수행합니다.
- 편집할 캔버스 앱을 엽니다.
- 설정>업데이트>사용 중지 탭으로 이동합니다.
- 수식 수준 관리 사용 안 함이 꺼져 있는지 확인합니다.
이 설정을 사용하도록 설정하면 수식(예IfError: , IsError및 ErrorIsBlankorError)을 사용할 수 있습니다. 이러한 함수는 오류를 감지하거나, 대체 값을 제공하거나, 오류에 따라 특정 작업을 수행하는 데 도움이 됩니다. 이 설정을 켜면 데이터 원본에 null 또는 빈 값을 쓸 수 있습니다. 이 기능을 해제하면 오류가 빈 값으로 반환됩니다.
유효성 검사 오류 처리
이러한 함수는 잘못된 형식 또는 필수 필드와 같은 입력의 유효성을 검사하는 데 도움이 됩니다.
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 데이터를 제출할 때, 오류 메시지를 사용자에게 알리기 위해 양식 컨트롤 속성 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
)