Overzicht van modern opdrachtgebruik

Opdrachten sturen het gedrag van kerntoepassingen aan voor modelgestuurde apps. Dit zijn de knoppen waarmee gebruikers interacties hebben tijdens het spelen van apps en de resulterende acties die worden uitgevoerd wanneer een knop wordt geselecteerd. Elke opdracht wordt gepositioneerd ten opzichte van andere opdrachten en is gebonden aan een opdrachtbalklocatie binnen de app.

Opdrachtbalk

Op een hoog niveau past opdrachtaanpassing in de volgende categorieën. Er zijn verschillende mogelijkheden binnen elke categorie en deze worden uitgebreider behandeld in documentatie voor modern opdrachtgebruik:

  • Weergave. Hoe de knop wordt weergegeven en waar deze zich in een app bevindt. Bijvoorbeeld het label, het pictogram en de toegankelijkheidslabels van de knop, evenals de locatie en positie van de opdrachtbalk binnen een opdrachtbalk.
  • Actie. De logica die wordt uitgevoerd wanneer een knop wordt geselecteerd. Bijvoorbeeld het maken en bijwerken van gegevens of interactie met verschillende besturingselementen en pagina's in de app.
  • Zichtbaarheid. Logische voorwaarden die aangeven wanneer een knop zichtbaar of verborgen is voor een gebruiker. U wilt bijvoorbeeld dat de knop zichtbaar is voor sommige gebruikers en verborgen voor andere. Of misschien moet de knop pas zichtbaar worden als aan bepaalde criteria van de gegevensrecords wordt voldaan.

Locaties van opdrachtbalk

  • Hoofdraster. Deze opdrachtbalk die wordt weergegeven als u de appnavigatie aan de linkerkant gebruikt om een volledige paginalijst met records in deze tabel weer te geven.

    Opdrachtbalk in hoofdraster

  • Hoofdformulier. De opdrachtbalk die wordt weergegeven op de hoofdformulieren van deze tabel. Dit wordt boven aan het formulier weergegeven en is niet hetzelfde als de bijbehorende weergave of subrasterweergave die in verschillende delen van het formulier wordt weergegeven.

    Hoofdformulier

  • Subrasterweergave. Deze opdrachtbalk wordt weergegeven op formulieren van andere tabellen, die de gegevens van deze tabel in een subraster weergeven. Het accounthoofdformulier heeft bijvoorbeeld een subrasterbesturingselement dat contactpersoonrecords weergeeft die zijn gerelateerd aan de accountrecord. Om de onderstaande opdrachtbalk te bewerken, bewerkt u de opdrachtbalk voor de contacttabel en vervolgens de subrasterweergave.

    Subrasterweergave

  • Gekoppelde weergave. Deze opdrachtbalk wordt weergegeven in het formulier van een bovenliggende tabel bij het weergeven van gerelateerde gegevens in deze tabel. Selecteer bijvoorbeeld in het hoofdformulier van een accountrecord de Verwant tabblad selecteer vervolgens een gerelateerde tabel zoals contacten.

    Gekoppelde weergave

  • Snelle acties. Snelle acties zijn gekoppeld aan de hoofdrasterlocatie. Als u opdrachten wilt toevoegen of bewerken voor zowel snelle acties als hoofdrasterlocaties, selecteert u de gewenste tabel in de moderne appontwerper, bewerkt u vervolgens de opdrachtbalk en kiest u de hoofdrasterlocatie. De eerste vijf opdrachten, bepaald op volgorde, worden eveneens als snelle acties weergegeven tijdens het spelen van de app.

    Een voorbeeld van een snelle actie geconfigureerd in de contactpersoontabel

Notitie

Minder vaak aangepaste opdrachtbalklocaties worden niet ondersteund in de opdrachtontwerper. Zie de secties Algemene opdrachtbalk en andere linten voor meer informatie over het aanpassen van opdrachten voor deze locaties.

