ゆとりSEは副業がしたい

ゆとりSE

RPAやPythonをはじめとした情報系の発信やガジェットの紹介などがメインです

【UiPath】モダンフォルダとマシンテンプレート ロボット登録までの手順

f:id:oichiki:20210115015221p:plain

参考サイト

UiPathの公式に上がっているスライドが一番わかりやすくイメージ掴みやすいので、まずはこちらを参照してください。 初心者の方はUdemyの講座を受講することをお勧めします。 www.uipath.com

モダンフォルダ

昨年に9月にUiPathを使い始めた私は、クラシックフォルダの使い方を学び始めてすぐにモダンフォルダが出てきた?ので、とても混乱していました。


最近になってやっと人に説明できるくらいになったので、記事にまとめておきたいと思います。ただ、今回はモダンフォルダについて詳しく書くわけではなく、ロボットの登録を行うところまでを行いたいと思います。


また、過去に書いた記事はクラシックフォルダの場合の手順なので、クラシックフォルダを利用する場合はそちらを参考にしてください。
autolazy.hatenablog.jp


クラシックフォルダとモダンフォルダの違い(ロボットの登録)

クラシックフォルダのロボット登録手順

クラシックフォルダでロボットを登録する場合は、

1. 標準マシンを登録する
2. ロボットを登録
3. ロボットをマシンと関連付ける

といった流れを取っていたとおもいます。

モダンフォルダのロボット登録手順

モダンフォルダでは以下のような手順でロボットを登録することになるようです。

1. ユーザ登録
2. マシンテンプレート登録
3. ロボットは自動で登録される(ユーザ設定から選択する)

モダンフォルダではロボットグループは無く、マシンテンプレートに接続されているマシンからプロセスが実行されます。ロボットはユーザに紐づいているので、ユーザ編集からロボットが自動的に作成されるように設定します。
以下がそれぞれの手順の画面になります。

ロボットの登録手順

ユーザ登録

f:id:oichiki:20210115012103p:plain
ユーザ登録
おそらくこの記事をご覧いただいている方は、すでにユーザを登録されていると思うので、新しく登録する必要はありません。会社でOC運用等を担当されている方は、メンバーに合わせて適宜ユーザを登録してあげてください。

マシンテンプレート登録

f:id:oichiki:20210115012210p:plain
マシンテンプレート追加
画面右のマシンテンプレートを追加ボタン(青いボタン)から作成します。 テンプレート名は任意の名前を入力します。


OCからスケジュール実行等もすることを想定して、Unattendランタイムも1つ振っておきます。(任意)
作成できたらマシンキーを標準マシンの時のように設定します。 手順は過去記事を参照してください。 autolazy.hatenablog.jp

Attended ロボット

f:id:oichiki:20210115011449p:plain
Attendedロボットの自動作成をONにする
ここはおそらくデフォルトはOFFになっていると思うので、確実にONにしてください。ライセンスの種類が「ユーザーグループからの継承ライセンス」で正常に動かない場合は、ほかのものに変更してみてください、Community Editionを利用している場合はAttendedで問題ないと思います。


変更した場合はドメイン名\ユーザ名を設定する必要があります。自身が現在使用しているPCとユーザ(PCの)を使用する場合は、コマンドプロンプトで「whoami」と入力し返ってきた値を入力してください。

Unattended ロボット

f:id:oichiki:20210115011629p:plain
Unattendedロボットの自動作成をONにする
ここにも基本的には「whoami」の結果を入力するといいと思います。パスワードはPCのパスワード(Windowsにログインする際の)になります。

プロセスの実行まで

あとはプロセスを実行する際にマシンテンプレートを設定するだけです。 まだモダンフォルダが作成されていない場合は、テナントのフォルダタブからモダンフォルダを選択して作成します。 作成する際に実際に使用するユーザとマシンテンプレートを割り当ててください


あとはジョブを実行する際にユーザと実行したいマシンを設定します。

f:id:oichiki:20210115013258p:plain
ジョブを開始

まとめ

他にもいろいろ変わった点はあるのですが、とりあえず実行するところまでざっくり書いてみました。もし同じようなところで詰まっている人がいましたら、ぜひ参考にしてください。

