다음을 통해 공유


캔버스 앱에서 문제 격리

캔버스 앱을 사용하면 다양한 시각적 개체와 다양한 데이터 연결을 사용하여 앱을 디자인할 수 있습니다. IntelliSense앱 검사기를 일반적인 문제에 대한 보호로 사용합니다. 모니터변수 패널은 디버깅에 도움이 될 수 있습니다.

캔버스 앱에서 문제를 격리하는 몇 가지 다른 기술은 다음과 같습니다.

디버그 레이블을 사용하여 수식 검사

수식은 복잡할 수 있습니다. 문제가 발생하면 실패한 부분을 파악하기가 어려울 수 있습니다. 디버그 레이블은 수식의 여러 부분의 결과를 확인하는 데 유용한 기술입니다.

디버그 레이블은 Text 속성이 관심 있는 수식으로 설정된 Label입니다. Power Apps에서 이러한 수식을 처리하는 방법을 정확하게 확인할 수 있습니다. 버그 범위를 지정하지 않도록 하려면 갤러리 및 양식과 같은 다른 컨트롤 외부에 디버그 레이블을 삽입합니다.

콤보 상자 컨트롤이 예상보다 적게 표시되고 드롭다운 옵션이 비어 있다고 상상해 보세요.

옵션이 드롭다운에 있어야 하는 빈 공간을 보여 주는 확장된 콤보 상자입니다.

콤보 상자가 올바르게 구성되었는지 확인합니다. 예를 들어 Items 속성은 아래의 복잡한 수식으로 설정됩니다.

AddColumns(
  GroupBy(
    Filter( Products, Rating > 4 ),
    "ProductType",
    "Details"
  ),
  "Total quantity",
  Sum( Details, Quantity )
)

가장 안쪽의 식 Filter( Products, Rating > 4 )으로 시작합니다. 디버그 레이블을 삽입하고 Text 속성을 설정하여 해당 식의 결과를 테스트합니다. 확인할 수 있는 몇 가지 유용한 정보:

  • 결과 수가 예상대로 표시되는지 확인합니다. CountRows( Filter( Products, Rating > 4 ) )
  • 첫 번째 결과를 검사하고 필터가 예상대로 작동하는지 확인합니다. "Rating of first result is " & First( Filter( Products, Rating > 4 ) ).Rating
  • 이름을 결합하여 결과를 확인합니다. Concat( Filter( Products, Rating > 4 ), ProductName & ", ")

데이터 세트로 작업할 때 디버그 테이블은 레코드를 미리 보는 데 유용합니다. 개념은 디버그 레이블과 유사합니다. Items 속성이 관심 있는 데이터 세트로 설정된 데이터 테이블을 삽입합니다.

데이터 세트의 성능을 향상시키려면 FirstN 및 LastN 함수 를 사용할 수 있습니다.

식이 올바르게 평가되었는지 확인한 후에는 다음 외부 식 GroupBy( Filter( Products, Rating > 4 ), "ProductType", "Details" )으로 이동할 수 있습니다. 체계적으로 진행하면 복잡한 식의 어떤 부분이 작동하지 않는지 확인할 수 있습니다.

빈 드롭다운 옵션을 사용하는 경우 DisplayFields 속성으로 시작합니다. 로 설정되어 있다고 상상해 보십시오 [ProductType]. 디버그 레이블을 사용하여 이 필드가 Power Apps에서 인식되고 텍스트가 포함되어 있는지 확인합니다. 모든 드롭다운 옵션은 비어 있으므로 레코드를 검사하기에 충분합니다. 첫 번째 레코드를 선택하고 해당 필드가 ProductType 무엇인지 살펴보겠습니다. 디버그 레이블을 다음으로 설정합니다.

First(
  AddColumns(
    GroupBy(
      Filter( Products, Rating > 4 ),
      "ProductType",
      "Details"
    ),
    "Total quantity",
    Sum( Details, Quantity )
  )
).ProductType

결과가 비어 있으면 다음이 될 수 있습니다.

  • 해당 레코드의 ProductType 필드는 실제로 비어 있습니다. 데이터 세트가 앱 외부에서 가져온 경우 Power Apps 외부에서 검사.
  • 하나 이상의 식이 작동하지 않습니다. 위에서 설명한 대로 세분화하여 좁히십시오. Power Apps 버그 또는 수식을 작성하는 실수일 수 있습니다.
  • 데이터가 Power Apps에 도달하지 않습니다. 네트워킹 문제, 데이터 원본 문제 또는 Power Apps 버그일 수 있습니다.

