はじめに
Power Apps からSharePoint リストの添付ファイル列へファイル登録について、検証を行いましたので、そのメモをの記載します。
Power Apps からSharePoint リストへのアイテム追加方法
Power Apps からSharePoint リストへアイテムを追加する方法は以下3つがあります。
- SubmitForm 関数を利用する
- Patch 関数を利用する
- Collect 関数を利用する
* 今回はPower Apps から直接登録する方法に絞っているので、Power Automate などから登録する。というのは省いています。
データソースへの登録方法比較
SubmitForm 関数を利用する
こちらは、馴染み深い方も多いのではないでしょうか。
データソースをもとに作成されたアプリでもアイテムの作成に用いられているのはこちらの関数になります。
フォームコントロールを追加して、そのフォームコントロールの内容をSubmitForm 関数でデータソースへ登録する。
という流れですね。
こちらの方法だと、問題なくデータソースへファイルを登録することができます。
もちろん複数ファイルも可能です。
Patch 関数を利用する
続いて、Patch 関数を用いてのアイテムの追加です。
Patch 関数でのデータ登録はエラーが取得できるので便利ですよね。
添付ファイルコントロールで、追加したファイルの情報は Attachments
に含まれているので、こちらを渡すことにします。
Patch(AttachmentControle, Defaults(AttachmentControle), {Title:"Patch", 添付ファイル:DataCardValue2_1.Attachments})
型が違うと怒られました。
添付ファイルの型は "Attachment" なのに、渡そうとしているのは "Table" だという。エラーですね。
ちなみにSharePoint での添付ファイル列の型(種類)の確認方法SharePoint リストに"添付ファイル"列を追加する(できない)で記載していますので、ご確認ください。
こちらの公式ドキュメントからもわかる通り、Power Apps のキャッバスアプリに Attachment
なんて方は存在しません。
よって、Patch 関数を使って添付ファイルの追加はできなさそうですね。
なおこれは、なぜエラーにならないのか不明ですが、添付ファイル列にコントロールを渡すとエラーがでませんでした。
Patch(AttachmentControle, Defaults(AttachmentControle), {Title:"Patch", 添付ファイル:DataCardValue2_1})
ただ、これで実行しても、ファイルの情報ではなく、添付ファイルコントロールのプロパティを渡しているだけですので、ファイルの追加はできません。
また、コントロールであればなんでもよく、ボタンを指定してもエラーにはなりませんでした。
よくわからん。。。
Collect 関数を利用する
最後にCollect 関数を用いてアイテムの追加を行う方法についてです。
この方法は公式のサンプルアプリなどではあまり利用されていないやり方ですので、ご存じない方も多いですが、Collect 関数でもSharePoint リストの更新できちゃうんですよね。
先ほどのPatch 関数のときと同じ要領でアイテムの追加を試みます。
Collect( AttachmentControle, {Title:"Collect", 添付ファイル:DataCardValue2_1.Attachments} )
ここでも同じエラーで型が違うと怒られちゃいましたね。
ただ、Patch 関数のときと、まったく同じ動作。というわけではなく、Collect 関数内で添付ファイル列にコントロールを指定したら、型が違うって怒られるんですよね。
Patch 関数の動作がなにかおかしいような気がしますので、ここでエラーが起きるのはいいですが、、、うーーーん。。。。
いずれにしてもCollect 関数でも添付ファイルの追加はできなさそうですね。
おわりに
以上。検証結果をただ纏めただけでした。
Power Apps で添付ファイルの追加を行いたい場合はSubmitForm 関数を利用するか、Power Automate を利用するようにしましょう。
誤りや質問ありましたら、よろしくお願いしますー。