【リモートワーク】新卒1年目SEのテレワーク・在宅勤務のおすすめアイテム #1

f:id:oichiki:20210114014545p:plain

リモートワークのためにデスク周りを整える

昨今はコロナウイルスの感染拡大もあり、リモーワーク テレワーク 在宅勤務が一般的になっていますね。 私は2020年度入社の新人なのですが、入社日から研修、配属後もずっとリモートで勤務しており、作業効率を上げるべく様々なものを購入してきました。今回は中でも買ってよかったと思っているものを列挙し、いくら投資したのかとその効果を確認してみようと思います。

ウルトラワイドモニタ

やはりモニタは解像度が高くて大きいものがいいです。解像度の高いウルトラワイドモニタは、ウインドウをたくさん開いても広く使えるため、会社端末操作用のリモートデスクトップウインドウ、ウェブ会議アプリ、ブラウザの3つを同時に開きながら快適に作業ができます。

ただ一点注意なのが画面共有の時です。画面共有をするとき、基本的に相手の画面はこちらより解像度が低いことが多いので、小さくて見づらいといわれることが多かったです。そのため共有する際は適宜拡大等をして対応しています。

モニタアーム

ちなみにモニターはスタンドで設置するとデスクのスペースを占領するのであまりお勧めしません。金銭的に迷ってもぜひモニタアームの購入を検討してみてください。私が使用しているのは高いものではないですが、それでも十分快適に作業できています。

Huawei Freebuds3

ワイヤレスイヤホンはすでに多くの方が利用されていると思いますが、カナル型でないアクティブノイズキャンセリング搭載のイヤホンを利用されている方は少ないと思います。

リモートワークをしている際は長時間つけていることが多いので、耳に圧のかかりにくいオープン型の方が楽ですし、ノイズキャンセリング付きでこの価格は破格だと感じています。個人的にはなぜAirPodsばかり売れて、FreeBudsが売れないのか不思議に思っています。

またマルチペアリングにも対応しているので、PC・スマホタブレットなど様々な端末とペアリングしておいて、接続を切り替えるだけで使用することができます。安い中華性のものだと都度ペアリングする必要があったりすので購入の際は気を付けてください。もちろんマイクもついているので、web会議にも利用可能です。

ウォールステッカー ボードシート

こちらは壁に貼り付けるだけでホワイトボードとして使えるアイテムです。ホワイトボードを買うとスペース的に余裕がないので、壁に貼ることで全くスペースを取らずに使えます。

在宅だと人目を気にせずに資料のイメージだったり、コードの設計イメージを書きなぐることができるので、頭の中を整理するために日々活用しています。価格も手ごろなのでぜひ利用してみてください。

ゲーミングチェア


【お買い物マラソンP10倍】 ファブリック オフィスチェア ゲーミングチェア ハイバックチェア 3Dアームレスト オットマン RACING ゲーム オフィス パソコン 椅子 チェア おしゃれ リクライニング フルフラット ヘッドレスト ランバーサポート

椅子に気を使われている方はとても多いと思いますが、エルゴヒューマンのような高級品には手が出せず、ゲーミングチェアはデザイン的に使いづらいという方は、少なくないと考えています。

私はインテリアに溶け込みつつ、疲れない椅子を探していてこのゲーミングチェアにたどり着きました。私はグレーを使っているのですが、ゲーミングチェアによくある、いかついロゴなどはなく優しい色のグレーなのでインテリアに馴染み、web会議でヘッドレストが映っても気にせず会議ができます。

座り後ごちもよく半年使って不具合も特になかったので、椅子の購入を検討されている方にはぜひおすすめしたいです。

合計金額

私が購入した際の金額でざっくり計算すると、


60000 + 4500 + 15000 + 1500 + 17000 = 98000円



となりました。合計10万円使用していますが、この半年間で業務も滞りなくこなせており、ベンダー資格1つ・高度情報1つを取得できたので、快適に過ごせて資格取得できて報奨金でむしろ大きくプラス収支と考えると、良い買い物だったと思います。

まとめ

