Enterprise Blue Ocean ◮

神谷町RPAブログ

  • Blue Prism 初級者向け
    • Blue Prism を 無料で利用する 方法はこちら
    • Blue Prism の Blue Prism 事始め!オンボーディングの記事はこちら
    • Blue Prism で Excelを操作 する記事はこちら
  • Blue Prism、ちょっと進んだコンテンツ☆
    • Blue Prism の ベストプラクティス 記事はこちら
    • Blue Prism の 逆引きナレッジ wiki こちら
    • Blue Prism を リアルタイムで起動する 方法はこちら
  • RPA、そもそも論!
    • Youtube で、あらためて振り返る RPA とは?・・・はこちら☆

Web属性情報の取得と動的パスの活用について

どうもこんにちは、ドリームアイランドです。
最近めっきり秋らしくなってきましたね。

 

というわけで、今日は

Web属性情報の取得と動的パスの活用について

についてです(どういうわけだ

 

Blue Prism DXにアセット公開されました!

前回の記事に掲載しました「Blue Prism DXアセット一覧作成プロセス」、

Blue Prism DXに公開されました!

digitalexchange.blueprism.com

 

この記事では、このプロセスを作成する中で出てきた

①Webページの属性から情報を取得する方法
②動的パスを作成し活用する方法

について触れていきたいと思います。

 

①Webページの属性から情報を取得する方法

Webページから情報を取得したいとき、

例えばこのアセット名についての情報であれば、

ブラウザモードでスパイした要素に対し「テキストを取得」とすれば情報を取得できます。

f:id:EnterpriseBlueOcean:20201001151822p:plain

f:id:EnterpriseBlueOcean:20201001144113p:plain

 


しかし、このパネルに付属するURLの情報を取得したい場合にはどのようにすればよいでしょうか。

f:id:EnterpriseBlueOcean:20201001144556p:plain

 

この場合には、読み取りステージのデータタブで「属性を取得」と選択し、

属性名に適切な属性名を入力してください。

f:id:EnterpriseBlueOcean:20201001145645p:plain


ここで言う適切な属性名については、Chromeを開発者モードに切り替え(F12を押すと切り替わります)、

HTMLのソースを見ることで確認可能です。

f:id:EnterpriseBlueOcean:20201001145317p:plain

f:id:EnterpriseBlueOcean:20201001145336p:plain

 

Blue Prism DX の場合は、href、またはdata-ng-hrefという属性を設定することでURLを取得できました。

 

②動的パスを作成し、活用する方法

Blue Prism DXではアセットがパネル表示され、

1画面に最大で12個のパネルが表示されます。

これらの情報はテーブル情報ではないため、一括で情報を取得することができません。
すなわち、一つ一つ情報を読み取っていく必要が出てきます。
これらの情報をスパイすると、下記のようなパスの差異がわかります。

 

1個目のパネル
/HTML[1]/BODY[1]/DIV[2]/MAIN[1]/SECTION[1]/DIV[1]/DIV[2]/DIV[1]/SECTION[1]/DIV[1]/A[1]

 

2個目のパネル
/HTML[1]/BODY[1]/DIV[2]/MAIN[1]/SECTION[1]/DIV[1]/DIV[2]/DIV[1]/SECTION[1]/DIV[2]/A[1]

...

12個目のパネル
/HTML[1]/BODY[1]/DIV[2]/MAIN[1]/SECTION[1]/DIV[1]/DIV[2]/DIV[1]/SECTION[1]/DIV[12]/A[1]

 

この赤文字で書いた部分を変えていく、つまり動的にパスを生成できれば、
1から12までのすべての情報を取得することができます。

これを実現するために、今回は以下の手順で進めました。

 

  1. アプリケーションモデラーで要素を識別し、パスの情報を「動的」に設定する

    f:id:EnterpriseBlueOcean:20201001150106p:plain

  2. 繰り返し処理の中で、計算ステージを使い、カウント変数とパスを組み合わせた動的パスをテキスト変数で出力

    f:id:EnterpriseBlueOcean:20201001150241p:plain

    カウント変数名が「Count」の場合、
    "/HTML[1]/BODY[1]/DIV[2]/MAIN[1]/SECTION[1]/DIV[1]/DIV[2]/DIV[1]/SECTION[1]/DIV[" & [Count] & "]/A[1]"
    と記載

  3.  読み取りステージで要素を取得する際、パラメーターをクリックし、
    値に作成した動的パスを設定し、URLを出力

    f:id:EnterpriseBlueOcean:20201001150740p:plain

     

  4. 読み取りが完了した後、カウント変数をカウントアップ(1を足す)する
  5. 取得したデータをコレクションに格納
  6. カウント変数の上限(12より大きくなったら終わり)が来るまで2~5を繰り返す

 

以上の手順を踏むことで、動的パスから値を取得することができます。

こちらの実装は過去の記事を参考にしましたので、併せてこちらもご覧ください。

 

www.ebocean.work

www.ebocean.work

まとめ

・BluePrismアセット一覧作成プロセスがBlue Prism DXに公開されました
・Webページの属性から情報を取得する方法について紹介しました
・動的パスを作成し活用する方法について紹介しました

 

私深夜ラジオも好きなんですが、秋っぽい話題ということで栗ご飯がよく話題にあがりますね。

栗ご飯食べたい(単純

 

Blue Prism DXのアセット一覧を作成するプロセス作ってみた

みなさん初めまして。「ドリームアイランド」と申します。


なんでドリームアイランドかというと、

高校生の頃にWOWOWで見た「妄想代理人」という作品のオープニング、

「夢の島思念公園」

に衝撃を受け、それ以来なんやかんやこういった名前を使っているというわけです。


【平沢進】夢の島思念公園・Full(歌詞付き)~妄想代理人OP~

 

えっ、この名前をどこかで見たことがある?

f:id:EnterpriseBlueOcean:20200928223634j:plain

知らんな。

 

それはさておき本題なんですが、

みなさんBlue Prism DXというサイトはご存じですか?

 

神谷町ブログで何度か紹介のあった通り、

Blue Prismのアセット(VBOやコネクタ、スキルなどの部品)を

ダウンロードすることができるサイトです。

 

www.ebocean.work

 

Blue Prism DX

digitalexchange.blueprism.com

 

Blue Prism の部品連携ソリューション

発見したり、ダウンロードできる Web サイト。

正式名称は Blue Prism Digital Exchange

いわゆるマーケットプレイスですね。

 

日本語の部品(アセット)もあるので、

活用できるシーンは少なくないと思います。

 

過去何度かアセットについてまとめがありましたが、

2020年9月現在、どんなアセットがどれだけあるのでしょうか。
ちょっと見てみましょう。

 

まずはBlue Prism DXのトップページから

「Explorer」タブ(日本語表示だったら「調べる」タブ)で

「Explore Digital Exchange Assets」という画面に遷移します。

f:id:EnterpriseBlueOcean:20200928225436p:plain

↓クリックすると…

f:id:EnterpriseBlueOcean:20200928225552p:plain

 アセットが表示される画面へと遷移します。

 

画面下までスクロールしていくと、

1ページに12個のアセットが表示されていることがわかります。

 

なお、一番下を見ると、

f:id:EnterpriseBlueOcean:20200928230413p:plain

48ページもある…(2020年9月28日現在)

 

これを1ページ1ページ見ていくのはちょっと大変ですよね。
そこで今回は

Blue Prism DXに載っているすべてのアセット情報を一覧にするプロセス

を作ってみました。

 

デモ動画

デモ動画がこちら。


BluePrismDXアセット一覧作成プロセス

 

このプロセスでやっていること

Google Chromeでアセット検索画面を開いて、

アセットの情報を1パネルずつ取得していき、

12パネル全て読み取ったら次のページ番号をクリックする、

というのを最終ページまで繰り返します。

 

最終ページの最後のアセットを読み取った後、

読み取ったすべてのアセット情報をExcelファイルに書き込み、保存します。

 

出来上がりのファイルがこちら。

f:id:EnterpriseBlueOcean:20200928231601p:plain

一覧ができました! 

すべてのアセットの名前、概要、URLが記載されています。
※本文が英語の物がほとんどなので、翻訳機能も付けられればと考えていますが、

それはまた後ほど。

 

Githubにソース公開しました

Githubにソースを公開しました。

へんなところに気付いた方はissueを上げるか、

https://github.com/blue-prism/JP-BluePrismDX-AssetList/issues

または、普通に Folk して更新し、
プルリクしていただけます
と幸いです☆ミ

 

まとめ

・Blue Prism DXのアセット一覧を作成するプロセスをGithubに公開しました。

 


引っ越したので、近所にあるビアガーデンに今週末行こうとしたら9月末まででした笑 残念 

データベースのパフォーマンスと保守

どもども、ジャナイホーです。

 

忘れないで下さい。

目をそらさないで下さい。

きちんと最初から、巻き込んで下さい。

 

データベースのメンテナンスのお話です。

 

最近急に。。。

どうも最近、、、、

 

  • コントロールルームとかスタジオ画面のレスポンスが悪くなった。
  • プロセスが時間どおりに終わらなくなった。
  • スケジュールの起動が失敗していることがある。
  • ランタイムリソースやリソースプールが不調で未接続に時々なる。

 

、、、、なんてことはありませんか。

既にカスタマーサポートに問い合わせてるよー、という方もおられるかもしれません。

 

実際、そんな話を、ほんとうにここ最近、聞く機会が多くなりました。

 

、、、で、ネットワークやOS環境が変わったなどといった要因も考えられますが注意して頂きたいのが、データベース=SQL Serverです。

 

データベーステーブルの大きさを確認する

長く動かしていると、セッションログが膨れ上がってきます。

ましてや、ログ出力のベストプラクティスを知らずに実装されたプロセスやオブジェクトを実行していると、書き込まれたセッションログが尋常じゃないほどになっていたりすることがあります。

先ずは、現状を確認してみましょう。体重を測ります。

 

SQL Serverが稼働しているデータベースサーバには、多分、SQL Server Management Studio(SSMS)という、管理画面があると思います。

それを開き、該当のデータベースを開きます。データベース名、ユーザ名、パスワードは、Blue Prismを最初にインストールしてデータベースを構築した際に入力していると思いますので、思い出して下さい(正確には、データベース管理者に聞いて下さい。焼き肉を奢るなどして、教えてもらって下さい。教えてくれないと思いますけど。)

そこで、該当のデータベースを選択し、ポップアップメニューから、

 レポート > 標準レポート > 上位のテーブルによるディスク使用量

というレポートを実行します。

f:id:EnterpriseBlueOcean:20200917212032p:plain

 

そうすると、特にレコード件数や使用率が高い(つまり、サイズが肥大化している)テーブルをリストアップしてくれます。

下記では、BPASessionLog_NonUnicodeというテーブルが大きくなっているのが分かると思います。

f:id:EnterpriseBlueOcean:20200917212127p:plain

 

これが、数百GBくらいまで膨れ上がっているようだと、それは、ヤバいです。

早いところ手当てしないと、成人病の予備軍です、どころか、病気が出ているはずです。

先に示したようなパフォーマンス劣化、スケジュール失敗、プロセス落ちる、スタジオがもっさりする、ランタイムリソースが繋がらない(というメッセージが出る)、などが発生していると思います。

数十GB程度まで小さくなっている状態まで、先ずはダイエットしましょう。

 

やることは、簡単です。

トレーニングジムに通うことでも、炭水化物を遮断することでもありません。

アーカイブです。

 

アーカイブの実施

アーカイブ」とは、セッションログの情報をローカルPCのファイルに出力して取っておいて、でも、データベーステーブルからは削除する、というものです。

これで、データベーステーブル、先の「BPASessionLog_NonUnicode」とか「BPASessionLog_Unicode」といったテーブルたちが、ダイエットされます。

取り出された脂肪(=セッションログの内容)は、ちゃんとローカルにファイルとして残っているので、監査目的で、見せてよ、と言われた時も、取り戻すことが出来ます。

 

削除」ってやってしまいますと、本当に消えます。気を付けて下さい。

 

アーカイブは、システム管理者画面で実施します。

緊急を要するような状態の場合は、手っ取り早く、手作業でアーカイブします。

f:id:EnterpriseBlueOcean:20200917212159p:plain

 

纏めてごそっといきたいところですが、たまりにたまっている、あるいはプロセスの作りや運用がイケてないと、大量のセッションログが対象に含まれ、時間がかかるどころか正常にアーカイブ処理が終了しなかったりします。

地道に、ひとつずつ、あるいは、小さい範囲で、ひたすら地道に、アーカイブしてってください。

 

こんな、のっぴきならない状態になる前に、ちゃんと、自動モードで定期的にアーカイブする運用をやっとくべきだった、と後悔することしきり、です。

パンクしてからでは遅いです。パフォーマンスが悪いときに大量のものをアーカイブしようッてったんで、ドダイ無理な話ってもんですよ。

手遅れになる前に、目をそらさずに、メンテナンスすること。これ大事です。

あるいは最初からDBに詳しい人を巻き込んでおくこと。これ大事です。

 

あと、イケてる作りのプロセス・オブジェクト開発を行うこと。これ、非常に大事です。別記事で解説しようと思います。

1週間で尋常じゃないくらい増える、なんてことがあるときは、ログのベストプラクティスを無視した作りになっていること請け合い。プロセス、オブジェクトを修正して、ログ出力を絞りましょう。

食べ過ぎ、飲み過ぎってやつですな。

 

アーカイブが出来たら、もう一回、データベースでレポートを出して、サイズが小さくなったか確認しましょう。

 

自動モードでのアーカイブ

毎回、手作業でアーカイブするのも億劫ですよね。

そんなときは、定期的に自動的にアーカイブさせちゃいましょう。

 

先の画面で「自動モードに変更」というボタンを押します。

デフォルトで、「6」か月過ぎた古いセッションログをアーカイブしてくれます。

この期間は、増え方や監査ポリシーなどに従って決めます。

手作業でアーカイブを少しずつしてみて、どれだけ減るか、なんてのも測定しながら決めるのも良いでしょう。

f:id:EnterpriseBlueOcean:20200917212224p:plain

 

アーカイブは、実は、AutomateC.exeというコマンドラインプログラムからも実行できたりします。

DB管理者からは重宝がられるかもしれません。

 

あ、アーカイブした(エクスポートした)先のファイル、これには、センシティブな情報も含まれていることもあると思います。取り扱いには注意して、暗号化するあるいはセキュリティがしっかりと担保されたエリアで保管するようにしましょう。

 

Blue Prism v6.5以降では、Data Gatewaysという機能もあります。

これを使って、セッションログを外に出してやり、SQL Serverデータベースは細マッチョでキープする、ということも出来ます。

 

 

注意しなくてはいけないテーブルは他にも。。。

知らず知らずのうちに、件数やサイズが肥大化する恐れがあるテーブルは、実はセッションログだけではありません。

以下のデータについても、注意が必要です。

  • プロセスの履歴
  • ワークキュー
  • スケジュール履歴

これらを削除するツールも用意されてたりします。これはカスタマーサポートへチケットを起票して問い合わせて下さい。「Housekeeping scripts」というものを出してくれると思います。

 

注意しなくてはいけないメンテナンス作業は他にも。。。

こういう話をしていると、DB管理者が登場してくると、他にやらなきゃいけないことは?という質問が出てきます。

  • フラグメンテーション(断片化)の管理とインデックスの再構築
  • 自動統計更新オプションの設定
  • データベース整合性チェックの実施
  • TempDBの監視
  • 自動拡張とディスク容量の監視

などです。

 

「何をやらなくてはいけないのか」は、以下に纏まってます。

Maintaining a Blue Prism Database Server」で漁ってみて下さい。

https://portal.blueprism.com/documents/v6-data-sheet-maintaining-blue-prism-database-server-japanese

portal.blueprism.com

 

まとめ

先ず「アーカイブ」しましょう。計画的に行いましょう。

ワークキューやスケジュール履歴など、まめにお手入れしましょう。

データベースを健康に保ち、パフォーマンスをきちんと出す為には、保守作業でやらなくてはならないことが結構あり、どれも重要です。

 

「スモールスタートで始めたけど、だいぶ範囲も展開も広がってきた。」

「長く使ってきました。」

こういった場合、データベースのメンテナンスを怠っていると、絶対トラブルが出てきます。

先ず間違いなく、ひずみが出てきます。

「ディスクがパンクしました」「プロセスが全部止まって、誰も何も保存できません」というような、分かり易い形で問題は顕在化しません

大体のケースでは、「スケジュールが動かない」「いくつか上手く動かないものが出てきた」「レスポンスが悪いときがある」「ランタイムリソースが接続できない」など、再現性の難しいエラーが、少しずつ、あるいはあるとき突然、頻発するようになります。

 

RPAから次の段階へ、デジタルワークフォースへステップアップする際には、データベースの保守運用は適切に行う必要があります。

もちろん、最初の導入段階で、例えスモールスタートであっても、データベースの運用をきちんと設計して導入する、ということがベストプラクティスです。

 

ロボットを作って稼働させて結果を出したい、だけに目先が行っていると、あとあとで苦労する、典型的な例になります。知らなかったでは済まされません。

きちんとしたデータベースの保守は、トラブルの未然防止に役立ちます

 

今からでも遅くはありません。

データベース保守に目を向けて下さい。

 

きちんと最初から、巻き込んで下さい。

目をそらさないで下さい。

忘れないで下さい。