Microsoft Dataverse en de verbeterde gegevensbron-ervaring
Samenzicht
Vanaf mei 2021 zijn veel functies die voorheen optioneel waren nu het standaardgedrag voor alle nieuwe apps. Dit artikel biedt richtlijnen voor gebruikers die een app hebben ontwikkeld vóór de introductie van nieuwe functies, over hoe ze hun app kunnen upgraden om gebruik te maken van de nieuwste functionaliteiten.
Systeemeigen Dataverse
Als u een canvas-app hebt gemaakt met de Dataverse- of de Dynamics 365 Connector vóór november 2019, dan geniet u mogelijk niet van de voordelen van het gebruik van de huidige native verbindingservaring voor de Dataverse.
Als u uw app vóór november 2019 hebt gemaakt en geen gebruikmaakt van een native Dataverse-verbinding, vindt u in instellingen op het tabblad Aankomende functies op het tabblad 'Buiten gebruik gesteld' de optie Gegevensbronervaring en Microsoft Dataverse-weergaven samen met de relationele gegevens, keuzes en andere nieuwe functies voor Microsoft Dataverse.
Hoe voer ik een upgrade uit?
Voer een upgrade van uw app uit door de instellingen van de functies te inspecteren en vervolgens de onderstaande instructies te volgen:
Relationele gegevens, optiesets en andere nieuwe functies voor Microsoft Dataverse staat op Uit
Controleer het gedeelte Buiten gebruik gesteld onder Aankomende functies. Als deze is ingesteld op Uit, gaat u verder met de volgende instructies als eerste stap in de conversie.
Als u Relationele gegevens, optiesets en andere nieuwe functies voor Microsoft Dataverse niet ziet in Algemene instellingen of als de functie al op Aan is ingesteld, sla dan de volgende stappen over en ga door naar het volgende gedeelte.
Stap 1: stel de functie Weergavenamen gebruiken in op Aan:
- Stel de functie Weergavenamen gebruiken in op Aan.
- Wacht tot Health Monitor klaar is met het analyseren van uw app.
- Sla uw app op, sluit deze en open hem vervolgens opnieuw.
- Los alle formulefouten op.
- Sla uw app op, sluit deze en open hem vervolgens opnieuw.
Mogelijke fouten en suggesties:
Het is mogelijk dat sommige van de nieuw getoonde weergavenamen conflicteren met de weergavenamen voor andere tabellen, velden of besturingselementen. Mogelijk hebt u bijvoorbeeld een besturingselement en een veld met dezelfde naam. U kunt de naam van het besturingselement wijzigen door een unieke waarde toe te kennen.
Voor elk conflict in de weergavenaam voor velden en tabellen ziet u mogelijk een formule die een tabel verwacht, maar wordt omgezet in een veldnaam met een lokaal bereik.
Gebruik de vierkante haak met een @-symbool om een algemeen bereik aan te geven zodat het naar de tabel wordt omgezet, bijvoorbeeld [@tableName].
Stap 2: stel de functies Relationele gegevens, optiesets en andere nieuwe functies voor Microsoft Dataverse en GUID-gegevenstypen gebruiken in plaats van tekenreeksen in op Aan:
- Stel de functie Relationele gegevens, optiesets en andere nieuwe functies voor Microsoft Dataverse in op Aan.
- Stel de functie GUID-gegevenstypen gebruiken in plaats van tekenreeksen in op Aan.
- Wacht tot Health Monitor klaar is met het analyseren van uw app.
- Los alle formulefouten op.
- Sla uw app op, sluit deze en open hem vervolgens opnieuw.
Mogelijke fouten en suggesties:
Het is mogelijk dat er in dit stadium fouten optreden als u een keuzeveld of hardgecodeerde GUID-tekstwaarden gebruikt.
- Keuzewaarden: als u een keuzeveld met een tekst-id voor de keuzewaarde gebruikt, gebruikt u in plaats daarvan de puntnotatie om naar de keuzewaarde te verwijzen. Wijzig bijvoorbeeld
Patch(Accounts, OptionSet1 = “12345”)
inPatch(Accounts, OptionSet.Item1)
, waarbijItem1
overeenkomt met de waarde12345
.
Meer informatie: Gedetailleerde voorbeelden. - GUID's: als u een statische GUID-tekenreeks gebruikt, zoals
015e45e1044e49f388115be07f2ee116
, converteer u deze naar een functie die een GUID-object retourneert; bijvoorbeeldGUID(“015e45e1044e49f388115be07f2ee116”)
. - Zoekopdrachten: als u zoekopdrachtfuncties gebruikt om opzoekwaarden op het eerste niveau te krijgen, zoals
Lookup(Contacts, ‘contactID’ = ThisItem.ContactID”)
, overweeg dan in plaats ervan het gebruik vanThisItem.PrimaryContacts
(waarbij PrimaryContacts de naam van de tabel is).
Gegevensbronervaring en Microsoft Dataverse-weergaven verbeteren staat op Uit
Gebruik de volgende instructie om Gegevensbronervaring en Microsoft Dataverse-weergaven verbeteren in te stellen op Aan:
- Verwijder uw bestaande Dataverse-gegevensbronverbindingen.
- Stel de functie Gegevensbronervaring en Microsoft Dataverse-weergaven verbeteren in op Aan:
- Voeg de Dataverse-verbinding toe met de nieuwe ervaring voor gegevensbronselectie.
- Sla uw toepassing op.
Notitie
Als uw toepassing extreem groot is, kan het enige tijd duren voordat uw gegevensbronverbindingen weer zijn toegevoegd. Sluit de toepassing niet tijdens dit proces.
Canvas-apps converteren met de Dynamics 365 Connector
Als u uw app die de Dynamics 365 Connector gebruikt wilt converteren, moet u de verbindingen verwijderen en toevoegen aan uw gegevensbronnen. Gebruik de onderstaande stappen om uw verbindingen naar uw gegevensbronnen te converteren.
Controleer of de functie Gegevensbronervaring en Microsoft Dataverse-weergaven verbeteren is ingesteld op Aan.
Verwijder uw bestaande Dynamics 365-gegevensbronverbindingen.
Voeg de verbindingen met uw gegevensbronnen toe aan de Dataverse via de nieuwe ervaring voor gegevensbronselectie.
Notitie
- Als u verbindingen hebt met andere omgevingen (anders dan de huidige), selecteert u de categorie Tabel en dan de optie Meer (...) om de omgeving te wijzigen. U kunt vervolgens een tabel uit een andere omgeving selecteren om aan uw toepassing toe te voegen. Cross-tenant-verbindingen werken niet met de verbeterde native connector. U moet gegevensintegratie gebruiken om cross-tenant-toegang te krijgen tot gegevens.
- U moet aan een van de volgende vereisten voldoen om een omgeving te kunnen zien waaraan u de verbinding wilt toevoegen:
- U bent de eigenaar van de app of de app wordt gedeeld met u als mede-eigenaar.
- U bent lid van ten minste een van deze beveiligingsrollen: Omgevingsbeheerder, Omgevingsmaker of Systeembeheerder. Ga voor meer informatie over de beveiligingsrollen in een omgeving naar Gebruikersbeveiliging configureren voor resources in een omgeving.
Sla uw toepassing op.
Mogelijke fouten en suggesties:
Het is mogelijk dat er fouten optreden tijdens het converteren: als u geen weergavenamen gebruikt, als u GUID-tekenreeksen gebruikt of als u een keuze gebruikt.
- Als de naam van het besturingselement conflicteert, wijzig dan de naam van het besturingselement zodat deze verschillend en uniek is.
- Voor conflicten in de weergavenaam voor velden en tabellen ziet u mogelijk een formule die een tabel verwacht, maar wordt omgezet in een veldnaam met een meer lokaal bereik. Gebruik de vierkante haak met een @-symbool om een algemeen bereik aan te geven zodat het naar de tabel wordt omgezet, bijvoorbeeld [@tableName].
- Keuzewaarden: als u een keuzeveld met een tekst-id voor de keuzewaarde gebruikt, gebruikt u in plaats daarvan de puntnotatie om naar de keuzewaarde te verwijzen. Wijzig bijvoorbeeld
Patch(Accounts, OptionSet1 = “12345”)
inPatch(Accounts, OptionSet.Item1)
, waarbijItem1
overeenkomt met de waarde12345
.
Meer informatie: Gedetailleerde voorbeelden. - GUID's: als u een statische GUID-tekenreeks gebruikt, zoals
015e45e1044e49f388115be07f2ee116
, converteer u deze naar een functie die een GUID-object retourneert; bijvoorbeeldGUID(“015e45e1044e49f388115be07f2ee116”)
. - Zoekopdrachten: als u zoekopdrachtfuncties gebruikt om opzoekwaarden op het eerste niveau te krijgen, zoals
Lookup(Contacts, ‘contactID’ = ThisItem.ContactID”)
, overweeg dan in plaats ervan het gebruik vanThisItem.PrimaryContacts
(waarbij PrimaryContacts de naam van de tabel is). - Raadpleeg het gedeelte Gedetailleerde voorbeelden hieronder voor alle polymorfe referenties.
Gedetailleerde voorbeelden
Het kan lastig zijn om uw app te converteren om de nieuwe gegevenstypen Optiesets en Twee opties te gebruiken met ondersteunende besturingselementen tijdens het upgraden van een app om de nieuwe functie Gegevensbronervaring en Microsoft Dataverse-weergaven verbeteren te gebruiken.
Keuzen
Er zijn eerder aparte _myfield
- en _myfield_label
-velden gebruikt voor keuze. Nu is er een enkele myfield
die kan worden gebruikt voor zowel landinstellingsonafhankelijke vergelijkingen als om het landinstellingsspecifieke label te verkrijgen.
Keuzegegevenskaarten verwijderen en toevoegen
We adviseren u bestaande gegevenskaarten te verwijderen en weer toe te voegen om met uw keuze te werken. Als u bijvoorbeeld met de tabel Account en de keuze Categorie werkt, ziet u dat de eigenschap DataField van de gegevenskaart is ingesteld op _accountcategorycode_label
. In de veldlijst kunt u zien dat de gegevenskaart van het type Tekenreeks is:
Met het nieuwe functie Gegevensbronervaring en Microsoft Dataverse-weergaven verbeteren ziet u _accountcategorycode_label
niet langer. Deze is vervangen door accountcategorycode
. Uw kaart is nu gemarkeerd als aangepast en u ziet fouten. Verwijder de oude gegevenskaart en voeg Keuze weer toe. De nieuwe gegevenskaart is Keuze-bewust.
De expressies van het keuzefilter bewerken om de nieuwe syntaxis te gebruiken
Als u voorheen een Keuze-waarde in een filterexpressie wilde gebruiken, moest u het veld Waarde gebruiken. Bijvoorbeeld:
Filter(Account,'Category Value' = "1")
U moet deze formule bewerken. Keuzetekst-id wordt niet langer gebruikt voor de waarde. Deze expressie moet worden bijgewerkt naar:
Filter(Account, Category= ‘Category (Accounts)’.’Preferred Customer’)
'Category(Accounts)' is de naam van de opsomming die wordt gebruikt in het veld Categorie van de tabel Accounts. Dit is een lokale keuze. U kunt hier meer lezen over lokale en algemene keuzen: Algemene keuzen.
Patch-instructies voor keuzen bewerken om nieuwe syntaxis te gebruiken
Hieronder volgt een voorbeeld van een eerdere patch-instructie voor keuze:
Patch( Accounts, First(Accounts), { ‘Category Value’: 1 } ) )
U moet uw instructies bijwerken om dit formulier te volgen:
Patch( Accounts, First(Accounts), { Category: ‘Category (Accounts)’.’Preferred Customer’ } )
Ondubbelzinnig maken van keuze
Als de weergavenaam van een keuzeveld en de naam van de keuze hetzelfde zijn, moet u de formule ondubbelzinnig maken. Om het voorbeeld van de accountcategoriecode te blijven gebruiken, impliceert @ om de keuze te gebruiken, niet het veld.
Filter(Accounts, 'Category Code' = [@’Category Code’].'Preferred Customer')
Twee opties
Ja/Nee-gegevenskaarten verwijderen en toevoegen
Verwijder bestaande gegevenskaarten en voeg deze weer toe om met Ja/Nee te werken. De gegevenstypen werden eerder herkend als eenvoudige boolean - zoals true/on en false/off zonder labels:
Met het nieuwe functie Gegevensbronervaring en Microsoft Dataverse-weergaven verbeteren wordt uw kaart nu gemarkeerd als aangepast en ziet u fouten. Verwijder de oude gegevenskaart en voeg de keuze weer toe. U ziet standaard een bewerkingsbesturingselement met twee opties na de toevoeging.
Als u de wisselknop verkiest voor uw booleaanse veld, kunt u de gegevenskaart ontgrendelen en het besturingselement op de gegevenskaart vervangen door een wisselknop. U moet deze eigenschappen ook instellen op de wisselknop.
Toggle1.Default = ThisItem.’Do not allow Bulk Emails’
Toggle1.TrueText = ‘Do not allow Bulk Emails (Accounts)’.’Do Not Allow’
Toggle1.FalseText = ‘Do not allow Bulk Emails (Accounts)’.Allow
DataCard.Value = If( Toggle1.Value,
‘Do not allow Bulk Emails (Accounts)’.’Do Not Allow’,
‘Do not allow Bulk Emails (Accounts)’.Allow )
Patch-instructies met Twee opties verfijnen
Bij gebruik van de functie Patch met Twee opties zou alles normaal moeten werken. Het ondersteunt direct gebruik van true en false, vergelijkbaar met Boolean. Het enige verschil is dat als u de waarde eerder in een labelbesturingselement had gezet dat true en false aangaf, het nu de labels van Twee opties laat zien.
Polymorfe zoekopdrachten
De volgende richtlijnen helpen bij het upgraden van uw toepassing als er naar wordt verwezen in polymorfe velden. Polymorfe zoekopdrachten uit hetzelfde veld ondersteunen verwijzingen naar een beperkte set van meerdere tabellen. Net als verwijzingen in andere talen is een recordverwijzing een verwijzing naar een specifieke record in een specifieke tabel. Een recordverwijzing bevat de tabelinformatie waardoor kan worden verwezen naar een record in verschillende andere tabellen, wat verschilt van een normale zoekopdracht die alleen naar records in één tabel kan verwijzen.
Het veld Eigenaar van een record openen, instellen en filteren
Bijvoorbeeld het veld Eigenaar kan verwijzen naar een record in de tabel Gebruikers of de tabel Teams. Hetzelfde opzoekveld in verschillende records kan verwijzen naar records in verschillende tabellen.
Polymorf met Filter en Patch
Recordreferenties kunnen net als een complete record worden gebruikt:
Filter( Accounts, Owner = First( Teams ) )
Patch( Accounts, First( Accounts ), { Owner: First( Users ) })
Polymorf met een galerie met de naam van de eigenaar
Aangezien een verwijzing naar verschillende tabellen kan verwijzen, moet u specifiek zijn. U kunt ThisItem.Owner.Name niet gebruiken omdat het naamveld in de tabel Team Teamnaam is en het naamveld in de tabel Gebruiker Volledige naam is. Power Apps weet niet naar welk type zoekopdracht u verwijst, totdat u de app uitvoert.
U lost dit probleem als volgt op:
- Voeg de gegevensbronnen voor de entiteitstypen toe die Eigenaar zouden kunnen zijn. In het huidige voorbeeld is dat Gebruikers en Teams.
- Gebruik meer functies om uw intentie duidelijk te maken.
Er zijn twee nieuwe functies waar u gebruik van kunt maken:
- IsType – Controleert of een recordverwijzing van een bepaald tabeltype is.
- AsType – Converteert een recordverwijzing naar een bepaald tabeltype.
Met deze functies kunt u een formule schrijven die de naam van de eigenaar weergeeft uit twee velden met verschillende namen, gebaseerd op het tabeltype van de eigenaar:
If( IsType( ThisItem.Owner, [@Teams]),
AsType( ThisItem.Owner, [@Teams]).'Team Name',
AsType( ThisItem.Owner, [@Users]).'Full Name' )
Algemene ondubbelzinnigheidsoperator voor [@Teams]
en [@Users]
wordt gebruikt om ervoor te zorgen dat u verwijst naar het algemene tabeltype. Hoewel dit in dit geval niet nodig is, wordt aanbevolen om altijd duidelijk te zijn. Een-op-veel-relaties conflicteren vaak in het recordbereik van de galerie, en op deze manier kan die verwarring worden vermeden.
Open en stel het veld Bedrijfsnaam (een Klant-gegevenstype) van de tabel Contactpersonen in
Het opzoekveld Klant is eveneens een polymorfe zoekopdracht die erg lijkt op Eigenaar. Elke tabel kan slechts één eigenaarveld hebben. Maar een tabel kan nul, één of meer opzoekvelden voor Klant bevatten. De systeemtabel Contactpersonen bevat het veld Bedrijfsnaam en dat is een opzoekveld voor Klant. Lees De velden van een klant weergeven voor nadere details.
Open en stel het veld Betreffende van activiteitentabellen in, zoals Faxen, Telefoongesprekken, E-mailberichten
Polymorfe zoekopdrachten zijn niet beperkt tot Accounts en Contactpersonen. De lijst met tabellen is uitbreidbaar met aangepaste tabellen. De tabel Faxen heeft bijvoorbeeld een polymorf Betreffende-opzoekveld dat kan verwijzen naar de tabellen Accounts, Contactpersonen en andere tabellen. Als u een galerie hebt met de gegevensbron ingesteld op Faxen, kunt u de volgende formule gebruiken om de naam weer te geven die is gekoppeld aan het opzoekveld Betreft.
If( IsBlank( ThisItem.Regarding ), "",
IsType( ThisItem.Regarding, [@Accounts] ),
"Account: " & AsType( ThisItem.Regarding, [@Accounts] ).'Account Name',
IsType( ThisItem.Regarding, [@Contacts] ),
"Contacts: " & AsType( ThisItem.Regarding, [@Contacts] ).'Full Name',
"" )
Lees Opzoekvelden Betreft en Relaties van Betreft voor nadere details.
De lijst met alle activiteiten voor een record openen
In Dataverse worden tabellen zoals Faxen, Taken, E-mails, Notities, Telefoongesprekken, Brieven en Chats aangeduid als activiteiten. U ook uw eigen aangepaste activiteitentabellen maken.
U kunt activiteiten van een bepaald type weergeven (zoals Faxen of Belastingen) of alle activiteiten die aan een tabel zijn gekoppeld, zoals een account. Voeg de tabel Activiteiten en andere afzonderlijke tabellen toe waarvan u de gegevens wilt weergeven in de canvas-app.
Elke keer dat u een record toevoegt (bijvoorbeeld aan de tabel Taken), wordt er een record in de tabel Activiteit gemaakt met de velden die in alle activiteitentabellen gemeenschappelijk zijn. Lees activiteitentabel voor meer details.
Het volgende voorbeeld laat zien dat wanneer u een account selecteert, alle activiteiten worden weergegeven die aan dat account zijn gekoppeld:
De records worden weergegeven vanuit de tabel Activiteit. Maar u kunt nog steeds de functie IsType gebruiken om te identificeren wat voor type activiteit het is. Nogmaals: voordat u IsType met een tabeltype gebruikt, moet u de noodzakelijke gegevensbron toevoegen.
Door deze formule te gebruiken, kunt u het recordtype weergeven in een labelbesturingselement in de galerie:
If( IsType( ThisItem, [@Faxes] ), "Fax",
IsType( ThisItem, [@'Phone Calls'] ), "Phone Call",
IsType( ThisItem, [@'Email Messages'] ), "Email Message",
IsType( ThisItem, [@Chats] ), "Chat",
"Unknown")
De lijst met alle notities voor een record openen
Wanneer u een tabel maakt, kunt u bijlagen inschakelen. Als u het selectievakje voor het inschakelen van bijlagen inschakelt, maakt u een Betreffende-relatie met de tabel Notities, zoals deze afbeelding laat zien voor de tabel Accounts:
Filteren
U kunt niet lezen of filteren op basis van het veld Betreft. De omgekeerde een-op-veel-relatie van Notities is echter wel beschikbaar. Als u alle notities wilt weergeven die aan een accounttabel zijn gekoppeld, kunt u de volgende formule gebruiken:
First( Accounts ).Notes
Patch
U kunt het veld Notities niet op een tabel instellen met Patch. Als u een record wilt toevoegen aan een tabel (bijvoorbeeld de tabel Notities), kunt u de functie Relateren gebruiken. Maak eerst de notitie, zoals in dit voorbeeld:
Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note", isdocument:'Is Document (Notes)'.No } ) )
Volgende stappen
Zie ook
Notitie
Laat ons uw taalvoorkeuren voor documentatie weten! Beantwoord een korte enquête. (houd er rekening mee dat deze in het Engels is)
De enquête duurt ongeveer zeven minuten. Er worden geen persoonlijke gegevens verzameld (privacyverklaring).