SharePointリストの基本的な項目は閲覧専用にしたいが、コメントは追加できるようにしたい!といったことはありませんか?
本記事では、Power AppsとSharePointリストの参照列を使用して、ユーザーが閲覧権限のみのアイテムに値を登録できるようにする方法をご紹介します。
前提
今回は、下記のような申請ワークフローのシナリオを想定します。
- Power Appsのアプリ上で申請内容を登録・閲覧可能
- 申請内容は「申請リスト」というSharePointリストに格納している
- 申請登録時に申請リストのアイテムごとに一意の値(GUID)を設定している
- 申請に対して閲覧権限を持っているユーザーが申請に対してコメントを追加できるようにする
なお、申請登録時に申請リストのアイテムごとに一意の値(GUID)を設定する方法は以下の通りです。
1.申請リストにGUIDを格納する1行テキストの列を作成します。

2.Power Appsのアプリ上で、下記のGUID関数を使用してGUIDを用意します。
3.用意したGUIDを、申請内容と一緒にSubmitForm関数やPatch関数を使用して申請リストに登録します。登録イメージは下記画像の通りです。

実装手順
今回実装するコメント追加登録機能は下図の流れとなります。

SharePointリストの作成
1.コメントを格納するSharePointリストを用意します。
- 新規で作成したリストに既定で用意されているタイトル列の名前を「GUID」に変更します。
- 「+列の追加」からコメント列を作成します。
- 種類は「1行テキスト」にしてください。
- 参照列を設定する際は「複数行テキスト」が使用できません。
- 利用するユーザーが閲覧権限を持つように、リストのアクセス権限を設定してください。

2.申請リストに参照列を用意します。申請リストを開き、「+列の追加」から「参照」を選択し、「次へ」をクリックします。

3.参照列を下記の通りに設定し、「保存」をクリックします。

4.参照列が保存されると、下記の通りに「参照」列と「参照列: コメント」列が自動で作成されます。

フローの作成
1.Power Automateを開き、新規のクラウドフローを作成します。トリガーは「Power Appsがフローを呼び出したとき(V2)」を設定します。

2.トリガーのパラメーターは下記の通り4つの入力を設定します。

| 入力の種類 | 入力名 | 説明 |
|---|---|---|
| テキスト | GUID | 該当申請のGUID |
| 数値 | 申請リストID | 該当申請の申請リストのID |
| テキスト | コメント | 登録するコメントの内容 |
| 数値 | コメントリストID | 該当コメントのコメントリストのID(既存のコメントに追加する際に使用) |
3.「条件」アクションを追加します。

4.パラメーターは下記の通りに設定します。

5.「条件」アクションの「真」の中にSharePointコネクタの「項目の作成」を追加します。

6.パラメーターは下記の通りに設定します。※「GUID」列の名前の変更が反映されず、「タイトル」列として表示される場合があります。

7.「条件」アクションの「真」の中にSharPointコネクタの「項目の更新」を追加します。

8.パラメーターは下記の通りに設定します。

※ 「参照列 Id」の選択方法です。



9.「条件」アクションの「偽」の中にSharePointコネクタの「項目の更新」を追加します。

10.パラメーターは下記の通りに設定します。※「GUID」列の名前の変更が反映されず、「タイトル」列として表示される場合があります。

11.「条件」アクションの下に、「Power App またはフローに応答する」アクションを追加します。

12.フローを保存します。※保存時に警告が表示されますが処理に問題はございません。

アプリの作成
1.Power Appsを開き、アプリの編集画面を開きます。アプリの画面イメージです。

2.コメントを入力する欄を用意するため、「テキスト入力」コントロールを追加します。

3.テキスト入力コントロールを選択し、「Default」に下記の式を入力します。
If(
// コメントが既に存在するかどうかを判定
!IsBlank(参照列: コメントデータカード内のコメント表示部分のコントロール名.Selected.Value),
参照列: コメントデータカード内のコメント表示部分のコントロール名.Selected.Value
)
4.「ボタン」コントロールを追加し、先ほど作成したフローを起動するボタンを用意します。

5.画面左側の「…」>「Power Automate」>「フローの追加」>「コメント追加フロー」を選択し、アプリにフローを追加します。

6.追加したボタンのOnSelectに下記の式を入力します。
If(
// コメントが既に存在するかどうかを判定
IsBlank(DataCardValue20.Selected.Value),
// コメントが空欄の場合、新規作成の設定
'コメント追加フロー'.Run(
// GUID
DataCardValue11.Text,
// 申請リストID
Gallery1.Selected.ID,
// コメント
TextInput5.Text,
// コメントリストID ※新規作成でコメントリストにアイテムが存在しないため、0を設定
0
),
// コメントが空欄でない場合、編集の設定
'コメント追加フロー'.Run(
// GUID
DataCardValue11.Text,
// 申請リストID
Gallery1.Selected.ID,
// コメント
TextInput5.Text,
// コメントリストID
LookUp(承認後コメントリスト, タイトル=DataCardValue11.Text).ID
)
);
Refresh(承認後コメントリスト);
Refresh(申請リスト);
設定手順は以上です。
動作確認
次の手順で動作確認を実施します。
1.アプリを開き、コメントを登録したい申請を選択します。

2.追加コメント欄のテキストボックスに追加するコメントを入力します。

3.「コメントを登録」ボタンをクリックします。

4.数秒待機し、選択中の申請内に追加したコメントが表示されたら成功です。

また、SharePointリストは下記の構成となります。
- 申請リスト

- コメントリスト

まとめ
今回は、Power AppsとSharePointリストの参照列を使用して、ユーザーが閲覧権限のみのアイテムに値を登録できるようにする方法をご紹介しました。
参照列を使用することでSharePointリストの構築の幅が広がりますので、ぜひ利用してみてください。