결과에 텍스트가 있는 경우 컨트롤이 있는 Power Apps 버그일 수 있습니다. 지원 요청을 통해 버그를 보고하고 다른 컨트롤을 해결 방법으로 사용할 수 있습니다.

다른 컨트롤 사용해 보기

문제가 특정 컨트롤에 있는지 확인하려면 입력 또는 출력의 데이터 형식 이 동일한 다른 컨트롤을 사용해 보세요.

부울

선택 및 표

Date 및 DateTime

이미지 및 미디어

숫자

텍스트

모든 형식

  • 레이블, 값을 텍스트로 변환한 후

다른 컨트롤에서 동일한 문제가 발생하면 사용된 수식 또는 데이터 원본에 문제가 있습니다. 위의 디버깅 단계를 진행하여 문제를 추가로 격리합니다.

특정 유형의 컨트롤에서만 문제가 발생하는 경우 컨트롤 버그일 수 있습니다. Microsoft에 버그를 보고할 수 있습니다.

다른 앱 구조 사용해 보기

수식은 다른 컨트롤 내의 컨트롤에 대해 다르게 동작할 수 있습니다. 예를 들어 갤러리 내의 컨트롤은 ThisItem 을 사용할 수 있지만 갤러리 외부의 컨트롤은 사용할 수 없습니다. 갤러리 또는 구성 요소 외부의 컨트롤은 내부의 컨트롤을 참조할 수 없습니다.

식별자의 이러한 다양한 표시 유형을 scope 호출합니다. 다른 컨트롤을 포함하는 컨트롤은 새 scope 도입합니다.

포함된 컨트롤 내에서 수식이 작동하지 않는 경우 범위 지정과 관련이 있을 수 있습니다. 컨테이너 외부에서 동일한 수식을 사용해 보세요.

예를 들어 갤러리 내의 레이블 컨트롤은 각 레코드의 이름을 표시해야 하지만 텍스트는 표시되지 않습니다. Label.Text 는 로 설정됩니다 ThisItem.Name. Gallery.Items 는 로 설정됩니다 Products.

갤러리에는 텍스트 대신 빈 공간이 표시됩니다. 속성 패널에는 갤러리의 레이블에 사용되는 수식이 표시됩니다.

범위 지정 문제인지 검사 하려면 앱의 최상위 수준에서 갤러리 외부에 디버그 레이블을 삽입합니다. 데이터 세트First(Products).Name의 첫 번째 레코드 이름을 표시하도록 Text 속성을 설정합니다.

디버그 레이블은 갤러리의 첫 번째 행과 동일한 결과를 가져야 합니다. 그렇지 않은 경우 지원 요청을 통해 보고할 수 있는 Power Apps 관련 버그일 수 있습니다. 반면에 둘 다 비어 있으면 데이터 원본에 문제가 있을 수 있습니다.

범위 지정 문제에 대한 몇 가지 가능한 해결 방법:

이전 버전으로 복원

앱을 크게 변경하지 않았고 다시 게시한 후 갑자기 작동이 중지된 경우 이전 버전으로 복원해 보세요. 다시 작동하는 경우 변경 내용을 검토하여 앱이 손상되었을 수 있는 사항을 확인합니다.

경우에 따라 새 버전의 Power Apps에서 버그가 도입될 수 있습니다. 반대로 새 버전은 버그 수정을 가져올 수 있습니다. Microsoft 지원 이전 작성 버전으로 되돌리기 또는 최신 버전으로 업그레이드할지 여부를 권장할 수 있습니다. 직접 제작 버전을 변경하는 경우 권장되지 않는 버전에 대한 지원이 제한적입니다.

최소 재현 앱 만들기

최소 재현 앱을 만드는 프로세스는 복잡한 앱에서 명확하지 않은 앱 구성 오류를 발견할 수 있습니다. 문제가 해결되지 않더라도 원인을 좁혀 다른 사람에게 문제를 더 쉽게 설명할 수 있었을 것입니다.

다음 단계

모니터를 사용하여 캔버스 앱 디버깅

참고 항목

일반 Power Apps 디버깅 전략