コルネの進捗や備忘録が記されたなにか

進捗や成果物や備忘録てきななにかを雑に更新していきます。

Power Apps からSharePoint リストの添付ファイル列へのファイルの登録について


スポンサードリンク

はじめに

Power Apps からSharePoint リストの添付ファイル列へファイル登録について、検証を行いましたので、そのメモをの記載します。

Power Apps からSharePoint リストへのアイテム追加方法

Power Apps からSharePoint リストへアイテムを追加する方法は以下3つがあります。

* 今回はPower Apps から直接登録する方法に絞っているので、Power Automate などから登録する。というのは省いています。

データソースへの登録方法比較

SubmitForm 関数を利用する

こちらは、馴染み深い方も多いのではないでしょうか。
データソースをもとに作成されたアプリでもアイテムの作成に用いられているのはこちらの関数になります。

フォームコントロールを追加して、そのフォームコントロールの内容をSubmitForm 関数でデータソースへ登録する。
という流れですね。

f:id:koruneko:20210620053327p:plain

こちらの方法だと、問題なくデータソースへファイルを登録することができます。
もちろん複数ファイルも可能です。

Patch 関数を利用する

続いて、Patch 関数を用いてのアイテムの追加です。

Patch 関数でのデータ登録はエラーが取得できるので便利ですよね。

添付ファイルコントロールで、追加したファイルの情報は Attachments に含まれているので、こちらを渡すことにします。

Patch(AttachmentControle, Defaults(AttachmentControle), {Title:"Patch", 添付ファイル:DataCardValue2_1.Attachments})

f:id:koruneko:20210620054231p:plain

型が違うと怒られました。
添付ファイルの型は "Attachment" なのに、渡そうとしているのは "Table" だという。エラーですね。

ちなみにSharePoint での添付ファイル列の型(種類)の確認方法SharePoint リストに"添付ファイル"列を追加する(できない)で記載していますので、ご確認ください。

こちらの公式ドキュメントからもわかる通り、Power Apps のキャッバスアプリに Attachment なんて方は存在しません。

docs.microsoft.com

よって、Patch 関数を使って添付ファイルの追加はできなさそうですね。

なおこれは、なぜエラーにならないのか不明ですが、添付ファイル列にコントロールを渡すとエラーがでませんでした。

Patch(AttachmentControle, Defaults(AttachmentControle), {Title:"Patch", 添付ファイル:DataCardValue2_1})

f:id:koruneko:20210620055051p:plain

ただ、これで実行しても、ファイルの情報ではなく、添付ファイルコントロールのプロパティを渡しているだけですので、ファイルの追加はできません。
また、コントロールであればなんでもよく、ボタンを指定してもエラーにはなりませんでした。

よくわからん。。。

Collect 関数を利用する

最後にCollect 関数を用いてアイテムの追加を行う方法についてです。

この方法は公式のサンプルアプリなどではあまり利用されていないやり方ですので、ご存じない方も多いですが、Collect 関数でもSharePoint リストの更新できちゃうんですよね。

先ほどのPatch 関数のときと同じ要領でアイテムの追加を試みます。

Collect(
    AttachmentControle,
    {Title:"Collect", 添付ファイル:DataCardValue2_1.Attachments}
)

f:id:koruneko:20210620055901p:plain

ここでも同じエラーで型が違うと怒られちゃいましたね。

ただ、Patch 関数のときと、まったく同じ動作。というわけではなく、Collect 関数内で添付ファイル列にコントロールを指定したら、型が違うって怒られるんですよね。

f:id:koruneko:20210620060305p:plain

Patch 関数の動作がなにかおかしいような気がしますので、ここでエラーが起きるのはいいですが、、、うーーーん。。。。

いずれにしてもCollect 関数でも添付ファイルの追加はできなさそうですね。

おわりに

以上。検証結果をただ纏めただけでした。

Power Apps で添付ファイルの追加を行いたい場合はSubmitForm 関数を利用するか、Power Automate を利用するようにしましょう。

誤りや質問ありましたら、よろしくお願いしますー。


スポンサードリンク