Typen opdrachten

  • Opdracht. Standaardknop. Voert een actie uit wanneer deze wordt geselecteerd. Kan ook worden genest in groepen binnen vervolgkeuzelijsten en splitsknoppen. Deze werden flyouts genoemd bij klassiek opdrachtgebruik.
  • Vervolgkeuzelijst. Hiermee wordt een menu gemaakt waarin u opdrachten kunt ordenen binnen een groep.
  • Groep. Voeg titels toe aan groepen opdrachten die zijn genest binnen vervolgkeuzelijsten en knoppen Split.
  • Splitsknop. Vergelijkbaar met een vervolgkeuzelijst, maar heeft een primaire opdracht. Wanneer de splitsknop is geselecteerd, wordt de actie van de primaire opdracht uitgevoerd. Als de punthaak voor uitvouwen wordt geselecteerd, wordt de primaire opdracht niet uitgevoerd. In plaats daarvan wordt een lijst uitgevouwen om extra groepen, flyouts en opdrachten weer te geven.

Opdrachttypen

Belangrijkste verschillen tussen klassieke en moderne opdrachten

Klassieke opdrachten (voorheen bekend als het lint) waren niet aanpasbaar met behulp van weinig code. Met code waren opdrachtaanpassingen moeilijk, vervelend en foutgevoelig. Voor het schalen van opdrachtgebruik naar weinig code en het gebruiken van aangepaste pagina's om canvas- en modelgestuurde apps samen te voegen, was het van vitaal belang om de opdrachtinfrastructuur opnieuw uit te vinden en opnieuw op te bouwen.

Modern opdrachtgebruik biedt veel nieuwe mogelijkheden en is veel eenvoudiger te gebruiken.

Mogelijkheid Klassiek Modern
Ondersteund tijdens uitvoering van modelgestuurde apps Ja Ja, ondersteunt bovendien Power Fx-runtime.
Aangepast met Handmatige bewerking van XML in oplossingsbestanden of met behulp van tools van derden. Vereiste tijdrovende export- en importbewerkingen voor oplossingen. Opdrachtontwerper en Dataverse API-ondersteuning.
Ondersteunt Power Fx. No Ja. Voor acties en zichtbaarheid.
Tijd vereist voor aanpassing Traag, foutgevoelig. Snel
Betrouwbaarheid en prestaties Makkelijk om fouten te maken. Slechte aanpassing en gebrek aan bereikbepaling zijn vaak van invloed op app-prestaties Inline foutafhandeling voorkomt fouten. Power Fx geoptimaliseerd voor betere runtime-prestaties.
Delen Standaard op Dataverse-rollen gebaseerde beveiliging. Niet-Power Fx-opdrachten gebruiken standaard op Dataverse-rollen gebaseerde beveiliging. Power Fx-opdrachten vereisen momenteel dat de onderdelenbibliotheek voor opdrachten wordt gedeeld en een geschikte beveiligingsrol heeft.
Oplossings- en ALM-gedrag Inconsistente en problematische oplossingsgelaagdheid, geen aanwezigheid in de oplossingsinterface. Veel standaardgedragingen van oplossingen worden niet ondersteund, zoals patches, segmentatie, oplossingsupgrades, beheerde eigenschappen en nog veel meer. Standaard oplossingsgelaagdheid wordt centraal beheerd voor meerdere oplossingsobjecttypen binnen Dataverse. Aanwezig in oplossingsinterface. Alle standaard oplossingsgedragingen worden ondersteund.
Lokalisatie Niet-standaard Gestandaardiseerd via het exporteren en importeren van vertalingen voor de gehele oplossing.
Gegevensmodel Complex. Geoptimaliseerd voor klassieke linten en bevatten veel eigenschappen die niet meer nodig zijn. Eenvoudig, geoptimaliseerd voor de opdrachtbalken van de hedendaagse modelgestuurde apps.
Gebruik van JavaScript Ja Ja. Nu eenvoudiger. Opmerking: dezelfde JavaScript kan worden gebruikt voor klassieke en moderne opdrachten.
Aanpassing van kant-en-klare opdrachten Ja Opdrachten worden bewerkbaar in de opdrachtontwerper zodra ze zijn gemigreerd naar het moderne framework.
App-specifieke opdrachten Nee Ja. Het gebruik van de moderne opdrachtontwerper zorgt ervoor dat opdrachten alleen zichtbaar zijn binnen de geselecteerde app.
Tabelspecifieke opdrachten die worden weergegeven in alle apps die de tabel bevatten Ja Ja. Vereist het wijzigen van de definitie appaction in het oplossingsbestand.
Algemene opdrachten die worden weergegeven voor alle tabellen en apps voor de opgegeven opdrachtbalklocatie Ja Ja. Vereist het wijzigen van de definitie appaction in het oplossingsbestand.
Splitsknoppen, flyouts en groepen maken Ja Ja
Dynamisch een flyout vullen met code Ja Nee We raden aan om opdrachten declaratief te maken.
Algemene opdrachten voor toepassingskoppen aanpassen Ja Nee
Opdrachten aanpassen voor andere/ongebruikelijke of verouderde opdrachtbalklocaties Ja Nee
Een moderne stroom of werkstroom uitvoeren Gebruik van JavaScript Gebruik van JavaScript. Ook ondersteund bij gebruik van een aangepaste pagina.

