この記事はOffice 365 Advent Calendar 2019に参加しています。
今日のOffice 365 Advent Calendarが空いてたので備忘も兼ねて書きます。
この記事ではSharePoint列の値を更新するアクションの仕様について、私が経験した範囲内で書いていきます。
(2019年12月5日現在)
記事内で出てくるSharePointの列の種類については、以下のMicrosoft Docsをご確認ください。
リストおよびライブラリの列の種類とオプション
#SharePoint列の値を更新するアクション
Power AutomateにはSharePoint列の値を更新するアクションが幾つかあります。
よく使うアクションはこの辺りですね。
ファイルのプロパティの更新
項目の更新
Power Automateでこれらのアクションを使うと以下のような画面が立ち上がので、ここでSharePoint側をどう更新したいか設定していきます。
今回のお話は、この画面の仕様について書いていきます。
##ボックスが空欄なら値は上書きされない
列のボックスが空欄であれば列の値は上書きされません。
以前の値が残ります。
このフローを実行したBefore/Afterは以下の通り。
列「2Column」には元の値が残ったままです。
###Before
##必須列のボックスには必ず入力が必要
SharePointで列を作る際に**「この列に情報が含まれている必要があります」をONにしていると**、入力必須の列として扱われます。
この必須列のボックスは空欄に出来ません。
空欄だとエラーが出て、作成したフローが保存出来なくなります。
前述の「何も割り当てなければ上書きしない」と矛盾する仕様なので注意してください。
##必須列なのに*マークがつかない事がある
通常であれば必須列に*マークがつきます。
しかし、SharePointの列の種類によっては必須列でも*マークが表示されません。
###起こる条件
私が経験した限りでは2パターンあります。
####1.複数選択を許可
以下の列の種類で**「複数選択を許可」をONにしている場合に発生します。**
#####問題が起こる列の種類
- 選択肢
- ユーザーまたはグループ
####2.特殊な種類の列
以下の列の種類では必ず発生します。
#####問題が起こる列の種類
- 参照
- 管理されたメタデータ
##列の値をクリアするにはnullを使う
列の値をクリアするにはnullをボックスに入力します。
入力は列のボックスをクリックした後、右側に出てくるメニューから式を選び、null
と入力してOKを押すだけです。
##必須列をnullでクリアできる
nullはエンドユーザーが必須列の値を手軽にクリアできる唯一の手段です。
例えばこのようなリストがあります。
列「必須列テスト」は必須列です。
このリストに対し、列「必須列テスト」をnullで上書きするフローを実行します。
するとフローが正常に完了し、列「必須列テスト」がクリアされました。
余談ですが、Power AutomateのSharePointアクション「項目の作成」でも同様にnullを使う事で、必須列が空欄のアイテムを作成できます。
#まとめ
-
ボックスに何も割り当てなければ上書きしない
- 一々全部のボックスを入力する必要はありません。
-
必須列には必ず入力する
- 面倒でも現在はこれがルールです。
-
必須マークは完璧ではない
- *マークが表示されない列が必須列かどうか、必ずSharePoint側も確認しましょう。
-
nullは非常に便利
- 現在、エンドユーザーが手軽に必須列をクリアできる手段はこれだけです。
私もIgnite The TourTokyo行きたいなー…(´・ω・`)