Oversigt over moderne kommandoer

Kommandoer driver kerneprogramfunktionsmåden for modelbaserede apps. Det er de knapper, brugerne kommunikerer med, når de afspiller apps, og de handlinger, der udføres, når der vælges en knap. Hver enkelt kommando placeres i forhold til andre kommandoer og er bundet til en placering på kommandolinjen i appen.

Kommandolinje

På et højt niveau passer kommandotilpasning ind i følgende kategorier. Der findes forskellige funktioner i de enkelte kategorier, og de dækkes mere detaljeret i dokumentationen til moderne kommandoer:

  • Skærm. Sådan vises knappen, og hvor den er placeret i en app. Det kan f.eks. være knappens navn, ikon og tilgængelighedsetiketter samt placeringen af kommandolinjen og placeringen på en kommandolinje.
  • Handling. Den logik, der udføres, når der vælges en knap. Du kan f.eks. oprette og opdatere data eller arbejde med forskellige kontrolelementer og sider i appen.
  • Synlighed. Logiske betingelser, der angiver, hvornår en knap er synlig eller skjult for en bruger. Knappen skal f.eks. være synlig for visse brugere og skjult for andre. Eller måske skal knappen kun være synlig, når visse kriterier for dataposterne er opfyldt.

Placering af kommandolinjer

  • Hovedgitter. Denne kommandolinje vises, når du bruger venstre navigation i en app til at få vist en hel sideliste over poster i denne tabel.

    Kommandolinje på hovedgitteret

  • Hovedformular. Denne kommandolinje vises i tabellens hovedformularer. Dette vises øverst i formularen og er ikke det samme som den tilknyttede visning eller den visning af undergitteret, der åbnes i forskellige områder af formularen.

    Hovedformular

  • Visning af undergitter. Denne kommandolinje vises i formularer for andre tabeller, der gengiver denne tabels data i et undergitter. Hovedformularen for firmaer har for eksempel et undergitterkontrolelement, der indeholder de kontaktpersonposter, der er relateret til firmaposten. Hvis du vil redigere kommandolinjen nedenfor, skal du redigere kommandolinjen for kontakttabellen og derefter visningen af undergitteret.

    Visning af undergitter

  • Tilknyttet visning. Denne kommandolinje vises i formularen for en overordnet tabel, når der vises relaterede data i denne tabel. I hovedformularen for en firmapost kan du for eksempel vælge fanen Relateret og derefter vælge en relateret tabel som f.eks. kontaktpersoner.

    Tilknyttet visning

  • Hurtige handlinger. Hurtige handlinger knyttes til hovedgitterplaceringen. Hvis du vil tilføje eller redigere kommandoer for både hurtige handlinger og hovedgitterplaceringer, skal du vælge den ønskede tabel fra den moderne appdesigner og derefter redigere kommandolinjen og vælge hovedgitterplaceringen. De første fem kommandoer, bestemt efter rækkefølge, vises også som hurtige handlinger, når du afspiller appen.

    Eksempel på en hurtig handling, der er konfigureret i kontakttabellen

Bemærk

Mindre hyppigt tilpassede placeringer på kommandolinjer understøttes ikke i kommandodesigner. Se sektionerne Global kommandolinje og andre bånd for at få flere oplysninger om tilpasning af kommandoer til disse placeringer.

Typer af kommandoer

  • Kommando. Standardknap. Udfører en handling, når den vælges. Kan også indlejres i grupper på rullelister og opdelingsknapper. Bemærk, at disse blev kaldt pop op-vinduer i klassiske kommandoer.
  • Rulleliste. Opretter en menu, hvor du kan organisere kommandoer i en gruppe.
  • Gruppe. Føj titler til grupper af kommandoer, der er indlejret i rullelister eller opdelingsknapper.
  • Opdel-knap. Ligner en rulleliste, men har en primær kommando. Når du vælger opdelingsknappen, køres handlingen fra den primære kommando. Hvis pilen Udvid er valgt, køres den primære kommando ikke. I stedet udvides en liste, så der vises flere grupper, pop op-vinduer og kommandoer.

Kommandotyper

Vigtige forskelle mellem klassiske og moderne kommandoer

Klassiske kommandoer (tidligere kaldet båndet) kunne ikke tilpasses ved hjælp af lav kode. Med kode var det vanskeligt og kedeligt at tilpasse kommandoer, og det kunne opstå fejl. For at skalere kommandoer til lav kode og bruge brugerdefinerede sider til at konvergere lærredapps og modelbaserede apps har det været nødvendigt at genopfinde og genopbygge kommandoinfrastrukturen.

Moderne kommandoer har mange nye funktioner og er meget mere simple at bruge.

