Dataverse for Teams のフローを複製するには
Dataverse for Teams でのフローの複製について整理してみます。
Dataverse for Teams のフローは複製できない?
まず、前提として普通に Dataverse for Teams のフローを複製しようとすると、うまくいきません。
フローを選択して[ 名前をつけて保存 ] から保存、複製しても、Dataverse for Teams 上に表示されません。
どこかに複製されたのか、されていないのか。よくわからない状態になってしまいます。
複製したフローはどこにいった?
実はフローの複製自体はされています。
どこに保存されているかというと、環境内の[マイフロー]に保存されています。
これは、通常の Power Automate ポータルから確認できます。
どうすれば Dataverse for Teams に表示できる?
Dataverse for Teams に表示されるフローと表示されないフローの違いはなにか?
答えは、特定のソリューションに含まれるか否か、です。
Dataverse for Teams に表示されるアプリ、チャットボット、フローはすべて [ Common Data Services Default Solution ] という名前のソリューションに含まれています。
逆に言えば、このソリューションに含めることができれば、Dataverse for Teams 上に表示させることができます。
Common Data Services Default Solution に追加するには
クラウドフロー一覧から、[ Power Apps で開く ] からソリューション画面に移動します。
移動先は Common Data Services Default Solution の管理画面です。ここからソリューションに含めることができます。
画面上部の [ 追加 ] から、望みのフローをソリューションに追加することができます。
フローを追加すると、一覧に表示されるようになります。
フローがソリューション外部の一覧にないことも・・・
残念ながら、全てのフローがこの方式で複製できるわけではありません。
一部のフローはソリューションへの追加に対応しておらず、一覧に出てこないことがあります。
たとえば、
Power Automate ボタントリガーを使用しているフロー
Power Apps トリガーを使用しているフロー
などはソリューションに含めることができないため、複製できないということになります。
(意外にもPower Apps V2トリガーは対応しています。)
子フローの複製には対応できない
Power Apps V2 トリガーはソリューションに含めることができるので、子フローも複製できるかと思いきや、フローを作成して保存するときにエラーが発生してしまいます。
ソリューションで新規作成したもののみ、子フローとして使用することができます。
結局、この方法で複製したフローはどうやっても子フローとして利用することはできません。
複製できないときの回避策 トリガーを一時的に変更する
トリガー次第で外部からソリューションに含められるかどうかが決まります。
なので、複製時だけトリガーを変更し、力技で複製する方法が取れるかもしれません。
こういうこともあるので、日頃からトリガー変更に強い作り方をしておくといいかもしれませんね。
複製できないときの回避策 アクションのコピーでコピーする
子フローとして利用したいフローを複製したい場合は、今回の方法ではどうやっても対応できないと思われます。
どうしてもDataverse for Teams からの新規フロー作成が必要になります。
代案として、スコープとアクションのコピーが使えるかもしれません。
予めフロー作成時に全てのアクションをスコープに含めておけば、アクションのコピーで簡単に全体をコピーすることができます。
苦肉の策ですが、これらで対応しましょう。
まとめ
・普通のやり方では、Dataverse for Teams のフローを複製することができない。
・実はマイフローに複製されている。
・表示させるには、Common Data Services Default Solution に含める必要がある。
・ソリューションに追加できないフローもあるので、注意。
・最後は力技で解決。
ということで、Dataverse for Team のフローの複製についてでした。ご参考になれば幸いです。
PR
アプリ作成支援や導入支援サービスを提供しています。
Power Apps / Power Automate 技術支援サービス | ZEE CitizenDevSupport