Microsoft Flow(Power Automate)を使ってDynamics CRMとつないでみよう 最近話題のあの話編
予定よりも少し遅れての投稿となってしまいました。そして今夜は台風が関東を通り過ぎようとしています。早く仕事を終わらせて夜のドライブに行きたいところです。
さて今回は、今社内で一部の人間にホットな話題(すでに旬が過ぎているという話も(笑))について調査してみました。
その話題とは、Outlookの予定表とGoogleカレンダーをMicroosft Flowを使って同期したときに無限ループになってしまい同じ予定がたくさん出来てしまうというものです。
説明
やろうとしている事
今回はOutlookの予定表とGoogleカレンダーを相互に同期して、どちらからでも予定の確認と登録が出来るようにしたい。
環境
今回同期を行うのは下記の2つのカレンダーです。
1.Exchangeで作成した会議室の予定表
2.Googleカレンダーで作成した予定表
今回おこなった設定
1.Outlookの予定表で作成した予定をGoogleカレンダーへ同期する
2.Googleカレンダーで作成した予定をOutlookの予定表へ同期する
起こったこと
一見相互に同期されて何の問題も無いように思えますが、実際に動かしてみると問題があることがわかります。
具体的に何が起こっているかというとOutlookで作成した予定がGoogleカレンダーに同期されます。次にGoogleカレンダーで今同期された予定がOutlookに同期されます。さらにOutlookで今同期された予定がGoogleカレンダーへ同期され永遠に同期され続け恐ろしい量の同じ内容の予定が作成され続けてしまいます。
解決方法の思案
思案1 登録ユーザーの比較
社内から作成したユーザーとシステムが登録したユーザーに差異がありその違いで2回目以降の書き込みを判断して止められるのではないか。というものでしたが、
検証のためMicrosoft Flowで同期に使用するユーザーとは別のユーザーを作成してGoogleカレンダーに予定を作成してみました。
仮に予定を作成したユーザーをA、同期するユーザーをBとします。実行結果は下記から。
これによると予定を書き込んだユーザーが同期されており、同期しているユーザーの情報に書き換わってはいませんでした。
思案2 予定時間の重複チェック
次に同期を行う際に同じ日時にすでに予定が入っているかを確認しようと思い、アクションを色々見てみたのですが・・・条件を指定してデータを取得するようなものはなく、一覧を並べ替えや上からいくつ取得するみたいなものはあるのですが、これでは毎度同期のたびに全ての予定を取得して同じ日時のものがないか1件づつ比較することになるので現実的ではなく・・・
結果として
今のところ現実的な手段として無限ループを回避する方法がないというところですが、今後のアップデートでデータ取得時に並び替えや上位指定だけではなく条件を指定して取得できるようになるとより使いやすくなりますね。という訳でお願いしますマイクロソフトさん m(__)m