En Power App åbnet fra en SharePoint-kolonne med parametre
Parametre i adressen fra kolonneformateringen, en knap der kun vises når den giver mening, og appen der læser dem med Param, StartScreen og en navngiven formel.
Selve knappen står i En knap i en SharePoint-kolonne, der åbner en Power App. Her er resten: flere parametre, knappen kun på de rigtige elementer, og hvordan appen tager imod.
Adressen#
Appens adresse står under appens Details i Power Apps (Web link):
https://apps.powerapps.com/play/e/<miljø-id>/a/<app-id>?tenantId=<tenant-id>
Egne parametre sættes bagefter med &navn=værdi. Et link i stedet for en knap:
1{
2 "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
3 "elmType": "a",
4 "txtContent": "Åbn i appen",
5 "attributes": {
6 "target": "_blank",
7 "href": "='https://apps.powerapps.com/play/e/<miljø-id>/a/<app-id>?tenantId=<tenant-id>&itemID='+[$ID]",
8 "class": "ms-fontColor-themePrimary ms-fontWeight-semibold"
9 }
10}
Flere parametre:
"href": "='https://apps.powerapps.com/play/e/<miljø-id>/a/<app-id>?tenantId=<tenant-id>&itemID='+[$ID]+'&kategori='+[$Kategori]"
Kolonneformatering har ingen funktion til URL-kodning. Et & eller # i en værdi ødelægger adressen. replaceAll kan klare de værste (replaceAll([$Title],'&','%26')), men det sikre er kun at sende id’et og slå resten op i appen.
Knappen kun når den giver mening#
visibility i style tager et udtryk. Godkendte dokumenter, uafhængigt af webstedets sprog:
"visibility": "=if([$_ModerationStatus] == 0,'visible','hidden')"
Microsoft Learn anbefaler tallet frem for teksten, fordi teksten følger sproget: 0 er godkendt, 1 afvist, 2 afventer, 3 kladde, 4 planlagt. Den udgivne knap sammenligner med 'Godkendt' og virker derfor kun på et dansk websted.
Andre betingelser:
"visibility": "=if([$Status] == 'Behandlet','visible','hidden')"
"visibility": "=if([$Prioritet] == 'Høj' || [$Prioritet] == 'Kritisk','visible','hidden')"
"visibility": "=if(Number([$Beloeb]) > 10000,'visible','hidden')"
"visibility": "=if([$Godkender.email] != '','visible','hidden')"
En valgkolonne giver teksten direkte, så der skal ikke .Value på. En personkolonne er et objekt med email, title, id og flere.
Teksten på knappen efter brugerens sprog: @UIlcid er sprogets LCID, 1030 for dansk.
"txtContent": "=if(@UIlcid == 1030,'Åbn i appen','Open in app')"
Appen tager imod#
Param("itemID") giver parameteren som tekst, eller ingenting, når appen er åbnet uden. Id’et skal gøres til et tal, før det kan sammenlignes med ID. En navngiven formel i App.Formulas:
ElementID = Value(Param("itemID"));
Første skærm i App.StartScreen:
If(IsBlank(Param("itemID")), BrowseScreen, DetailScreen)
Formularens Item på DetailScreen:
If(IsBlank(ElementID), BrowseGallery1.Selected, LookUp('<liste>', ID = ElementID))
Navigate i App.OnStart er udfaset. Ældre apps kører stadig, men Microsoft vil have StartScreen i stedet, fordi Navigate i OnStart får appen til at vente på hele OnStart, før den første skærm vises. Variabler sat med Set i OnStart kan ikke bruges i StartScreen. Navngivne formler kan.
Det der driller#
- Parameteren er tekst.
ID = Param("itemID")finder intet. Det skal væreValue(…). - Kolonner i udtryk skal være med i visningen.
[$Status]er tom, hvis Status ikke vises. - Kun i visninger. Kolonneformatering vises ikke i formularerne til nyt, rediger og vis.
- Ingen URL-kodning. Tekst med
&,#eller+skal ikke sendes i adressen. - Rettigheder. Appen skal deles med brugerne for sig, og listens data hentes med brugerens egne rettigheder. Knappen giver ingen adgang, brugeren ikke har i forvejen.