Upgrade to Pro — share decks privately, control downloads, hide ads and more …

200623 RPA開発で困っている方への7つのTips 廣瀬さん

200623 RPA開発で困っている方への7つのTips 廣瀬さん

RPACommunity

June 23, 2020
Tweet

More Decks by RPACommunity

Other Decks in Technology

Transcript

  1. 2 はじめに ◼ このLTの目的 ✓ RPA開発において、各ツールの特性の細かい論点に対するやり方はWebや本に載っているが、 RPA開発の実装方法やそのコツとしてみたときに資料があまりないことに気づいた ✓ RPA開発には開発未経験者方も多く、このLTにも参加される方もそのような方が多いので、少し でも開発を楽に進めてもらいたいためのLTであり、このドキュメントを作成した

    ◼ 主な対象者 ✓ RPA開発に慣れていない担当者 ✓ システム開発経験のない担当者 ◼ 資料の扱いについて ✓ この資料は発表後にPDF形式でアップする予定なので、そちらをご参照ください (後でConnpassから資料格納完了のメールが飛びます) ✓ 資料の扱いについては、ご自身の勉強や参考情報としての使用は許可します ビジネス使用目的は許可できないので、事前にご相談ください
  2. 3 自己紹介 ◼ 経歴 ・ 新卒TIS入社 保険関連のシステム保守開発に従事(VB.net/C/JAVA, Oracle) ・ bizroboに触って、RPAをやりたくなり、現職へ転職

    ・ 地獄のSAP導入でアメリカに行って5kg痩せた後、Uipathでのロボ開発プロジェクトへ参画 ・ 会計と英語を習得したいため、USCPAを学習中 ◼ 趣味 ◼ RPA経験 ・ 某大手メーカーの経理部、SCM部、人事部に対して構想策定~開発(Uipath)、導入を経験 ・ 某大手保険会社に対して、要件定義~開発(BizRobo)、導入を経験 (メンバーが足りていないこともあり、がっつり開発・導入までやっています) ◼ 一言 2020/6/17と2019/10のRPALTにも登壇しましたので、是非そちらの資料も見てください #RPALT これらの趣味をお持ちの方 はぜひ熱いメール、リプを お待ちしています Twitter @hirosatophoenix
  3. 4 ◼ RPA開発で困ったときは以下の7つを意識してやってみるとうまくいくことが多いので試してみてください! ① Excelをフル活用しよう! ② 困ったらVBコーディングを使用しよう! ③ リモート時を意識して、システム画面のアクティブ化を外そう! ④

    うまく動かない場合は待機時間をセットしよう! ⑤ ログファイルやログメッセージを頻繁に出すようにしよう! ⑥ どの端末、ネットワーク環境でも動作するように設定しよう! ⑦ 予想外のエラー時に、ロボが自動で修復するような設定にしよう! *以降のスライドではUipathを例として使用しています #RPALT RPA開発における7つのTips RPA開発では従来のシステム開発と違う観点で悩む部分があると思いますが、その時は上記の7つを試してみてください Comment
  4. 5 ◼ RPA開発では、いかにロボに動作させないか、極力ロボ外に処理をさせるということも大切 ◼ 対象業務の中では、複雑なInputからデータを加工し、Outputする場面がたくさん存在するが、加工に 困った場合は遠慮なくExcelやマクロを活用しよう #RPALT ① Excelをフル活用しよう! Excelやマクロをフル活用して、ロボの動きをスムーズにしよう

    Comment Input 既存 プロセ ス 導入 後プ ロセス 【プロジェクト例】 Input 目検で在庫 チェック マクロで商品 在庫検索 ファイルダウン ロード ファイルダウン ロード 担当者A 手動で商品 在庫を検索 担当者B 2020/6/21 商品別在庫照会 品目コード 6100XXA 商品A 単位:ケース 合計:数量(ケース) 表示通番 倉庫名 20000 22000 25000 30100 32000 32800 36000 総計 製造ロット 賞味期限 札幌センター 仙台センター 東京センター 熱田センター 鹿児島センター 大阪センター 福岡センター 2019/05 2020/04 2019/06 2020/05 678 490 2,402 1,267 3,032 1,073 8,942 9999/99 0000/00 112 112 総計 678 490 2,402 1,267 3,032 112 1,073 9,054 品目コード検索 終了 商品コードで在庫を簡 易に検索できるようマク ロを作成 ロボで在庫 チェック 7/18 7/19 7/20 7/21 7/22 7/23 3010 新千歳センタ 在庫(実在庫) 1,986 1,953 2,054 2,032 1,909 3010 新千歳センタ 在庫日数 0 56 56 57 56 55 3010 新千歳センタ 入庫実績 145 3010 新千歳センタ 出庫/出荷計画合計 49 52 52 52 65 55 3010 新千歳センタ 出庫計画 3010 新千歳センタ 出荷計画合計 49 52 52 52 65 55 3010 新千歳センタ 出荷計画(一般分) 49 12 52 13 53 55 3010 新千歳センタ 出庫/出荷実績合計 5 33 44 22 123 19 ダウンロードしたファイルをロボが 読み取りやすい、データベース の形に変更する
  5. 6 ◼ RPAツールではExcelやメール送信などが事前にアクティビティとして用意されてますが、マニアックな処理に なるとアクティビティが用意されていないので、困ったらVBコーディングも使用しましょう #RPALT ② 困ったらVBコーディングを使用しよう! 細かい処理を行いたいのであれば、VB.netのメソッドを使用しよう Comment 【フォルダコピー】

    【日時取得】 ロボ稼働時にyyyyMMddHHmm形式で日 時を取得する。 主にアウトプットフォルダのフォルダ名を作成す るのに使用している ローカルに処理したファイルをまとめたフォルダ ごとアウトプットフォルダへコピーするのに使用 ファイルを一つずつコピーするより早いため
  6. 8 ◼ ツールによってうまく対応できないシステムや重いExcel処理などにより、画面遷移や項目の要素取得がう まくいかない場合は、迷わず待機時間をセットしよう ◼ 待機時間をセットするのは悪手だと言われることも多いが、そんなことを言っていたらまともに動くロボなど1体 も作れないので、困ったら待機時間をセットすることは絶対に必要 #RPALT ④ うまく動かない場合は待機時間をセットしよう!

    操作対象の挙動を見ながら、うまく動作するよう待機時間をセットしよう Comment 【プロジェクト例】 在庫データ ファイル (加工前) Citrix上にシステムがあ るため、要素が取得でき ずダウンロード完了まで 待機時間をセット Citrix 在庫 システム 待機 在庫データ ファイル (加工後) 待機 在庫データファイルの形 式がXLSのため、一つ一 つの加工動作の間に待 機時間をセット Webブラウザ 物流調整 システム Webブラウザの動的に画面 が変更になるシステムでは、 要素が取りづらいので画面 遷移には待機時間をセット
  7. 9 ◼ 後で処理結果の確認がしやすいように、処理の過程をログメッセージとして残すようにしよう ◼ ユーザの利便性や内部統制のためにも、処理のOutputが分かるようにログファイルを作成するようにしよう #RPALT ⑤ ログファイルやログメッセージを頻繁に出すようにしよう! 処理の過程や結果を確認できるようにするために、ログメッセージやログ結果ファイルを作成しよう Comment

    各々の関数やクラスの起動時や繰り返し処理の初めなど にログメッセージを残しておくと、エラー時に処理内容を確 認するときにどこで終了したのかを確認できるので便利 統合卸店コード 統合卸店名 入金予定日 入金予定合計金額 入金統合先企業名 入金日付 入金実績合計金額 処理結果 差額 備考 904610XXX1 AAA 2020/5/25 8,181,676 AAA 2020/4/7 8,181,665 × -11 予実金額に差異あり 904610XXX2 BBB 2020/5/25 204,987,987 BBB 2020/4/7 204,987,998 × 11 予実金額に差異あり 904610XXX3 CCC 2020/5/25 1,433,431 CCC 2020/4/7 1,433,421 ◦ -10 差額処理の上、正常終了 904610XXX4 DDD 2020/5/25 585,225 DDD 2020/4/7 585,235 ◦ 10 差額処理の上、正常終了 904610XXX5 EEE 2020/5/25 222,807,430 EEE 2020/4/7 222,807,430 ◦ 0 正常終了 【会計伝票登録結果ログ】 ①のルールにも適用している
  8. 10 ◼ PC端末ごとやネットワーク環境によって、ロボの動作が変わり、不具合が発生することが多い ◼ このようなことが発生しないように、いくつかのネットワーク環境でも動くよう、要素の完全取得や待機時間の セット、ウインドウにアタッチするなどロボの動きを完全なものとする ◼ 作成したロボがどこでも動くように、複数の端末、ネットワーク環境でテストを実施する #RPALT ⑥

    どの端末、ネットワーク環境でも動作するように設定しよう! ロボの動作は環境によって大きく変わるので、どのような環境でも動くよう事前にテストしてプログラムを修正する Comment 【プロジェクト例】 ・ロボット端末が3台、端末配置場所が執務室A、執務室B、サーバ室の場合 端末1 端末2 端末3 執務室A 執務室B サーバ室 時間はかかるが、全てのパターンでロボットが正 常に稼働するかどうか確認する 本番稼働後にエラーが出るとユーザ側に大き な損失につながる テスト パターン1 テスト パターン2 テスト パターン3 テスト パターン4 テスト パターン5 テスト パターン3 テスト パターン7 テスト パターン8 テスト パターン9
  9. 11 ◼ どれだけ完全に作ろうとしても、Excelのハングアップや開発時には無かった画面、未知のエラーウインドウなど 想定外のエラーが発生することは必ずあり、それらすべてに対応することは不可能 ◼ そのため、想定外のエラーが発生した際に、エラー画面がそのまま残り、次のロボの動きまでおかしくさせてし まうことが考えられる ◼ このようなことが発生しないように、エラー時に自動で対応するように設定しておくと、復旧作業が楽になる #RPALT

    ⑦ 予想外のエラー時に、ロボが自動で復旧するような設定にしよう! トライキャッチで囲み、エラ ー時に表示されているアプ リケーションを全て終了し、 ログを記載し、次の処理へ と進むように設定 【終了処理内容】 ・Excel ・Outlook ・IE、Chrome ・Windowsエラーウインドウ ・対象システム(SAPやSalesForce) →どのようなタイミングでエラーになっても次の 処理には影響がないようにあらゆる終了処理 を組み込む エラー時に直接端末を操作して復旧するより、ある程度自動で復旧してくれる処理を組み込もう Comment
  10. 12 まとめ ◼ RPA開発で困ったときは、上記の7つのTipsを見直してみてください ◼ RPAおよびシステムは、利用するユーザ側からすれば「まともに動けばそれでよし」と 判断されるので、システム構成が~と悩むより、どうしたら動くのかを一番に考えてみ てください ◼ 動かない場合は、Qiitaや海外の技術サイトなどで色々な方法を調べて試してみて

    ください。ロボがプログラムされた通りに動くかどうかは、端末や環境によって違います (本当はいけないことですが、端末や操作対象の何が原因で動かないかは分から ないので、仕方がないと思います) 【最後に一言】 今後独立しようと考えているので、RPA導入、開発やこの資料に関する質問・相談は いつでもウェルカムです。気軽にメールやDMなど送ってきてください。 ご清聴ありがとうございました。 #RPALT