Spring til indholdet

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.

Opdateret SharePoint Online 3 min. læsning

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ære Value(…).
  • 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.

Alle noter