Egenskab Klassisk Moderne
Understøttes i kørsel af modelbaseret app Ja Ja, understøtter desuden Power Fx-kørsel.
Tilpasset ved hjælp af Manuel redigering af XML i løsningsfiler eller ved hjælp af tredjepartsværktøjer. Påkrævede tidskrævende eksport- og importhandlinger for løsninger. Kommandodesigner og Dataverse-API-understøttelse.
Understøtter Power Fx. Nej Ja. Til handlinger og synlighed.
Tid, der kræves for at tilpasse Langsom, risiko for fejl. Hurtig
Ydeevne og pålidelighed Let at lave fejl. Forkert tilpasning og manglende omfang påvirker ofte appens ydeevne Indbygget fejlhåndtering forhindrer fejl. Power Fx-optimeret til en bedre kørselsydeevne.
Deling Rollebaseret Dataverse-standardsikkerhed. Kommandoer, der ikke er Power Fx, bruger rollebaseret Dataverse-standardsikkerhed. Power Fx-kommandoer kræver i øjeblikket, at kommandokomponentbiblioteket deles ud over at have en relevant sikkerhedsrolle.
Løsnings- og ALM-funktionsmåder Inkonsistent og problematisk løsningslagdeling, ingen tilstedeværelse i løsningsgrænsefladen. Mange standardløsningsfunktionsmåder understøttes ikke, f.eks. programrettelser, segmentering, løsningsopgradering, administrerede egenskaber og mange flere. Lagdeling af standardløsninger, der administreres centralt for flere objekttyper til løsningen i Dataverse. Findes i løsningsgrænsefladen. Alle løsningens standardfunktionsmåder understøttes.
Lokalisering Ikke-standard Standardiseret med eksport- og importoversættelser for hele løsningen.
Datamodel Kompleks. Optimeret til klassiske bånd og indeholder mange egenskaber, der ikke længere er nødvendige. Enkel og optimeret til de moderne kommandolinjer i modelbaserede apps.
Brug JavaScript Ja Ja. Nu er det mere enkelt. Bemærk: Det samme JavaScript kan bruges til klassiske og moderne kommandoer.
Tilpasse de indbyggede kommandoer Ja Kommandoer kan redigeres i kommandodesigner, når de er overført til den moderne struktur.
Appspecifikke kommandoer Nej Ja. Brug af moderne kommandodesigner sikrer, at kommandoer kun er synlige i den valgte app.
Tabelspecifikke kommandoer, der vises i alle apps, som indeholder tabellen Ja Ja. Kræver, at du ændrer appaction-definitionen i løsningsfilen.
Globale kommandoer, der vises for alle tabeller og apps for den angivne kommandolinjeplacering Ja Ja. Kræver, at du ændrer appaction-definitionen i løsningsfilen.
Oprette opdelingsknapper, pop op-vinduer og grupper Ja Ja
Udfylde et pop op-vindue dynamisk med kode Ja Nej. Det anbefales, at du opretter kommandoer med en erklæring.
Tilpasse kommandoer til global programheader Ja Nej
Tilpasse kommandoer til andre/ualmindelige eller forældede kommandolinjeplaceringer Ja Nej
Køre et moderne flow eller en moderne arbejdsproces Brug af JavaScript Brug af JavaScript. Understøttes også ved hjælp af en brugerdefineret side.

Sammenligning mellem klassisk og moderne synlighedsregel

De klassiske synlighedsregler indeholder ofte en bestemt regel for hvert scenario. Med Power Fx vil en deklarativ funktion erstatte mange klassiske regler. Og det er meget enklere at bruge.

Bemærk, at klassiske synlighedsregler også understøttes snart i moderne kommandoer. Understøttelse af klassiske regler var dog nødvendig i forbindelse med pålidelig overførsel af klassiske kommandoer til moderne kommandoer, og tilpasning af klassiske regler i kommandodesigneren understøttes ikke. Det anbefales, at du bruger Power Fx fremover.

Use case Klassisk regel Klassiske muligheder Synlig Power Fx-egenskab
Vis/skjul baseret på dataværdi(er) CustomRule Brug JavaScript !IsBlank(Self.Selected.Item.Email)
Vis/skjul baseret på tabeltilladelse EntityPrivilegeRule Flere DataSourceInfo()
Vis/skjul baseret på posttilladelse RecordPrivilegeRule Flere RecordInfo()
Reference til kontrolelementkonteksten for primære og relaterede tabeller EntityRule PrimaryEntity. SelectedEntity Self.Selected
Reference til kontrolelementkonteksten EntityRule Formular. HomePageGrid. SubGridStandard. SubGridAssociated Self.Selected
Egenskaber for tabelmetadata EntityPropertyRule DataSourceInfo()
Vis/skjul baseret på formulartilstand. Vis f.eks. for oprettelsesformularen FormStateRule Opret. Eksisterende. ReadOnly. Deaktiveret. BulkEdit Self.Selected.State = FormMode.New
Vis, når der er valgt > 1 poster i et gitter SelectionCountRule CountRows(Self.Selected.Items) > 1
Vis/skjul for en relateret tabel i et polymorft opslag. Du kan f.eks. kontrollere, om opslaget er en bruger ELLER et team CustomRule PrimaryEntityTypeCode IsType(), AsType
Reference til miljøegenskaber (Org) CustomRule OrgName. OrgLcid. UserLcid Er ikke tilgængelig i øjeblikket

Ofte stillede spørgsmål

  • Hvorfor kan jeg se flere kommandoer i designeren, end jeg kan se i min app?
    • Det er der flere grunde til. Der kan være synlighedslogik, der skjuler kommandoen, når du kører appen. Eller disse kommandoer kan indsættes dynamisk via brugerdefineret JavaScript under kørsel og kan ikke konfigureres.
  • Hvorfor kan jeg se dubletkommandoer i designeren?
    • Dette var et almindeligt mønster, der blev brugt sammen med klassiske kommandoer. Begge kommandoer blev ikke vist under kørsel, da de blev styret af regler for synlighed. Kommandodesigneren viser alle kommandoer uanset deres synlighedsregler.

Se også

Tilpasse kommandolinjen ved hjælp af kommandodesigneren
Administrere kommandoer i løsninger
Kendte begrænsninger i moderne kommandoer