Delen via


Problemen in canvas-apps isoleren

Met Canvas-apps kunt u apps ontwerpen met tal van verschillende visuals en verschillende gegevensverbindingen. Gebruik IntelliSense en de app-controle als bescherming tegen veelvoorkomende problemen. Controleren en het deelvenster Variabelen kan u helpen met foutopsporing.

Hier volgen enkele andere technieken om problemen in een canvas-app te isoleren.

Formules met foutopsporingslabels inspecteren

Formules kunnen complex zijn. Als er iets misgaat, kan het lastig zijn om vast te stellen welk onderdeel is mislukt. Foutopsporingslabels zijn een handige techniek om de resultaten van verschillende onderdelen van een formule te bekijken.

Een foutopsporingslabel is een label waarvan de eigenschap Text is ingesteld op een interessante formule. Hiermee kunt u precies zien hoe Power Apps deze formules behandelt. Als u bereikfouten wilt voorkomen, voegt u het foutopsporingslabel in buiten andere besturingselementen, zoals Galerie en Formulier.

Stel dat een besturingselement keuzelijst met invoervak minder wordt weergegeven dan verwacht en dat de vervolgkeuzelijsten leeg zijn.

Uitgevouwen keuzelijst met invoervak, met een lege ruimte waarin opties in de vervolgkeuzelijst moeten worden weergegeven.

Controleer of de keuzelijst met invoervak juist is geconfigureerd. De eigenschap Items is bijvoorbeeld ingesteld op een complexe formule hieronder:

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

Begin met de binnenste expressie Filter( Products, Rating > 4 ). Voeg een foutopsporingslabel in en stel de eigenschap Text in om het resultaat van die expressie te testen. Enkele nuttige informatie om te controleren:

  • Controleer of het aantal resultaten is zoals verwacht: CountRows( Filter( Products, Rating > 4 ) )
  • Bekijk het eerste resultaat en controleer of het filter werkt zoals verwacht: "Rating of first result is " & First( Filter( Products, Rating > 4 ) ).Rating
  • Controleer de resultaten door hun namen te combineren: Concat( Filter( Products, Rating > 4 ), ProductName & ", ")

Tip

Wanneer u met gegevenssets werkt, zijn foutopsporingstabellen handig voor het bekijken van records. Het concept is vergelijkbaar met foutopsporingslabels. Voeg een gegevenstabel in met de eigenschap Items ingesteld op de gegevensset van belang.

U kunt de functies FirstN en LastN gebruiken voor betere prestaties met gegevenssets.

Zodra u hebt bevestigd dat een expressie correct is geëvalueerd, kunt u doorgaan naar de volgende buitenste expressie GroupBy( Filter( Products, Rating > 4 ), "ProductType", "Details" ). Door methodisch te werk te gaan, kunt u erachter komen welk deel van een complexe expressie niet werkt.

Wanneer u lege vervolgkeuzelijsten gebruikt, begint u met de eigenschap DisplayFields . Stel dat deze is ingesteld op [ProductType]. Gebruik een foutopsporingslabel om te controleren of dit veld wordt herkend door Power Apps en tekst bevat. Omdat alle vervolgkeuzelijsten leeg zijn, is het voldoende om een record te onderzoeken. Laten we de eerste record kiezen en zien wat het ProductType veld is. Stel het foutopsporingslabel in op:

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

Als het resultaat leeg is, kan dit zijn:

  • Het ProductType veld voor die record is echt leeg. Als de gegevensset van buiten de app afkomstig is, controleert u deze buiten Power Apps.
  • Een of meer expressies werken niet. U kunt het opsplitsen zoals hierboven is beschreven om deze te beperken. Het kan een Power Apps-fout zijn of een fout bij het schrijven van de formule.
  • Gegevens bereiken Power Apps niet. Dit kan een netwerkprobleem zijn, een probleem met de gegevensbron of een Power Apps-bug.