まだ他にも細かいものがあるのですが、今回は以上の代表的な5つまでの紹介としたいと思います。御覧いただいた皆さんも、もう少し快適なリモートワークライフのためにご購入を検討してみてください。

【UiPath】Orchestratorのタイムトリガーを使用して、マネーフォワードの情報を常に更新する。

参考書籍


UiPath業務自動化最強レシピ RPAツールによる自動化&効率化ノウハウ [ 株式会社完全自動化研究所 小佐井 宏之 ]

マネーフォワードを毎回更新するのは面倒くさい

私は資産管理にマネーフォワードを使用しているんですけど、パっと開いたときに直近の入出金や証券口座・仮装通貨の残高が反映されてないことが多く、いつもわざわざ一括更新をしています。この一括更新が地味に時間をとるので、できるだけ最新の状態を保ちたいと思いました。 そこで今回は、Orchestratorのタイムトリガーによって定期的に更新ジョブを実行しする運用を考えました。更新処理自体は簡単なのでパパっと実装していきます。 インストールがまだの方は過去記事みると参考になるかもしれません。 autolazy.hatenablog.jp

マネーフォワード一括更新用のワークフロー

マネーフォワードの一括更新は、一括更新ボタンを押せばいいだけなのでとても簡単です。一応要素の存在を確認し、ログインできていなかったらログイン処理を経てから、一括更新ボタンを押下します。

ログインチェック部分

f:id:oichiki:20210113125629p:plain
ログインチェック
ログインチェック部分では要素の存在判定でログインボタンの有無をboolean型の変数で取得し、Trueだったらgoogleでログインするようにしています。

一括更新ボタンの押下

f:id:oichiki:20210113125842p:plain
一括更新ボタンの押下
更新ボタンはクリックアクティビティでクリックするのみです。クリックの終了後はタブを閉じる処理を入れてデスクトップ上にブラウザが残らないようにしています。タブを閉じるアクティビティを使用する場合は、ブラウザを開くアクティビティの出力にブラウザ変数を設定する必要があります。
f:id:oichiki:20210113130118p:plain
ブラウザ変数の出力

Orchestratorのタイムトリガー

Orchestratorではジョブを即時実行するだけでなく、時間をトリガーとして実行することが可能です。ちなみに、windowsのタスクスケジューラからロボットを実行するのはライセンス違反になるようなので、スケジュール実行はOrchestratorを使用するようにしましょう。 Orchestrator上のタイムトリガーは、オートメーションタブのトリガーから設定します。

f:id:oichiki:20210113130614p:plain
トリガー
右の+ボタンを押すと、定期実行したいプロセスの選択、マシンの選択、スケジュールの設定ができます。今回は1時間ごとに実行するように設定しています、
f:id:oichiki:20210113130903p:plain
トリガーの設定

まとめ

このワークフローのおかげで、開くときは基本的に最新の情報を表示することができるようになりました。現在は使用していないPCでロボットを実行しているので問題ないですが、メインPC で実行する場合は、時間になるとブラウザが立ち上がってくるので少し邪魔になると思います。今後はバックグラウンドでの実行やPiPでの実行など、裏でできるようなワークフローも検討していこうと思います。

【UiPath】アフィリエイト広告の張り替えを自動化して、はてなブログ運営で楽がしたい。

参考書籍

アフィリエイト広告の張り替えが面倒くさい

当ブログでは各種アフィリエイトサービスから、何となくIT関連のアフィリエイト広告を気まぐれに張り付けているのですが、これらの広告は有効期間があったり、新しい広告が出ていたりします。 その際は広告を張り替えるのですが、これらのアフィリエイト広告は手動でリンクを張り付けているので、過去の記事の分も更新しようとするととても時間がかかります。 そこで今回はUiPathを使って広告の張り替えの自動化を行いました。

全体の構成

ワークフローの全体像は以下になります。

f:id:oichiki:20210111223801p:plain
全体
実行の流れとしては、入力ダイアログに広告リンクをString型の変数として入力し、記事管理ページにあるそれぞれの記事の広告を、入力したものに更新していく形になっています。 当ブログの記事は目次の上に一つアフィリエイト広告を挿入する形としており、更新対称の広告はこの1つになります。

