株式会社 ASAHI Accounting Robot 研究所
概要
これまでのRPA・PADだけでは困難だった業務プロセスの自動化が、クラウドフローとデスクトップフローを組み合わせる事によって実現可能となりました。両者を組み合わせた業務自動化の事例や、各フローを運用していくうえで考慮したいポイントなどを紹介します。
はじめに
前回までは、PAD(デスクトップフロー)でどんなことができるのか、Power Automate(クラウドフロー)の活用事例としてカスタムコネクタの作成方法などをご紹介してきました。
このデスクトップフローとクラウドフローはそれぞれでも自動化は可能ですが、組み合わせる事でより広範囲の業務を自動化可能となります。
PADはPower Automateの一部だとお伝えしていた通り、組み合わせる事で本領が発揮されます。
<クラウドフローとデスクトップフローを組み合わせる>
例えば利用しているクラウドサービスにおいてAPI連携が可能な場合、更新された情報だけを抽出してExcelにレポートをまとめ、そのレポートをPDFファイルとしてメールで報告したり、紙媒体として出力するなど、クラウドサービスとデスクトップ上の操作を組合わせたりする事がこれまでよりも簡単に、さらにより「止まらない」フローとして実装可能になります。
というのも、クラウドサービスやWeb サービスは更新などで画面レイアウトが変更されるといった事が割と頻繁に起こり、UI要素のセレクターをきちんと修正していないと、更新前までは押せていたボタンが押せなくなったりと、フローが止まってしまう事があります。弊社にもそのようなお問合せが数多く寄せられています。
しかし、API連携が可能であることが前提にはなりますが、クラウドフローを使う事でクラウドサービスの自動化部分については画面操作を行う事なく処理できるようになりますので、余計なエラーでフローが止まるという事を減らすことが可能です。
クラウドフローとデスクトップフローの組み合わせにおいて、私が大事だと思っている事は「いかに効率的にクラウドフローから必要な情報を抽出してデスクトップフローに引き渡すか」だと考えています。
クラウドフローからデスクトップフローへの値の引渡や、デスクトップフローから別のデスクトップフローへの値の引き渡しには「入出力変数」を使います。
<PAD側で入出力変数を設定する>
入出力変数の設定はPAD側で行います。
フローデザイナーの右側のペーンで「入出力変数」の項目で「+」を押下し、以下の内容を設定します。
変数の種類:入力 or 出力
変数名:当該デスクトップフローの中で利用する変数名
データの種類:変数の型(現時点ではテキスト型のみ)
規定値:初期値(当該変数に何も値が入ってこなければ規定値が使われる ⇒ テストなどで便利)
外部名:当該変数を外部から参照する際の名前
ここで注意しておきたいポイントとしては、現時点では受け渡す事ができる変数の型はString、テキスト型のみという点です。
リスト型や、データテーブル型を渡しても意図する形での利用が現時点ではできません。
受取った値をデスクトップフロー側で利用したい形に変換、変更する処理を入れる必要があります。
これについては、Microsoft社が公開している今後のロードマップで他の変数の型も対応するという情報が上がっていますので、今後に期待したいところです。(More data types for input and output variables - Power Platform Release Plan | Microsoft Docs)
<クラウドフローの中にデスクトップフローを取り込む>
入出力変数を利用しながらクラウドフローの中に上手にデスクトップフローを取込んでいく事で、開発工数を下げつつ大きな流れの業務フローを自動化する事が可能になります。
私個人としてのおすすめとしては、ある業務の自動化を実装する場合、全体的なフローの流れはクラウドフローで構築し、操作対象のソフトウェア・サービスがAPI連携に対応していない等、どうしてもPCの画面上の操作の自動化が必要になった場合に当該部分の作業のみをデスクトップフローで構築する事で、フローのトリガーによる起動やスケジュールによる起動も可能になり、自動化が促進される流れです。
企業のそれぞれの事情により現時点ではPADの無料版しか使えていないという企業においても、今後全社的にRPAなどの技術を活用して業務の自動化を推進していくためには、クラウドフローとデスクトップフローの組み合わせを検討していく事をお勧めします。
端的にいうとライセンスを購入した方が良いという話ですが、個々の社員が作成したフローを共有する事で全社への展開(スケール)もしやすくなってくると思います。
<クラウドフロー内で「式」を使う>
クラウドフローとデスクトップフローを組合わせる際、またはデスクトップフロー内で上手に必要な情報だけを取得してきたい場合などには、クラウドフロー内で「式」を使う必要があります。
求めている自動化については「式」を使わずにも実装可能な処理もありますが、たいていの場合余計な繰返し処理などが発生し、処理の時間がかかってしまいます。
「式」をしっかりと使う事で必要な情報を適切に取得できるうえ、開発者としてのスキルも向上していくと思いますので、是非開発経験の浅い方も頑張ってみていただければと思います。
例えば、前回作成したカスタムコネクタを利用して、feeeで事業所一覧を取得した場合、freeeで複数事業所を登録していたら当然結果は複数返ってきます。
複数事業所の中から処理したい事業所を抽出してくるために、式を使わない方法としては「Apply to Each」アクションを利用して繰返し処理の中で事業所名(今回であれば”display_name”)が対象の事業所かどうかを判別して後続の処理を進める方法がありますが、これでは事業所数が多ければ多いほど判定に時間を要してしまい、処理全体の時間もかかってしまいます。
そこで式を使う事で、余計な繰返し処理をする必要がなくなります。
上の図ではカスタムコネクタを利用して事業所一覧を取得し、その後で取得したリストから事業所が「開発」という文言を含むものを抽出し、次に抽出後のリストから最初の値を取得するという処理をしています。
ここで画面上3つ目のアクションで設定している式が「body('FilterCompanyList')?[0]」になります。
FilterCompanyListのアクションの結果の0番目の要素の値をとってくるという式を指定しています。
こうする事で必要な情報を適切に抽出してくることが可能になります。
このように、クラウドフローとデスクトップフローを効果的に活用するには入出力変数とクラウドフローの式を利用する事が重要になってきます。
「掲載日:2022年6月1日」
【連載目次】株式会社 ASAHI Accounting Robot 研究所 【第1回】 Microsoft のRPA機能 Power Automate for desktop の実力 |