【はじめに】HeartCore Roboについて

# はじめに

はじめまして。ハートコア株式会社RPA技術担当です。

弊社RPAツール"HeartCore Robo"について技術的な観点からの記事を今後記載して参ります。

[記事一覧](https://qiita.com/tags/heartcorerobo)

[とにかく早くロボットを作成してみたい](https://qiita.com/Go_Miyake/items/91c2a530f501d162c81a)

[Excel操作](https://qiita.com/Go_Miyake/items/01203cc40035cae5453e)

[OCR基本編](https://qiita.com/Go_Miyake/items/12143cc8b7daa8942e17)

[OCR応用・実践編](https://qiita.com/Go_Miyake/items/7f32a6388f8fd6c2350e)

[CSV処理](https://qiita.com/Go_Miyake/items/57450be4ffdbf599ce7d)

[特定のフォルダ内の特定のファイルを開く・指定する方法](https://qiita.com/Go_Miyake/items/e1a8434b0bbdb1e779b9)

[実行版ロボットの作成方法・半無人・完全無人運用について](https://qiita.com/Go_Miyake/items/833c38393fb56d2c2d35)


まずは「HeartCore Roboとは何？」からご説明致します。


# HeartCore Roboとは

2018年3月にリリースされたデスクトップ型RPA(Robotic Process Automation)ツールです。
http://www.heartcorerobo.com/heartcorerobo/index.html

他のRPAツールと同様、ロボット開発は専用の開発ツール上で行い、開発されたロボットをそれぞれの実行環境に展開します。

ロボットの開発はフロー型・スクリプト型の両方で可能です(2019年12月リリースのバージョン6以降)。

- フロー型開発画面

直感的なロボット構築が可能。予め用意されたコマンドのドラッグ＆ドロップでロボット動作のフロー構築と、プロパティ画面上で詳細な制御を定義します。HeartCore Roboを初めて使用するユーザーやビジネスユーザー向けの開発スタイルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254242/72cae3d4-5848-b176-ffa3-61ca4b2d97f6.png)

(Mac版フロー開発画面)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254242/d3da7710-b793-541a-cbc9-bc3db61a08cf.png)


- スクリプト型開発画面

スピーディなロボット構築と開発が可能。スクリプト直書き・コマンドドラッグ＆ドロップ・右クリックによるコマンド挿入と、コメントアウトの挿入を行います。習得度の高いユーザーやコーディング経験のあるエンジニア向けの開発スタイルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254242/85a139ea-e11b-4a6b-ad99-0ef8741caf9c.png)

スクリプト型の場合、独自の言語とJavaどちらでも開発が可能です。HeartCore Robo独自言語は自然言語に近い簡素なスクリプトで、VBAの経験があれば習得は容易です。さらにJava経験があれば高度なロボットも作成が出来ます (例：独自モジュールのプラグイン)。


フロー・スクリプト型両方でコードの互換性が保たれるので、ロボットのフレームワークはフローで構築、詳細なコーディングはスクリプトで行うハイブリッド型開発も可能です。


# HeartCore Roboの特徴

1) ブラックボックス型

動作対象となるアプリケーションUI(ユーザーインターフェース)上の入出力の結果のみを認識、UI以下のレイヤー及び内部構造を考慮しません。

参照：　ブラックボックスについて
https://www.weblio.jp/content/%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%83%86%E3%82%B9%E3%83%88

>ブラックボックステストでは、プログラムの内部的な仕組みは問題視せずに、あくまでも入力データの処理結果のみを確認する。内部構造が明らかでないもの、という意味で「ブラックボックス」と呼ばれている。

一番の大きなメリットはアプリケーションの動作環境（.net/Java等）やビジネスアプリケーション内部構造（例：データベース構造）を考慮する必要が無く、アプリケーションが画面に表示されていれば動作する点です。VNCやリモートデスクトップ越しの操作・Flashを使ったアプリの操作や、社内で構築したインハウス業務アプリケーションの操作も可能です。

（ブラックボックス型RPAの動作方式）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/254242/bd4bf314-1746-796c-3555-4e8e11214474.png)

留意点としては、対象アプリケーションのルック＆フィールが変更されたり、操作対象部分がデスクトップ画面から見切れていたり、意図しないポップアップにより操作対象となる部分が隠れた場合には認識が出来なくなります。またHTMLページを解析してデータを取得する方式（スクレイピング）とは異なります。

なお、Excel/CSV/テキストファイルの読出・書込などはAPIで高速に処理が出来ます。デスクトップで表示する必要がありません。


2) ロボットチューニングを可能にする様々な対象認識方法

HeartCore Roboは様々な操作対象認識があり、複数の方法を組み合わせる事で様々な種類の業務のロボット化が可能になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254242/ce92a806-4bae-0af1-f256-bbbb324b0fe5.png)


イメージ及び色検知は独自のエンジンにより高速に動作します。検知方法の詳細及び検知率の向上については別途記事を改めます。

OCRが標準装備されているのは、別OCRソリューションを購入する必要が無いので大きなメリットになります。OCRの使用方法についても別途記事を改めます。


3) マルチプラットフォーム・マルチブラウザ対応

HeartCore RoboはJRE(Java Runtime Environment)上で動作します。JRE1.6以上が入っている環境であればWindows/macOS/Linuxで動作します。プラットフォームのバージョンも問いません。

さらに、画面上で操作対象を表示さえしていればブラウザの種類・バージョンも問いません。 Internet Explorer/Chrome/FireFox/Safari/その他全てのブラウザで動作します。


4) シミュレーターの利用

標準装備のシミュレーターを使用することで、開発時に本番環境上での動作チェックが可能になり、実行時の処理速度の測定（例：デスクトップ上のイメージ検知に掛かる時間）とにロボットが停止するリスクを削減出来ます。

シュミレーターはスクリプトの「行」単位で実行可能のため、特定の箇所（例：If/Else・ループ内の処理）のみのテストが可能です。


5) iOS/Androidでの動作

モバイルアプリに対しても動作するため、自社アプリの検証やキッティング作業に使用が可能です。

（必要条件）
iOS:Xcode
Android:Android Studio

（iOS動作イメージ）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/254242/68ec31ac-45c7-581e-c378-094731643180.png)


# 製品の詳細について

HeartCore Roboの詳細及び検証版のリクエストついてはサイトからお申し込み下さい。インストール方法と開発方法については別途記事を改めます。
https://www.heartcorerobo.com/heartcorerobo/index.html


今後は実際のロボットが動作するためのスクリプトに関する記事を記載します。

宜しくお願いします！

ハートコア株式会社