記事のページ情報を取得

記事管理ページにある各記事をクリックするためにセレクタに入力する情報が必要であるため、データスクレイピングを用いて記事タイトルを全取得します。

f:id:oichiki:20210111225858p:plain
記事ページの情報を取得
データスクレイピングによって記事タイトルをデータテーブルとして取得し、各行ごとに繰り返して処理していきます。

記事内容の更新

記事内の広告を実際に更新する処理は以下のように実装しました。

f:id:oichiki:20210111230626p:plain
広告の更新
テキストの更新内最初のの代入では、記事全体の文字列を改行で分割して、String型の配列にしています。textListは最終的に本文として出力するためのリストです。 この配列に対して要素を1つ1つ確認を行い、文字列が目次と該当したら([:contents]と一致する)そのindexを取得し、textListの最終行を新しい広告リンクの変数と入れ替えます。(目次のindexに該当する箇所のチェックを行っている際は、リストの最終要素が広告リンクとなっている)確認において、空白でない場合はtextListに要素を追加していきます。

更新後の処理

広告の更新処理が完了したら、また記事管理ページに遷移し次の記事の更新を進めていきます。 すべての処理が完了したら、タブを閉じるアクティビティによってブラウザを閉じて終わりです。

【UiPath】Action Centerを使って自動化の中でデータのチェック・承認を行う

参考書籍


UiPath業務自動化最強レシピ RPAツールによる自動化&効率化ノウハウ [ 株式会社完全自動化研究所 小佐井 宏之 ]

Action Centerとは

Action Centerは2020年に提供開始したツールの一つです。 RPAは基本的にロボットが自動で処理を進めていく形になりますが、どうしても人間の目で判断したい場面というものは存在します。 このようなケースにおいて、人間のチェックをOC上で行いつつスムーズに処理を継続実行できるのが、Action Centerの特徴になると思っています。 詳しくは公式をご覧ください。 www.uipath.com

実際に使用してみる

今回は簡単なサンプルを使用して、Action Centerの実装方法と流れの確認を行っていきます

全体の流れ

作成したワークフローの全体像はこのように以下になります。

f:id:oichiki:20210110012328p:plain
全体

テストデータの作成

公式のサンプルではOCRを利用するものが主ですが、今回はOCRの代わりに手動で値を入れてテストしています。

f:id:oichiki:20210110012438p:plain
テストデータ作成
Action Centerの確認画面で資料を表示するため、画像データをbase64エンコードします。
f:id:oichiki:20210110012646p:plain
base64エンコード

フォームタスクの作成

フォームタスクの作成では、実際に確認作業を行う際に表示する画面の作成を行います。 アクティビティは以下のようになっています。

f:id:oichiki:20210110012944p:plain
フォームタスクを作成
ここで引数に表示したい値を入れてあげます。引数に追加すると自動でフォームデザイナー上にテキストボックスが作成されるようです。
f:id:oichiki:20210110013114p:plain
フォームタスクを作成:引数
見た目を整えるためにフォームデザイナーを開き、見やすいように表示します。今回はレイアウトから列を追加し、1列目に画像、2列目に確認項目を配置しました。 最後に出力としてタスクオブジェクトの変数を設定します。タスクの出力が完了するとロボットは実行を中断します。

タスクの再開

上記のアクティビティで設定したタスクオブジェクトの変数を、フォームタスク完了まで待機し再開のアクティビティで受け取ることで、タスクが承認されると自動的にロボットが実行を再開するようになります。

f:id:oichiki:20210110013452p:plain
フォームタスク完了まで待機し再開
本来はこの後に、各種システムへの登録作業に移りますが、今回はメッセージボックスの出力のみとしています。

Orchestratorからタスクの承認

ワークフローを実行するとOrchestratorのアクションタブにタスクが追加されます。今回は明示的にユーザをアサインしていないので、管理者としてタスクを承認します。 以下の画像のように、タスクが作成されています。

