캔버스 앱에서 문제 격리
캔버스 앱을 사용하면 다양한 시각적 개체와 다양한 데이터 연결을 사용하여 앱을 디자인할 수 있습니다. IntelliSense 및 앱 검사기를 일반적인 문제에 대한 보호로 사용합니다. 모니터 및 변수 패널 이 디버깅에 도움이 될 수 있습니다.
다음은 캔버스 앱에서 문제를 격리하는 몇 가지 다른 기술입니다.
디버그 레이블을 사용하여 수식 검사
수식은 복잡할 수 있습니다. 문제가 발생하면 실패한 부분을 파악하기가 어려울 수 있습니다. 디버그 레이블은 수식의 여러 부분에 대한 결과를 확인하는 유용한 기술입니다.
디버그 레이블은 텍스트 속성이 관심 있는 수식으로 설정된 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 버그일 수 있습니다. 지원 요청을 통해 버그를 보고하고 다른 컨트롤을 해결 방법으로 사용할 수 있습니다.
다른 컨트롤 사용해 보기
특정 컨트롤에 문제가 있는지 확인하려면 입력 또는 출력의 데이터 형식이 동일한 다른 컨트롤을 사용해 보세요.
Boolean
선택 및 표
Date 및 DateTime
이미지 및 미디어
number
Text
모든 유형
다른 컨트롤에서 동일한 문제가 발생하는 경우 사용된 수식 또는 데이터 원본에 문제가 있습니다. 문제를 추가로 격리하려면 위의 디버깅 단계를 진행합니다.
특정 유형의 컨트롤에서만 문제가 발생하는 경우 컨트롤 버그일 수 있습니다. Microsoft에 버그를 보고할 수 있습니다.
다른 앱 구조 사용해 보기
수식은 다른 컨트롤 내의 컨트롤에 대해 다르게 동작할 수 있습니다. 예를 들어 갤러리 내의 컨트롤은 ThisItem을 사용할 수 있지만 갤러리 외부의 컨트롤은 사용할 수 없습니다. 갤러리 또는 구성 요소 외부의 컨트롤은 내부 컨트롤을 참조할 수 없습니다.
식별자의 다양한 가시성을 범위라고합니다. 다른 컨트롤을 포함하는 컨트롤은 새 범위를 도입합니다.
포함된 컨트롤 내에서 수식이 작동하지 않는 경우 범위 지정과 관련이 있을 수 있습니다. 컨테이너 외부에서 동일한 수식을 사용해 보세요.
예를 들어 갤러리 내의 레이블 컨트롤에는 각 레코드의 이름이 표시되지만 텍스트는 표시되지 않습니다. Label.Text 가 .로 설정됩니다 ThisItem.Name
. Gallery.Items 가 .로 설정됩니다 Products
.
범위 지정 문제인지 확인하려면 앱의 최상위 수준에 있는 갤러리 외부에 디버그 레이블을 삽입합니다. 데이터 세트First(Products).Name
의 첫 번째 레코드 이름을 표시하도록 Text 속성을 설정합니다.
디버그 레이블은 갤러리의 첫 번째 행과 동일한 결과를 가져야 합니다. 그렇지 않은 경우 지원 요청을 통해 보고할 수 있는 Power Apps의 범위 지정 버그일 수 있습니다. 반면에 둘 다 비어 있으면 데이터 원본에 문제가 있을 수 있습니다.
범위 지정 문제에 대한 몇 가지 가능한 해결 방법:
이전 버전으로 복원
앱을 크게 변경하지 않았고 다시 게시한 후 갑자기 작동이 중지된 경우 이전 버전으로 복원해 보세요. 다시 작동하는 경우 변경 내용을 검토하여 앱이 손상되었을 수 있는 사항을 확인합니다.
경우에 따라 새 버전의 Power Apps에서 버그가 도입될 수 있습니다. 반대로 새 버전은 버그 수정을 가져올 수 있습니다. Microsoft 지원 이전 작성 버전으로 되돌릴지 아니면 최신 버전으로 업그레이드해야 하는지를 권장할 수 있습니다. 직접 제작 버전을 변경하는 경우 권장되지 않는 버전에 대한 지원이 제한적입니다.
최소 재현 앱 만들기
최소 재현 앱을 만드는 프로세스에서는 복잡한 앱 에서 명확하지 않은 앱 구성 오류를 발견할 수 있습니다. 문제가 해결되지 않더라도 원인을 좁히고 문제를 다른 사람에게 더 쉽게 설명할 수 있습니다.