基本記事にも解説していますが、無償版ではWeb版のAutomateからDesktop版のフローを起動することは出来ません
またDesktop版からWeb版のフローを直接実行するアクションはありませんが、間接的・限定的ではありますが可能です
その方法は単純にWeb版のトリガーとなるようなアクションをDesktop版で実行すればよいだけです
ただ、この方法は上記の通り間接的な実行となるのでWeb版の起動開始までのタイムラグが数分かかることがあります
またWeb版を実行する段階でDesktop版から処理が移行して、以降はDesktop版側の処理を実行できません
その点を考慮した上で処理の検討を行ってください
具体的には、Web版でDesktop版が行えるアクション内でのトリガーを実行させる事になります
最も簡単なものが、OneDriveへのトリガーとOutlook等のメール受信です
この二つはいずれもDesktop版のアクションで可能なものとなっています
Desktop版のフロー
まずは、Desktop版のフローについてみていきます
上記の通り使用するアクションはOneDriveへのファイル作成とメールの送信です
OneDrive利用の場合
画像の様に、トリガー用のフォルダー「新しいフォルダー」を作成して
処理加工を行ったものを格納する「新しいフォルダー(2)」を作成します
トリガー次第ではあるのですが、ファイルの作成や更新などのトリガーを利用している状態で加工後のファイルもトリガー用に入れてしまうと思わぬエラーに見舞われる可能性がありますので、分けておくようにしましょう
アクションのファイルの中にある「ファイルのコピー」(元ファイルが必要の場合)や「ファイルの移動」(元ファイルが不要の場合)を利用すれば簡単にファイルを作成できます
ローカルのフォルダにあるファイルを、上記のトリガー用のOneDrive「新しいフォルダー」に複製するだけです
これでDesktop版側の処理は完了になります
こちらはWeb版のAutomateのフローとなります
1つ目がトリガーです
ファイルが作成されたときに実行されます
またこの設定でトリガー用フォルダを指定しておきましょう
2つ目がOneDrive上で複製を行っているアクションです
実際にはこのアクションまでに何らかの処理等が行われて、加工や通知などを行いますが今回はそのまま加工用フォルダーに同じ名称のファイルを作成しています
ファイルという設定項目は識別子なのでパスではない点に注意してください
メール受信の場合
メール受信の場合はWeb版のトリガーとなれるアプリである必要があります
Office系アプリが入っている前提なので、Outlookが最も処理で扱いやすいです
Outlook.SendEmailThroughOutlook.SendEmail Instance: OutlookInstance Account: $'''自己メルアド''' SendTo: $'''自己メルアド''' Subject: $'''Desktopフローからの自動送信''' Body: $'''kkk0014 上記IDコードの処理を実行する''' IsBodyHtml: True
Outlookでのメール送信アクションのコードです
これ単体では使用できませんが、使用できるフローとなると少し長くなり
ここでそれを説明すると蛇足になるのでこれで確認してください
こちらが、メール送信アクションの設定画面です
今回の場合はトリガーの役割となるので、自分のアカウントから自分のアカウントへメール送信を行います
「アカウント」と「宛先」はいずれも同一のメールアドレスを指定すると自己送信が可能です
次に「本文」の1行目ですが「kkk0014」と記載しています
これはこちらのトリガーでの実行すべき処理判定に利用できます
処理コードとでも言っておきましょう
コードなので形式だけ整えておきましょう
例えば、1番目の処理なら「kkk0001」というように、数値の部分だけ連番で記載します、ここの詳細は後述します
あとは、コードだけだと迷惑メールに指定される可能性もあるので
適当に日本語の通じるメッセージを追記しておきましょう
また「本文はHTMLです」のチェックはオン(画像の状態)にするようにしておきましょう、これをしていないとHTMLのコードが本文として表示されてしまいます
次にPowerAutomateWebの作成を行います
今回はGmailになっていますが、Outlookではトリガーと本文指定が違うだけですので適宜読み替えてください
1つ目の「新しいメールが届いたとき」がトリガーとなります
指定としては、件名をDesktop版で指定したものと同一にします
これを行っていないと、届いたメール全てでフローが実行されてしまいます
つまり、Desktop版から送信するメールの件名は他のメールと重複しそうなものは指定しないようにする必要があります
だいたい、Automateとか自動送信とかといった単語を組み合わせておけば重複することは無いでしょう
どうしても件名だけで重複がのぞけないのであれば、送信者であったり他の項目で絞っていきます
1つ目のアクションでは、本文内容から処理コードを抜き出します
このアクションは「テキスト関数」というアクションを使用します
検索に「文字列」と入力すると表示されます
このうちの「部分文字列」というのが上記のアクションになります
指定した文字列から、任意の文字位置から指定の文字数を指定することで抜き出しが行えます
ちなみにこれ自体は関数にも同様の役割のモノがありますが、
基本的にPowerAutomateWebの関数は可読性が低く、アクション名の修正に対応できない点があるのでなるべくアクションを利用する方が良いです
また、このアクションでは文字位置は0から始まる点に注意してください
1文字目から抜き出す場合は「開始位置」が0となります
あとはコードの形式に合わせた文字数を指定するだけです
あとは、スイッチを利用して処理コードごとの分岐を設定します
この時の条件に上記で取得した部分文字列を指定します
そのケース一致のところに任意の処理を作成します
フォルダー作成の方と違い、Web版のフローで処理の条件分岐が必要となるので少し煩雑に感じるかもしれませんがこちらの利点は比較的処理開始が早い点です
OneDriveのファイル作成は数分実行までかかることがありますが、こちらの受信処理はすぐに実行されるのでGmailでフローを作った場合は、Outlookに受信されるより先に処理結果が出てきたりします
ようするに一長一短なので、運用上の点から検討してください
上記の様に限定的ではありますが、Desktop版から自動的にWeb版のフローに移行させることが工夫次第で可能となります
ここで紹介した方法以外にも、Web版のトリガーに設定可能なものでDesktop版から処理出来ることはあります
いずれも少しずつアクションを見て、出来ることを再確認していってください