f:id:oichiki:20210110015847p:plain
アクションタブ
タイトルリンクをクリックし、フォーム画面を開きます。今回は画面上部から割り当てで自分自身を割り当て、承認のボタンを押します。
f:id:oichiki:20210110015950p:plain
フォーム画面
ボタンの押下後、OrchestratorからUnattended robotにより残りの処理が再開されます。またこのタスクが承認されず処理が中断されている間、Unattended Robotはフリーになるので、別のジョブを実行することが可能である点も良い点だと思います。

まとめ

最近ではAIを利用することが多くなっていますが、人間の確認が必要な作業はどうしても残ってしまいます。その際はスムーズな処理を阻害しないよう、Acrion Centerのような機能を利用することで、柔軟に対応することが可能となるのでは、と思っています。

【UiPath】Orchestrator APIを利用してジョブの実行をする(Start Job, HTTPリクエスト)

おすすめ書籍

Orchestrator APIをつかう

UiPath OrchestratorはGUIによる操作だけでなく、API経由で操作をすることも可能となっています。 今回は2種類のプロセスを作成し、1つ目のプロセスが2つ目のプロセスを実行するという流れを実装してみます。
プロセス1:OC API TEST
プロセス2:Hello
処理の流れは、
1つ目のプロセスを手動で起動する → API経由でOrchestratorからHelloを実行する(Unattended)→ プロセス2が画面にHelloと表示する。といった感じになります。
UiPath公式: www.uipath.com

OrchestratorへのHTTP要求

使用するのは以下のアクティビティです。
f:id:oichiki:20201230162047p:plain
このアクティビティを利用することで、Orchestratorの各種操作をAPI経由で実行するとこが可能となります。

プロセス1の処理

プロセス1の処理は大きく分けて3つあります。
1. releasekeyの取得 1. startinfoの登録 1. API経由でプロセス2実行
それぞれの実装は以下のようにしています
・releasekeyの取得
f:id:oichiki:20201230165626p:plain
f:id:oichiki:20201230165727p:plain
・startinfoの登録
f:id:oichiki:20201230165804p:plain
API経由でプロセス2実行
f:id:oichiki:20201230165856p:plain

【UiPath】環境によって変わる定数?ハードコーディングをやめるConfig.xlsxの使い方。

おすすめ書籍

定数にしたいけど動作環境によって変わる値

定数として扱いたいけどワークフローを動作させるときによって、格納する値を変えたいものってありますよね。 定数なので、ハードコーディングしてもいいような気もしますが、動作環境によって使用する値が変わる(使用者とかUI変更とかバージョン更新とか...)ことを考えるとこれは避けたい対応です。 毎回入力ダイアログとかで入れてもいいですが、せっかくのRPAなので作業が介在してしまうのはもったいないです。そんなときは設定情報を書き込むためにExcelファイルを用意して、データをまとめて読み込みましょう。

Config.xlsxとは

別にConfig.xlsxって名前でなく任意の名前でも構わないのですが、アカデミーではこの名前を使っていたのでそのようにしています。レイアウトは下記のようにしています。

f:id:oichiki:20201102195312p:plain
configファイルの例
1行目は読み込んだ時にDataTableのヘッダとして扱うので、適切な値を設定することをお勧めします。Description行は備考欄のような使い方をしていて、実際に読み込みに使用しないワークフローにするので、必要があれば記載してください。今回はテスト用としてSute.jpのユーザ名を設定してみます。 sute.jp
f:id:oichiki:20201102202817p:plain
設定例
これを読み込んで実際にログインするワークフローを作成します。

ログイン用ワークフロー

Configファイルの情報はDataTableに出力し、繰り返しの中で辞書型に格納していきます。辞書型はこのように設定しています。

f:id:oichiki:20201102215156p:plain
辞書型の変数
KeyにName列の値、ValueValue列の値をそれぞれ格納していきます。 後はブラウザーを開いてテキストボックスに「Config("ユーザ名")」を入力してログインボタンを押下するだけです。

まとめ

今回のように認証情報をConfigファイルに入力することはあまりないと思いますが、このような使い方があるということを知っておくだけでも、UiPath活用のアイデアが広がるのではないでしょうか。認証情報の管理はOrchestratorによってアセットを使ったりもするので、いつかネタに使用と思います。