【Power Apps】URL パラメーターを指定して SharePoint リストアイテムを表示する
URL パラメーターに SharePoint カスタムリストのアイテム ID を指定し、Power Apps で作成したフォームで表示する方法です。URL パラメーターに指定された値を取得するためには、Param 関数 を使います。
※2024/12 更新
OnStart プロパティを使用しないように修正
準備
SharePoint のカスタムリスト (例では、Announce リスト) でアプリを作成します。
パラメーターの有無で開くスクリーンを変更する
StartScreen プロパティ
App の StartScreen プロパティを設定します。
URL パラメーターがない場合は、一覧画面 (BrowseScreen1)、パラメーターある場合は、詳細表示画面 (DetailScreen1) が初期表示画面になるように設定します。
If(
IsBlank(Param("ID")),
BrowseScreen1,
DetailScreen1
)
パラメーターをコンテキスト変数に設定する
OnVisible プロパティ
DetailScreen1 の OnVisible プロパティを設定します。
URL パラメーターがある場合にコンテキスト変数 (_ID) に数値に変換した値を設定します。
If(
!IsBlank(Param("ID")),
UpdateContext({_ID: Value(Param("ID"))})
);
遷移先のコンテキスト変数に設定する
BrowseScreen1 から DetailScreen1 画面への遷移
BrowseGallery1 の OnSelect プロパティの Navigate 関数に、選択しているアイテムの ID を指定して、DetailScreen1 のコンテキスト変数として呼び出せるように渡します。
Navigate(
DetailScreen1,
ScreenTransition.None,
{_ID: BrowseGallery1.Selected.ID}
);
DetailScreen1 から EditScreen1 画面への遷移
IconEdit1 の OnSelect プロパティの Navigate 関数に、アイテムの ID を指定して、EditScreen1 のコンテキスト変数として呼び出せるように渡します。
EditForm(EditForm1);
Navigate(
EditScreen1,
ScreenTransition.None,
{_ID: _ID}
);
Form コンポーネントに表示するアイテムを設定する
Item プロパティ
DetailScreen1 の DetailForm1 と EditScreen1 の EditForm1 それぞれの Item プロパティを設定します。
LookUp(Announce, ID = _ID)
カスタムリストからアプリのフォームを直接開く
列の書式設定を設定してビューからアイテムの詳細をアプリで開くように設定します。
準備
作成したアプリの [詳細] から Web リンク(URL) を取得しておきます。
列の書式設定
書式設定
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
"elmType": "a",
"txtContent": "@currentField",
"attributes": {
"target": "_blank",
"href": "='https://apps.powerapps.com/play/e/{環境 ID}/a/{アプリID}?tenantId={テナントID}&ID=' + [$ID]"
}
}