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.
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.
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.
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.
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.
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.
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.
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