隔離畫布應用程式中的問題
畫布應用程式可讓您設計具有許多不同視覺效果和各種數據連線的應用程式。 使用 IntelliSense 和 應用程式檢查工具 來防範常見問題。 [監視 ] 和 [ 變數] 面板 可協助您進行偵錯。
以下是在畫布應用程式中隔離問題的一些其他技巧。
使用偵錯標籤檢查公式
公式可能很複雜。 發生錯誤時,可能很難找出哪個部分失敗。 偵錯標籤是可查看公式不同部分結果的實用技術。
偵錯標籤是 標籤 ,其 Text 屬性設定為感興趣的公式。 它可讓您確切瞭解 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 & ", ")
提示
使用數據集時,偵錯數據表對於預覽記錄很有用。 此概念類似於偵錯標籤。 插入 Data 數據表 ,其 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 Bug。
如果結果具有文字,則可能是具有控件的Power Apps Bug。 您可以透過 支援要求 回報錯誤,並 使用不同的控 件作為因應措施。
嘗試不同的控制件
若要了解問題是否與特定控件有關,請嘗試使用具有相同輸入或輸出 數據類型的 不同控件。
布林值
選擇和數據表
Date 和 DateTime
影像和媒體
數字
Text
所有類型
- 將值轉換成文字之後的標籤
如果在不同的控件上發生相同的問題,則問題出在所使用的公式或數據源上。 請繼續進行上述的偵錯步驟,以進一步隔離問題。
如果問題只發生在特定類型的控制件上,則可能是控件錯誤。 您可以向 Microsoft 回報錯誤。
嘗試不同的應用程序結構
公式對於另一個控件內的控件可能會有不同的行為。 例如,資源庫 內的控 件可以使用 ThisItem, 但資源庫外的控件無法使用。 資源 庫 或 元件 外部的控件無法參考其中的控制件。
此標識碼的不同可見度稱為 範圍。 包含其他控制件的控制件會引入新的範圍。
如果公式無法在包含的控件內運作,則可能與範圍相關。 嘗試在容器外部使用相同的公式。
例如,資源庫內的標籤控件應該會顯示每筆記錄的名稱,但不會顯示任何文字。 Label.Text 設定為 ThisItem.Name
。 Gallery.Items 設定為 Products
。
若要檢查是否為範圍問題,請在應用程式最上層的 Gallery 外部插入偵錯標籤。 設定其 Text 屬性以顯示資料集第一筆記錄的名稱: First(Products).Name
。
偵錯標籤的結果應該與資源庫的第一列相同。 如果不是,可能是 Power Apps 的範圍錯誤,您可以透過 支援要求回報。 另一方面,如果兩者都是空白,則問題可能與數據源有關。
界定問題的一些可能因應措施:
- 將控件移到其容器外部
- 參考 全域或內容變數中的數據
- 使用 Patch 以避免使用 編輯表單 控制件
還原至舊版
如果您尚未對應用程式進行重大變更,而且它在重新發行之後突然停止運作,請嘗試 將它還原至舊版。 如果再次運作,請檢查所做的變更,以查看可能已中斷應用程式的專案。
有時候,新版本的 Power Apps 可能會引進 Bug。 相反地,新版本可能會帶來錯誤修正。 Microsoft 支援服務 可以建議您還原為較舊的撰寫版本,還是升級至較新的版本。 請記住,如果您自行變更撰寫版本,則不建議的版本支援有限。
建立最低重現應用程式
建立 最低重現應用程式 的程式可能會發現複雜應用程式不明顯的應用程式設定錯誤。 即使問題未修正,您還是可以縮小原因範圍,並讓其他人更輕鬆地解釋問題。
後續步驟
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應