Als het resultaat tekst bevat, is het waarschijnlijk een Power Apps-fout met het besturingselement. U kunt de bug rapporteren via een ondersteuningsaanvraag en een ander besturingselement gebruiken als tijdelijke oplossing.

Een ander besturingselement proberen

Probeer een ander besturingselement te gebruiken met hetzelfde gegevenstype voor invoer of uitvoer om erachter te komen of het probleem te maken heeft met een specifiek besturingselement.

Booleaanse waarde

Keuze en tabel

Datum en datum/tijd

Afbeelding en media

Nummer

Tekst

Alle typen

  • Label, na het converteren van een waarde naar tekst

Als hetzelfde probleem zich voordoet in een ander besturingselement, ligt het probleem bij de gebruikte formules of gegevensbron. Ga verder met de bovenstaande stappen voor foutopsporing om het probleem verder te isoleren.

Als het probleem zich alleen voordoet bij een bepaald type besturingselement, is het waarschijnlijk een controlefout. U kunt de fout melden bij Microsoft.

Een andere app-structuur proberen

Formules kunnen zich anders gedragen voor besturingselementen in een ander besturingselement. Besturingselementen in een galerie kunnen bijvoorbeeld ThisItem gebruiken, maar besturingselementen buiten de galerie niet. Besturingselementen buiten een galerie of onderdeel kunnen niet verwijzen naar de besturingselementen binnen.

Deze verschillende zichtbaarheid van id's wordt bereik genoemd. Besturingselementen die andere besturingselementen bevatten, introduceren een nieuw bereik.

Als een formule niet werkt in een ingesloten besturingselement, kan deze zijn gerelateerd aan bereik. Probeer dezelfde formule buiten de container te gebruiken.

Een besturingselement Label in een galerie moet bijvoorbeeld de naam van elke record weergeven, maar er wordt geen tekst weergegeven. Label.Text is ingesteld op ThisItem.Name. Gallery.Items is ingesteld op Products.

In een galerie wordt een lege ruimte weergegeven in plaats van tekst. In het eigenschappenvenster ziet u de formules die worden gebruikt voor de labels in de galerie.

Als u wilt controleren of het een bereikprobleem is, voegt u een foutopsporingslabel in buiten de galerie, op het hoogste niveau van de app. Stel de eigenschap Text in om de naam van de eerste record van de gegevensset weer te geven: First(Products).Name.

Het foutopsporingslabel moet hetzelfde resultaat hebben als de eerste rij van de galerie. Zo niet, dan is het waarschijnlijk een verkennende fout met Power Apps die u kunt rapporteren via een ondersteuningsaanvraag. Als beide echter leeg zijn, kan het probleem te maken hebben met de gegevensbron.

Enkele mogelijke tijdelijke oplossingen voor bereikproblemen:

Herstellen naar een eerdere versie

Als u geen grote wijzigingen hebt aangebracht in een app en deze plotseling niet meer werkt nadat deze opnieuw is gepubliceerd, probeert u deze te herstellen naar de vorige versie. Als het opnieuw werkt, controleert u de aangebrachte wijzigingen om te zien wat de app mogelijk heeft verbroken.

Soms kunnen fouten worden geïntroduceerd met nieuwe versies van Power Apps. Omgekeerd kunnen nieuwe versies oplossingen voor fouten met zich meebrengen. Microsoft Ondersteuning kunt aanbevelen of u moet terugkeren naar een oudere ontwerpversie of een upgrade naar een nieuwere versie moet uitvoeren. Houd er rekening mee dat er beperkte ondersteuning is voor niet-aanbevolen versies als u de ontwerpversie zelf wijzigt.

Een minimale repro-app maken

Het proces van het maken van een minimale repro-app kan app-configuratiefouten aan het licht brengen die niet duidelijk zijn bij een complexe app. Zelfs als het probleem niet is opgelost, zou u de oorzaak hebben beperkt en het gemakkelijker gemaakt om het probleem aan anderen uit te leggen.

Volgende stappen

Foutopsporing voor canvas-apps met Monitor

Zie ook

Algemene strategieën voor foutopsporing in Power Apps