受注までに至っていないのですが時々相談をいただいているPower Automateを触ってみて、ググってもあんまり見つからなかったのでやってみたことを書いておきます。
しかもPower Automate ってDesktopで使えるようになったら、Onlineのリファレンスが少ないこと少ないこと。フォームに入力→予定表に登録やメール送信 ってレベルのイメージでした。
今回やること
案件ごとに決まったフォーマットの書類を複数作らなければいけない
共通項目(会社名とか住所とか)を自動入力したい
こんな要件があって、まずはフォーマットの書類を案件ごとに用意することを自動化します。
単純にフォルダをコピーすればいいのだけど、せっかくならここからPower Automateで作りたい。
共通項目をShare Point上で入力することをトリガーとして、テンプレートフォルダをコピーしてフォルダ名を書き換える
各ファイルへの書き込みはまた別途。。
意識したこと
なるべく作業者(言われた資料を準備する事務員のような人)の手作業を減らすこと
自動作成したフォルダが一覧で確認できるようにすること(いちいちフォルダ内を検索しにいかないでShare Pointで一覧が見られること)
案件一覧のようなリストをエクセルから脱却すること
Share Pointの構成
Share Pointのサイトを適当に作ります(ここではtest_excel)。
リストを新規作成し、フォーマットという名前をつけた状態です。
コピー元のフォルダとコピー先のフォルダは、Share Pointサイトを作成した時にできるデフォルトの「ドキュメント」にしました。「format」が案件用テンプレートフォルダ、「操作ファイル」以下にコピーした案件フォルダが設定されていく形になっています。
ドキュメント
├ format テンプレート
└ 操作ファイル
├ 案件A
└ 案件B …
リストからフローを作成
ここでリストのページを開いて、リストからフローを作成します。
テンプレートから「新しいアイテムがSharePointに追加されたときに、カスタムアクションを完了する」を選択します。
フローを作っていく
ではここでフローの画面に移ります。
フロー全体は以下のような感じです。すごく短いです。
リストに登録されたら、まずテンプレートのフォルダをコピーして、フォルダをリネームしています。
トリガーは When a new item is created です(自動でなってるはず)。ここでサイトとリストを選択します。
次のアクションをShare Pointの「フォルダーのコピー」を選択します。
コピーするフォルダーに先ほどの format、インストール先フォルダーにコピー先の操作ファイル を指定します。
「別のフォルダーが既に存在する場合」はお好みに合わせてください。ここではReplaceにしています。
右側のフォルダアイコンをクリックすると、Share Point内のフォルダから階層で追っていけるので楽です。フォーマットフォルダは意図しない編集がされないよう、別の場所においてもいいかもしれないです。
さて、ここでフォルダー名を変更したいのですが、アクションが見つかりません。
色々調べた所、以下の記述を発見。
ふむふむ?APIを利用しろと言ってますね。
ここでMicrosoftのサイトを検索。
Microsoft SharePoint
アクションが用意されていないので、APIを使って書き換えることになるそうです。
アクションは「SharePoint に HTTP 要求を送信します」を選択します。
方法(Method)はPOSTになります。
URIの書き方がわからず悩んだのですが、GetFolderByServerRelativeを利用する場合、/sites/サイト名/Shared%20Dosuments/ とするとSharePointのデフォルトのドキュメントフォルダになるようです。
ヘッダー部分は上記Microsoftのリファレンスを参考にしました。
ボディで書き換える名称を指定するのは { “FileLeafRef” : “書き換えたい名前” } になるようです。
ここでは、リストに追加した名前に変更します。
上記MicrosoftのAPIリファレンスでは、metadataを使っていますが、これを入れるとエラーが出たので削除したところ動きました。
設定は以上で完了です。マジで短い。
結果
では、操作確認するためにリストに「案件C」を追加します。
少し時間をおいてから、Share Pointのドキュメントを確認します。
案件Cのフォルダが作成されていました。内容を確認すると、テンプレートフォルダのformatと同じファイルが作成されています。
なお、フォルダのコピーは結構時間がかかります。。。
やってみての感想
そもそもRPAの部類はあまり好きではないです。そのくらいなら手打ちすれば良いと思うし、決まった形式でしか利用出来ないことが多い。エクセルだったらセルが1個ズレたらもう使えないなんてこともしばしば。やるなら今後の変更などにも対応できるような作りであるべき、でもなかなかそこまで見据えている人って発注者側にはいない(いない割に言われてしまう)、というイメージは代わりないです。
こういう自動化ってどこまで需要あるのか、社内で作るならいいけど外注するほどの効果があるのかは正直微妙です。自動化ツールやノーコード・ローコードが増えていて、どんどん価格破壊が起きてはいますが、それなりに信頼できる会社に依頼するとなるとそれなりのコストはかかるかと思います(し、かかるべきとも思う)。
せっかくMicrosoftが出しているのだから、エクセルを使うのと同じく社内で多少知識があったり興味がある人がやればいいと思うんですよね。もともとそういうことよくやってた人間なのですごく思う。
ただ、それにはまだちょっと知識や興味がない人には難しいかなと思う内容でした(特にリネーム)。この辺のアクションが用意されると、Share Pointに案件管理用のリストを作成してチーム内で共有し、書類の自動作成なんかはできるようになるかもしれないですね。