Power Automate で SharePoint リストのデータ移行をしたら、「選択肢」でハマったのでメモ書きです。
※今回のは、複数選択を許可の設定している選択肢列の対処方法です。
SharePoint リストのデータを移行したい
1~2年前に作成したSharePoint リストの内部名がめちゃめちゃでアプリ作成が難解…作れたとしても後々苦労するのは見えていたので、面倒だなぁと思いながらSharePoint リストの作り直しとデータ作業に着手。
そして、見事につまづきました…「選択肢」列がうまくデータ移行できない…
いろいろ試行錯誤した部分は今回は割愛しますが、HANAchan さんの資料と同じ工程を辿っておりましたのでこちらをご参照ください。(HANAchan さんの記事で理解が深まり助かりました!ありがとうございます!)
そして、Power Automate を勉強するなら「気ままに勉強会」がおススメです!
kimamani.connpass.com
では、本題に入っていきましょう。
検証環境を準備
うまくいかないときは、必要な部分に絞ってやると切り分けしやすいので、選択肢列の検証環境を作成。
今回、移行元のデータと同じように選択肢は「複数選択を許可」で作成します。
検証用の SharePoint リスト
「TEST_Choice01」を作成したら、「TEST_Choice02」は既存のリストからの機能を利用してデータが空の同じ項目のリストを作成しておきます。
Power Automate で「TEST_Choice01」のデータを取得し「TEST_Choice02」にデータを書き込んでいくところがゴールです。
移行先の検証
今回、データの移行先のSharePoint リストに意図した通りの結果が得られていないので、まずは、どんなデータを「入力」すればいいのか検証してみます。
フローを2つ作成して試してみる
選択肢を1個選んだときと、2個(複数)選んだときの2つ作成。
※ 複数選択するときは「新しい項目の追加」から追加できます。
実行結果の入力がどうなっているのかを確認する。
1個と2個(複数)の場合に必要なデータはこんな感じになることが分かったので、移行元からこの形式でデータが取得できれば良さそうな感じ。
移行元の検証
データの形式はわかったので、いざデータ移行のフローを作成したら、2つ疑問が…
- foods の動的コンテンツが3つある…どれが正解?
- 手動(移行先の検証)の時は、複数選択は「新しい項目の追加」で追加したけど、複数選択のデータを書き込むのはどうしたらいいの?
作成したデータ移行用のフロー
3つの動的コンテンツを試してみた
SharePoint コネクタを「複数項目の取得」から「項目の取得」アクションに変更し、IDを指定して1行分のデータを取得し、3つ動的コンテンツを「作成」アクションに入れてみました。
「foods 項目」と「foods Value」は自動的に「Apply to each」が入ります。
実行結果はどれも、ほしいデータとちょっと違いますね。でも、「foods」の「value」にはほしいデータが入っているので、ここを指定してデータが取得できれば実現できそうです。
「選択」アクションを使う
「選択」アクションを利用して、「foods」から必要項目だけ取り出します。
ほしいデータが取れていますね。これで実現できそうです。
完成
できました!
…って「手動(移行先の検証)の時、複数選択は『新しい項目の追加』で追加したけど、複数選択のデータを書き込むのはどうしたらいいの?」はどうしたのか?というところは、選択肢の部分(今回だと、foods)の「アレイ全体の入力に切り替える」を利用することで解決しました。
実行結果。無事データ移行ができました。
さいごに
うまくいかないときは、必要最低限に絞って試すの大事ですね。