Vergelijking van klassieke en moderne zichtbaarheidsregels

Klassieke zichtbaarheidsregels hadden vaak een specifieke regel voor elk scenario. Met Power Fx vervangt een declaratieve functie veel klassieke regels. En het is veel gemakkelijker te gebruiken.

Klassieke zichtbaarheidsregels zullen overigens binnenkort ook worden ondersteund in moderne opdrachten. Er was echter ondersteuning voor klassieke regels nodig voor het betrouwbaar migreren van klassieke opdrachten naar modern opdrachtgebruik en het aanpassen van klassieke regels binnen de opdrachtontwerper wordt niet ondersteund. We raden u aan om in de toekomst Power Fx te gebruiken.

Gebruiksscenario Klassieke regel Klassieke opties Zichtbare Power Fx-eigenschap
Weergeven/verbergen op basis van gegevenswaarde(n) CustomRule Gebruik van JavaScript !IsBlank(Self.Selected.Item.Email)
Weergeven/verbergen op basis van tabelmachtiging EntityPrivilegeRule Meerdere DataSourceInfo()
Weergeven/verbergen op basis van recordmachtiging RecordPrivilegeRule Meerdere RecordInfo()
Verwijzen naar de besturingscontext voor primaire en gerelateerde tabellen EntityRule PrimaryEntity. SelectedEntity Self.Selected
Verwijzen naar de besturingscontext EntityRule Form. HomePageGrid. SubGridStandard. SubGridAssociated Self.Selected
Eigenschappen van metagegevens voor tabellen EntityPropertyRule DataSourceInfo()
Weergeven/verbergen op basis van formulierstatus. Bijvoorbeeld weergeven voor het aanmaakformulier FormStateRule Create. Existing. ReadOnly. Disabled. BulkEdit Self.Selected.State = FormMode.New
Weergeven wanneer > 1 record is geselecteerd in een raster SelectionCountRule CountRows(Self.Selected.Items) > 1
Weergeven/verbergen voor een gerelateerde tabel in een polymorfe opzoekactie. Bijvoorbeeld controleren of de opzoekactie een gebruiker OF een team is CustomRule PrimaryEntityTypeCode IsType(), AsType
Verwijzen naar omgevingseigenschappen (Org) CustomRule OrgName. OrgLcid. UserLcid Momenteel niet beschikbaar

Veelgestelde vragen

  • Waarom zie ik meer opdrachten in de ontwerper dan in mijn app?
    • Er zijn verschillende redenen. Soms is er zichtbaarheidslogica die de opdracht verbergt wanneer de app wordt uitgevoerd. Andere keren worden deze opdrachten tijdens runtime dynamisch geïnjecteerd via aangepast JavaScript en zijn ze niet configureerbaar.
  • Waarom zie ik dubbele opdrachten in de ontwerper?
    • Dit was een veelvoorkomend patroon bij klassieke opdrachten. Beide opdrachten werden niet weergegeven tijdens runtime omdat ze werden beheerd door zichtbaarheidsregels. De opdrachtontwerper toont alle opdrachten, ongeacht hun zichtbaarheidsregels.

Zie ook

De opdrachtbalk aanpassen met de opdrachtontwerper
Opdrachten beheren in oplossingen
Bekende beperkingen voor modern opdrachtgebruik