(57)【特許請求の範囲】
【請求項１】
ＵＭＬ（Unified Modeling Language）に則ったシーケンス図を表示可能に作成されたコードデータを読み込む処理と、
前記コードデータに含まれるキーワードと対応する動作プログラムを実行する処理と
をコンピュータに実行させる実行プログラム。
【請求項２】
前記読み込んだコードデータに含まれるキーワードを検出する処理と、
前記検出したキーワードと対応する動作プログラムを呼び出す処理と
をコンピュータに実行させる請求項１記載の実行プログラム。
【請求項３】
前記コードデータに含まれる制御文を検出する処理を前記コンピュータに実行させ、
前記コードデータを読み込む処理を、前記検出した制御文に従って前記コンピュータに実行させる請求項１又は２に記載の実行プログラム。
【請求項４】
前記コードデータは、前記ＵＭＬに則ったシーケンス図を描画するための描画プログラムに対応した形式の言語で記載されている請求項１乃至３のいずれかに記載の実行プログラム。
【請求項５】
前記コードデータは、前記ＵＭＬに則ったシーケンス図を描画するための描画プログラムに対応した形式の言語で記載され、
前記制御文は、前記描画プログラムの制御文と関連付けられている請求項３記載の実行プログラム。
【請求項６】
ＵＭＬ（Unified Modeling Language）に則った設計図を描画するための描画プログラムの制御文を含んで記載されることで前記設計図を表示可能に作成されたコードデータに含まれる前記制御文を検出する処理と、
前記検出した制御文に従って前記コードデータを読み込む処理と、
前記コードデータに含まれるキーワードと対応する動作プログラムを実行する処理と
をコンピュータに実行させる実行プログラム。
【請求項７】
前記読み込んだコードデータに含まれるキーワードを検出する処理と、
前記検出したキーワードと対応する動作プログラムを呼び出す処理と
をコンピュータに実行させる請求項６記載の実行プログラム。
【請求項８】
前記キーワードは、前記描画プログラムにより表示される設計図において、動作の主体と客体との間のメッセージで表される請求項６又は７に記載の実行プログラム。
【請求項９】
前記描画プログラムは、ＰｌａｎｔＵＭＬである請求項４乃至８のいずれかに記載の実行プログラム。
【請求項１０】
前記読み込んだコードデータにエラーがあるか否かをチェックする処理を前記コンピュータに実行させる請求項１乃至９のいずれかに記載の実行プログラム。
【請求項１１】
ＵＭＬ（Unified Modeling Language）に則ったシーケンス図を表示可能なコードデータを作成する際、前記コードデータを実行する実行プログラムのキーワードの入力を支援する処理をコンピュータに実行させる入力支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、実行プログラム、入力支援プログラム、及びコード読込式ロボットに関する。
【背景技術】
【０００２】
近年、オフィスワークの効率化、及び自動化を図るため、ＲＰＡ（Robotic Process Automation）が注目されている。ＲＰＡは、例えば、ソフトウェアロボット（ＲＰＡアプリとも称される。）がコンピュータ上で動作することにより実現される。ソフトウェアロボットは、例えば、人間がコンピュータを操作して業務を遂行する手順に基づいて構築される。
【０００３】
ソフトウェアロボットは、一般的に、例えば、ＲＰＡツールを利用してコーディングされる。効率的に動作するソフトウェアロボットを作成するには、コーディング前に、ソフトウェアロボットが実行する動作を詳細に設計することが望ましい。ただし、動作を詳細に設計しようとすると、例えば、まず設計図を作成し、作成した設計図を参照しながらコーディングすることになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１９−７４８８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上のように、効率的に動作するソフトウェアロボットを作成しようとすると、設計図を作成し、その後に、設計図を参照しながらコーディングするため、作成に手間がかかる。
【０００６】
そこで、目的は、効率的に動作するソフトウェアロボットを作成する際の手間を削減することである。
【課題を解決するための手段】
【０００７】
本発明に係る実行プログラムは、ＵＭＬに則った設計図を表示可能に作成されたコードデータを読み込む処理と、前記コードデータに含まれるキーワードと対応する動作プログラムを実行する処理とをコンピュータに実行させる。
【０００８】
また、本発明に係る入力支援プログラムは、ＵＭＬに則った設計図を表示可能なコードデータを作成する際、前記コードデータを実行する実行プログラムのキーワードの入力を支援する処理をコンピュータに実行させる。
【０００９】
また、本発明に係るコード読込式ロボットは、ＵＭＬに則った設計図を表示可能に作成されたコードデータに含まれるキーワードと対応する動作プログラムをコンピュータに実行させる実行プログラムを具備する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施形態に係る信号処理装置の機能構成を表すブロック図である。
【図２】図２は、図１に示されるＲＰＡ実行部及び描画部の動作を説明するための図である。
【図３】図３は、コードデータを表す図である。
【図４】図４は、図３に示されるコードデータを、ＰｌａｎｔＵＭＬにより描画したシーケンス図である。
【図５】図５は、図３及び図４で用いられる交通費.xlsxを表す図である。
【図６】図６は、本実施形態に係るコード読取式ロボットが動作を実行する際の表示機器の表示例を表す図である。
【図７】図７は、本実施形態に係るコード読取式ロボットが動作を実行する際の表示機器の表示例を表す図である。
【図８】図８は、本実施形態に係るコード読取式ロボットが動作を実行する際の表示機器の表示例を表す図である。
【図９】図９は、本実施形態に係るコード読取式ロボットが動作を実行する際の表示機器の表示例を表す図である。
【図１０】図１０は、本実施形態に係るコード読取式ロボットが動作を実行する際の表示機器の表示例を表す図である。
【図１１】図１１は、本実施形態に係るコード読取式ロボットが動作を実行する際の表示機器の表示例を表す図である。
【図１２】図１２は、コードデータの一部のその他の例を表す図である。
【図１３】図１３は、コードデータの一部のその他の例を表す図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態について、図面を参照して説明する。
【００１２】
図１は、本実施形態に係る信号処理装置１の機能構成の例を表すブロック図である。信号処理装置１は、例えば、パーソナルコンピュータ、又はサーバ等により実現される。
【００１３】
図１に示される信号処理装置１は、例えば、処理部１１、記憶部１２、入力インタフェース１３、出力インタフェース１４、及び通信インタフェース１５を備える。処理部１１、記憶部１２、入力インタフェース１３、出力インタフェース１４、及び通信インタフェース１５は、例えば、バスを介して互いに通信可能に接続されている。
【００１４】
処理部１１は、例えば、ＣＰＵ（Central Processing Unit）、ＣＰＵが処理を実行する際に主記憶装置として用いるＲＡＭ（Random Access Memory）により構成される。ＣＰＵは、例えば、記憶部１２に記憶されているプログラムをＲＡＭに読み込み実行することで、プログラムに対応する種々の機能を実現する。
【００１５】
記憶部１２は、種々の情報を記憶するＨＤＤ（hard disk drive）、及びＳＳＤ（solid state drive）等の不揮発性の記憶回路を備える、いわゆる補助記憶装置である。なお、記憶部１２は、ＣＤ−ＲＯＭ、ＤＶＤ、及びフラッシュメモリ等の可搬性記憶媒体との間で種々の情報を読み書きする駆動装置等であってもよい。
【００１６】
記憶部１２は、本実施形態に係るプログラム、例えば、ＲＰＡ実行プログラム１２１を記憶している。ＲＰＡ実行プログラム１２１は、テキストベースのコードデータ１２４に基づき、コードデータ１２４に規定されている動作を実行させるためのプログラムである。ＲＰＡ実行プログラム１２１は、例えば、コードデータ１２４に含まれる所定のキーワードに応じた動作プログラムを実行する。キーワードは、ＲＰＡ実行プログラム１２１で規定されていてもよいし、記憶部１２に記憶されることで規定されていてもよい。キーワードは、例えば、実行すべき動作を識別可能なテキスト情報である。また、キーワードは、指示対象を特定可能なテキスト情報であってもよい。また、記憶部１２は、テキストベースのコードで設計図を設計して描画するための描画プログラム１２２を記憶している。本実施形態において設計図は、例えば、ＵＭＬ（Unified Modeling Language（統一モデリング言語））に則ったシーケンス図を表す。なお、ＲＰＡ実行プログラム１２１は、例えば、描画プログラム１２２の機能を拡張するプログラムであると理解してもよい。また、記憶部１２は、予め設定されたキーワードと対応付けられている動作プログラム１２３を記憶している。
【００１７】
動作プログラム１２３は、例えば、単純な単一の動作が定義されたプログラムであり、動作毎に記憶されている。動作プログラム１２３には、例えば、データファイルを画面に表示させるための動作プログラム、インターネットにアクセスするための動作プログラム、ウェブ画面を表示させるための動作プログラム、所定の値を抽出するための動作プログラム、所定の値を入力するための動作プログラム、所定位置をクリックするための動作プログラム、所定位置のテキスト情報をデータファイルへ返すための動作プログラム、及び／又はデータファイルを記憶するための動作プログラム等が含まれる。なお、動作プログラム１２３は、これらに限定されず、所望されるソフトウェアロボットに求められる動作プログラムが含まれ得る。動作プログラム１２３は、必要に応じて任意に調整されて構わない。
【００１８】
ＲＰＡ実行プログラム１２１、描画プログラム１２２、動作プログラム１２３、又はこれらのいずれかの組み合わせは、例えば、非一過性の記憶媒体に記憶されて配布され、非一過性の記憶媒体から読み出されて記憶部１２にインストールされてもよい。また、ＲＰＡ実行プログラム１２１、描画プログラム１２２、動作プログラム１２３、又はこれらのいずれかの組み合わせは、例えば、所定のサーバからダウンロードされて記憶部１２にインストールされてもよい。また、ＲＰＡ実行プログラム１２１、描画プログラム１２２、動作プログラム１２３、又はこれらのいずれかの組み合わせは、記憶部１２に予め記憶されていてもよい。
【００１９】
また、記憶部１２は、コードデータ１２４を記憶している。コードデータ１２４は、テキストベースのデータである。コードデータ１２４は、例えば、ソフトウェアロボットの動作を可視化するための設計図を、描画プログラム１２２に対応した形式の言語で記載したものである。また、コードデータ１２４は、例えば、ＲＰＡ実行プログラム１２１に対応した制御文、及び動作プログラム１２３を実行するためのキーワードを含むように記載されている。ソフトウェアロボットは、例えば、イベント駆動型アプリケーションとも称し得る。コードデータ１２４は、例えば、ユーザにより作成され、記憶部１２に記憶される。なお、コードデータ１２４は、所定の記憶媒体を介して記憶部１２に記憶されてもよいし、所定のサーバを介して記憶部１２に記憶されてもよい。
【００２０】
また、記憶部１２は、ソフトウェアロボットが動作を実行する際に、入力として用いられる入力データ１２５を記憶している。入力データ１２５は、ＲＰＡ実行プログラム１２１と共に提供されてもよいし、ＲＰＡ実行プログラム１２１とは別に提供されてもよい。また、記憶部１２は、ソフトウェアロボットの動作により作成される結果データを記憶する。
【００２１】
入力インタフェース１３は、例えば、マウス、キーボード、及び、操作面へ触れることで指示が入力されるタッチパネル等により実現される。入力インタフェース１３は、操作者からの入力指示を電気信号へ変換し、電気信号を処理部１１へ出力する。なお、入力インタフェース１３は、マウス、及びキーボード等の物理的な操作デバイスに限定されない。入力インタフェース１３には、例えば、外部の入力機器から入力される電気信号を受け付ける受信ポートが含まれてもよい。
【００２２】
出力インタフェース１４は、例えば、表示機器、及び印刷機器等により実現される。表示機器としては、例えば、液晶ディスプレイ、有機ＥＬディスプレイ、ＬＥＤディスプレイ、プラズマディスプレイ、及びＣＲＴディスプレイ等、任意のディスプレイが利用可能である。表示機器は、表示対象についての画像データを表示する。印刷機器は、例えば、プリンタである。印刷機器は、印刷対象についての画像データを所定用紙に印刷する。なお、出力インタフェース１４は、表示機器、及び印刷機器等の物理的な出力装置に限定されない。出力インタフェース１４には、例えば、外部の出力装置へ画像データを送信する送信ポートが含まれてもよい。
【００２３】
通信インタフェース１５は、例えば、ネットワークと接続する回路により実現される。通信インタフェース１５は、ネットワークを介し、例えば、所定のサーバ、又は他の信号処理装置等と通信する。
【００２４】
図１に示される処理部１１は、記憶部１２に記憶されているプログラムを実行することで、当該プログラムに対応する機能を実現する。例えば、処理部１１は、プログラムを実行することで、ＲＰＡ実行部１１１、及び描画部１１２の機能を実現する。
【００２５】
図１に示される処理部１１は、複数のＣＰＵが組み合わされて形成されていても構わない。すなわち、図１に示されるＲＰＡ実行部１１１、及び描画部１１２は、例えば、各ＣＰＵがプログラムを実行することで実現されても構わない。
【００２６】
また、処理部１１は、ＲＰＡ実行部１１１、及び描画部１１２の機能をそれぞれ有する専用のハードウェア構成により形成されていても構わない。また、処理部１１は、ＲＰＡ実行部１１１、及び描画部１１２の機能をそれぞれ有する専用のハードウェア回路を組み込んだ特定用途向け集積回路（Application Specific Integrated Circuit：ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（Field Programmable Gate Array：ＦＰＧＡ）、他の複合プログラマブル論理デバイス（Complex Programmable Logic Device：ＣＰＬＤ）、又は単純プログラマブル論理デバイス（Simple Programmable Logic Device：ＳＰＬＤ）により形成されていても構わない。
【００２７】
ＲＰＡ実行部１１１は、記憶部１２に記憶されるコードデータ１２４に従った処理を実行する。例えば、ＲＰＡ実行部１１１は、コードデータ１２４に含まれる制御文、及びキーワードに基づき、記憶部１２に記憶されている動作プログラム１２３を実行する。
【００２８】
描画部１１２は、記憶部１２に記憶されるコードデータ１２４に基づいて設計図を作成する。描画部１１２は、作成した設計図を、例えば、表示機器に表示させる。
【００２９】
図２は、図１に示されるＲＰＡ実行部１１１及び描画部１１２の動作を説明するための模式図である。
【００３０】
コードデータ１２４を作成する際、例えば、ユーザは、作成しようとするソフトウェアロボットに求められる要件を定義する。ユーザは、定義した要件を満たすための機能を設計する。そして、ユーザは、設計した機能を実現するための詳細な動作をＵＭＬに則った設計図で可視化するため、描画プログラム１２２に則った言語でコードデータ１２４を作成する。また、ユーザは、コードデータ１２４をＲＰＡ実行プログラム１２１を用いて実行するため、ＲＰＡ実行プログラム１２１に則った制御文、及び動作プログラム１２３を実行するためのキーワードを含むように、コードデータ１２４を作成する。なお、ＲＰＡ実行プログラム１２１に則った制御文は、例えば、描画プログラム１２２に則った制御文と同一、又は関連付けられている。ユーザは、作成したコードデータ１２４を記憶部１２に記憶させる。
【００３１】
ユーザは、コードデータ１２４を作成すると、信号処理装置１の入力インタフェース１３を介し、コードデータ１２４に基づく設計図の可視化指示を入力する。可視化指示が入力されると、処理部１１は、描画プログラム１２２を実行し、描画部１１２として機能する。描画部１１２は、コードデータ１２４に基づき、設計図としての、例えば、シーケンス図を作成し、作成したシーケンス図を出力インタフェース１４としての表示機器に表示させる。
【００３２】
ユーザは、表示されたシーケンス図に基づき、ソフトウェアロボットの動作を確認する。ユーザは、シーケンス図を修正する必要があれば、コードデータ１２４のテキストを修正する。テキストが修正されると、描画部１１２は、修正後のコードデータ１２４に基づき、シーケンス図を作成し、作成したシーケンス図を表示機器に表示させる。なお、修正後のコードデータ１２４に基づくシーケンス図の可視化指示に応じ、シーケンス図が表示されてもよい。ユーザは、所望の動作を実行するソフトウェアロボットについてのシーケンス図が作成されるまで、コードデータ１２４の修正と描画とを繰り返す。
【００３３】
処理部１１は、ユーザからの指示、又は予め設定されたスケジュールに従い、ＲＰＡ実行部１１１として機能する。ＲＰＡ実行部１１１は、指定されたコードデータ１２４を記憶部１２から読み出し、コードデータ１２４に従った処理を実行する。例えば、ＲＰＡ実行部１１１は、コードデータ１２４に含まれる制御文、及びキーワードに基づき、記憶部１２に記憶されている動作プログラム１２３を呼び出す。ＲＰＡ実行部１１１は、呼び出した動作プログラム１２３を実行する。
【００３４】
より具体的には、例えば、ＲＰＡ実行部１１１は、コードデータ１２４を行毎に読み込み、読み込んだ行に書かれている制御文、及び／又はキーワードを検出する。ＲＰＡ実行部１１１は、例えば、検出したキーワードに基づき、動作の実行主体、又は客体を判断する。また、ＲＰＡ実行部１１１は、検出したキーワードと対応付けられている動作プログラム１２３を記憶部１２から読み出し、読み出した動作プログラム１２３を、判断した主体及び客体と、キーワード等とに基づいて実行する。ＲＰＡ実行部１１１は、検出した制御文に従ってコードデータ１２４を読み込み、コードデータ１２４の最終行まで処理を繰り返す。
【００３５】
このように、コードデータ１２４がＲＰＡ実行プログラム１２１に読み込まれ、ＲＰＡ実行プログラム１２１、及び動作プログラム１２３が実行されることにより、ソフトウェアロボットとしてのコード読込式ロボットが形成されることになる。
【００３６】
次に、コード読込式ロボットの動作について詳細に説明する。以下の例では、描画プログラム１２２として、例えば、オープンソースのツールであるＰｌａｎｔＵＭＬが用いられる場合を例に説明する。なお、ＰｌａｎｔＵＭＬに限定されず、テキストベースのコードで設計図を設計して描画できれば、Ｖｉｓｕａｌｓｔｕｄｉｏ  ｃｏｄｅ（登録商標）等、如何なる描画プログラム１２２が用いられても構わない。
【００３７】
図３は、以下の説明で用いるコードデータ１２４の例を表す図である。図３に示されるコードデータ１２４は、交通費を取得し、取得した交通費を書き込んだファイルを作成するソフトウェアロボットのシーケンス図を描画するためのコードである。コードデータ１２４は、ＰｌａｎｔＵＭＬで規定される言語に則って記載され、記憶部１２に、例えば、コードデータ.puとして記憶されている。図４は、図３に示されるコードデータ１２４を、ＰｌａｎｔＵＭＬにより描画したシーケンス図である。
【００３８】
図３、及び図４の説明において、入力データ１２５は、交通費.xlsxという名称のエクセルファイルである。交通費.xlsxは、例えば、「C:\app\input」に記憶されている。図５は、図３、及び図４で用いられる交通費.xlsxの例を表す図である。図５に示される入力データ１２５では、列毎にレコードが登録されており、各レコードには、日付、乗車駅、下車駅、及び交通費の項目がある。このうち、日付、乗車駅、及び下車駅に、それぞれ日付及び駅名が入力されている。
【００３９】
図６乃至図１１は、本実施形態に係るコード読取式ロボットが動作を実行する際の表示機器の表示例を表す模式図である。
【００４０】
まず、例えば、図６で示されるように、表示画面１４１にコード読取式ロボットの実行ウィンドウ１４２が表示される。ユーザは、コードデータ.puを所定の記憶フォルダから指定し、例えば、マウスのドラッグアンドドロップ操作により、コードデータ.puを実行ウィンドウ１４２へ投げ込む。このとき、例えば、キーボードにより、ファイル名：「コードデータ.pu」を実行ウィンドウ１４２に直接打ち込んでもよい。コードデータ.puが選択され、ユーザにより、ロボット実行ボタン１４３が押下されると、ＲＰＡ実行部１１１が動作を開始する。
【００４１】
ＲＰＡ実行部１１１は、例えば、図３に示されるコードデータ１２４を読み込み、「box…actor…as Robot end box」の制御文に基づき、コードデータ.puを実行主体としての「Robot」とする。また、ＲＰＡ実行部１１１は、「box…participant…as InputF end box」の制御文に基づき、C:\app\inputに記憶されている交通費.xlsxを第１客体としての「InputF」とする。また、ＲＰＡ実行部１１１は、「box…participant…as OuputF end box」の制御文に基づき、C:\app\outputに記憶される交通費入力済.xlsxを第２客体としての「OnputF」とする。また、ＲＰＡ実行部１１１は、「box…participant…as Web end box」の制御文に基づき、https://transit.xxxx.co.jpでアクセスされる乗換情報を第３客体としての「Web」とする。すなわち、ＲＰＡ実行部１１１は、実行主体としての「Robot」が、交通費.xlsx（第１客体としての「InputF」）、交通費入力済.xlsx（第２客体としての「OnputF」）、及び／又は乗換情報（第３客体としての「Web」）に対する処理を実行するように動作する。
【００４２】
ＲＰＡ実行部１１１は、コードデータ１２４の「Robot -> InputF:workbooks.open()」を読み込み、「：」より前のキーワード：「Robot -> InputF」から動作の客体：「InputF」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「workbooks.open()」に対応する、データファイルを画面に表示させるための動作プログラムを記憶部１２から読み出す。なお、「：」より前の「Robot -> InputF」は、ｐｌａｎｔＵＭＬの規則に則った記載であり、RobotからInputFへの指示であることを表す。「：」より後の「workbooks.open()」は、本実施形態に係るＲＰＡ実行プログラム１２１においてキーワードとして規定されている記載である。ＲＰＡ実行部１１１は、「InputF」、すなわち、交通費.xlsxを表示対象として、読み出した動作プログラムを実行する。これにより、図７に示されるように交通費.xlsxが表示画面１４１に表示される。
【００４３】
ＲＰＡ実行部１１１は、コードデータ１２４の「Robot -> Web:ie起動()」を読み込み、「：」より前のキーワード：「Robot -> Web」から動作の客体：「Web」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「ie起動()」に対応する、インターネットエクスプローラー（登録商標）を利用してインターネットにアクセスするための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「Web」、すなわち、乗換情報を接続先として、読み出した動作プログラムを実行する。これにより、インターネットエクスプローラーを利用してhttps://transit.xxxx.co.jpにアクセスされる。
【００４４】
ＲＰＡ実行部１１１は、コードデータ１２４の「Web -> Web:DisplayStandby」を読み込み、「：」より前のキーワード：「Web -> Web」から動作の客体：「Web」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「DisplayStandby」に対応する、画面遷移後のウェブ画面を表示させるための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「Web」、すなわち、乗換情報を表示対象として、読み出した動作プログラムを実行する。これにより、図８に示されるように乗換情報が表示画面１４１に表示される。
【００４５】
ＲＰＡ実行部１１１は、コードデータ１２４の「Robot <- InputF:（黒四角）Values←scope(Range[日付](2))」を読み込み、「：」より前のキーワード：「Robot <- InputF」から動作の客体：「InputF」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「（黒四角）Values←scope()」に対応する、所定の値を抽出するための動作プログラムを記憶部１２から読み出す。なお、本実施形態において、（黒四角）Valuesは、変数を表す。ＲＰＡ実行部１１１は、客体として判断した「InputF」、すなわち、交通費.xlsxにおける、キーワード：「Range[日付](2)」を抽出対象として、読み出した動作プログラムを実行する。これにより、交通費.xlsxの日付に値が入力されている行である「２」〜「４」が「（黒四角）Values」として抽出される。
【００４６】
ＲＰＡ実行部１１１は、コードデータ１２４の「loop （黒四角）X = MinRow(（黒四角）Values) to MaxRow(（黒四角）Values)…end」を読み込む。ＲＰＡ実行部１１１は、「loop （黒四角）X = MinRow(（黒四角）Values) to MaxRow(（黒四角）Values)…end」の制御文に基づき、loopからendまでの処理を、（黒四角）Valuesの最小行から、（黒四角）Valuesの最大行まで繰り返す。
【００４７】
ＲＰＡ実行部１１１は、コードデータ１２４の「InputF -> Web :Range[乗車駅](（黒四角）X)→input(Name[from](0))」を読み込み、「：」より前のキーワード：「InputF -> Web」から動作の客体：「InputF」及び「Web」と、動作の方向とを取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「_(（黒四角）X)→input()」に対応する、データファイルの所定値をウェブ画面上の所定箇所へ入力するための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「InputF」、すなわち、交通費.xlsxにおけるキーワード：「Range[乗車駅]」の「（黒四角）X」の文字を入力対象とする。そして、ＲＰＡ実行部１１１は、「Web」、すなわち、乗換案内においてＨＴＭＬ（HyperText Markup Language）のＪａｖａｓｃｒｉｐｔ（登録商標）に則った、キーワード：「Name[from](0)」で規定される位置を入力位置として、読み出した動作プログラムを実行する。これにより、交通費.xlsxの「乗車駅」における一行目の駅名：「六町」が、乗換案内における「出発」へ入力される。
【００４８】
ＲＰＡ実行部１１１は、コードデータ１２４の「InputF -> Web :Range[下車駅](（黒四角）X)→input(Name[to](0))」を読み込み、「：」より前のキーワード：「InputF -> Web」から動作の客体：「InputF」及び「Web」と、動作の方向とを取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「_(（黒四角）X)→input()」に対応する、データファイルの所定値をウェブ画面上の所定箇所へ入力するための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「InputF」、すなわち、交通費.xlsxにおけるキーワード：「Range[下車駅]」の「（黒四角）X」の文字を入力対象とする。そして、ＲＰＡ実行部１１１は、「Web」、すなわち、乗換案内においてＨＴＭＬのＪａｖａｓｃｒｉｐｔに則った、キーワード「Name[to](0)」で規定される位置を入力位置として、読み出した動作プログラムを実行する。これにより、交通費.xlsxの「下車駅」における一行目の駅名：「神谷町」が、乗換案内における「到着」へ入力される。
【００４９】
ＲＰＡ実行部１１１は、コードデータ１２４の「Robot -> Web :click(Id[searchModuleSubmit])」を読み込み、「：」より前のキーワード：「Robot -> Web」から動作の客体：「Web」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「click()」に対応する、ウェブ画面上の所定位置をクリックするための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「Web」、すなわち、乗換案内においてＨＴＭＬのＪａｖａｓｃｒｉｐｔに則った、キーワード：「Id[searchModuleSubmit]」で規定される位置を対象位置として、読み出した動作プログラムを実行する。これにより、乗換案内における検索ボタン１４４が押下される。
【００５０】
ＲＰＡ実行部１１１は、コードデータ１２４の「Web -> Web:DisplayStandby」を読み込み、「：」より前のキーワード：「Web -> Web」から動作の客体：「Web」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「DisplayStandby」に対応する、画面遷移後のウェブ画面を表示させるための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「Web」、すなわち、乗換情報を表示対象として、読み出した動作プログラムを実行する。これにより、図９に示されるように、検索ボタン１４４が押下され、画面が遷移した後の乗換情報が表示画面１４１に表示される。
【００５１】
ＲＰＡ実行部１１１は、コードデータ１２４の「Robot -> Web :click(ClassName[icnPriFare](0).parentElement.parentElement)」を読み込み、「：」より前のキーワード：「Robot -> Web」から動作の客体：「Web」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「click()」に対応する、ウェブ画面上の所定位置をクリックするための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「Web」、すなわち、乗換案内においてＨＴＭＬのＪａｖａｓｃｒｉｐｔに則った、キーワード：「(ClassName[icnPriFare](0).parentElement.parentElement)」で規定される位置を対象位置として、読み出した動作プログラムを実行する。これにより、図９に示される、乗換案内における値段順タブ１４５が押下される。
【００５２】
ＲＰＡ実行部１１１は、コードデータ１２４の「Web -> Web:DisplayStandby」を読み込み、「：」より前のキーワード：「Web -> Web」から動作の客体：「Web」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「DisplayStandby」に対応する、画面遷移後のウェブ画面を表示させるための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「Web」、すなわち、乗換情報を表示対象として、読み出した動作プログラムを実行する。これにより、図１０に示されるように、値段順タブ１４５が押下され、画面が遷移した後の乗換情報が表示画面１４１に表示される。
【００５３】
ＲＰＡ実行部１１１は、コードデータ１２４の「InputF <- Web:Range[交通費](（黒四角）X)←Get(ClassName[mark].innerText(*円*))」を読み込み、「：」より前のキーワード：「InputF <- Web」から動作の客体：「InputF」及び「Web」と、動作の方向とを取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「_(（黒四角）X)←Get()」に対応する、ウェブ画面上の所定箇所のテキスト情報をデータファイルへ入力するための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「Web」、すなわち、乗換案内においてＨＴＭＬのＪａｖａｓｃｒｉｐｔに則った、キーワード：「ClassName[mark].innerText(*円*)」で規定される位置内の「円」が付いているテキストを入力対象とする。そして、ＲＰＡ実行部１１１は、「InputF」、すなわち、交通費.xlsxにおけるキーワード：Range[交通費]の「（黒四角）X」の欄を入力位置として、読み出した動作プログラムを実行する。これにより、図１０に示されるように、乗換案内のルート１における「４４２」円が、交通費.xlsxの「交通費」の値として入力される。
【００５４】
ＲＰＡ実行部１１１は、コードデータ１２４の「Robot -> Web :click(tags[A].href(https://transit. xxxx.co.jp/))」を読み込み、「：」より前のキーワード：「Robot -> Web」から動作の客体：「Web」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「click()」に対応する、ウェブ画面上の所定位置をクリックするための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「Web」、すなわち、乗換案内においてＨＴＭＬのＪａｖａｓｃｒｉｐｔに則った、キーワード：「tags[A]」で規定される位置を入力位置に、リンク先：「https://transit. xxxx.co.jp/」を入力対象として、読み出した動作プログラムを実行する。これにより、乗換案内の初期画面へ遷移される。
【００５５】
ＲＰＡ実行部１１１は、コードデータ１２４の「Web -> Web:DisplayStandby」を読み込み、「：」より前のキーワード：「Web -> Web」から動作の客体：「Web」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「DisplayStandby」に対応する、画面遷移後のウェブ画面を表示させるための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「Web」、すなわち、乗換情報を表示対象として、読み出した動作プログラムを実行する。これにより、表示画面１４１における乗換情報の表示が図８に示される乗換案内の表示に戻る。
【００５６】
ＲＰＡ実行部１１１は、上記の処理を、（黒四角）Valuesの最大行まで繰り返す。図１１は、交通費.xlsxにおける最大行、すなわち、三行目まで処理が実行された後の表示画面１４１の表示例を表す。図１１では、乗車区間「六町→品川」の値段順で表示されるルート１における「５０８」円が、交通費.xlsxの「交通費」の値として取得されている。
【００５７】
ＲＰＡ実行部１１１は、コードデータ１２４の「Robot -> Web :ie.quit」を読み込み、「：」より前のキーワード：「Robot -> Web」から動作の客体：「Web」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「ie.quit」に対応する、インターネットエクスプローラーを利用したインターネット接続を終了させるための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「Web」、すなわち、乗換情報への接続を終了させるように、読み出した動作プログラムを実行する。これにより、インターネットエクスプローラーによるネット接続が終了する。
【００５８】
ＲＰＡ実行部１１１は、コードデータ１２４の「InputF -> OutputF :SaveAs()」を読み込み、「：」より前のキーワード：「InputF -> OutputF」から動作の客体：「InputF」及び「OutputF」と、動作の方向とを取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「SaveAs()」に対応する、データファイルを所定の名称で所定の場所へ保存するための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「InputF」、すなわち、交通費が入力された交通費.xlsxを、「OutputF」、すなわち、交通費入力済.xlsxとしてC:\app\outputに保存するように、読み出した動作プログラムを実行する。これにより、交通費が入力された交通費.xlsxが、交通費入力済.xlsxとして、C:\app\outputに記憶される。
【００５９】
ＲＰＡ実行部１１１は、コードデータ１２４の「Robot -> OutputF :WorkBook.close()」を読み込み、「：」より前のキーワード：「Robot -> OutputF」から動作の客体：「OutputF」を取得する。ＲＰＡ実行部１１１は、「：」より後のキーワード：「WorkBook.close()」に対応する、表示されているデータファイルを閉じるための動作プログラムを記憶部１２から読み出す。ＲＰＡ実行部１１１は、「OutputF」、すなわち、交通費入力済.xlsxを対象として、読み出した動作プログラムを実行する。これにより、表示画面１４１に表示されている交通費入力済.xlsxが閉じられる。
【００６０】
コードデータ１２４にエラーがある場合には、表示画面１４１にエラーがあるため、実行ができないことが表示される。
【００６１】
以上のように、本実施形態では、ＲＰＡ実行部１１１は、ＵＭＬに則った設計図を表示可能に作成されたコードデータ１２４を読み込む。そして、ＲＰＡ実行部１１１は、コードデータ１２４に含まれるキーワードと対応する動作プログラムを実行する。これにより、コードデータ１２４から直接、ソフトウェアロボットに求められている動作を実行することが可能となる。すなわち、コードデータ１２４、及び／又は設計図（シーケンス図）を参照しながら、ＲＰＡツールを用いてコーディングする必要がなくなる。
【００６２】
また、ＲＰＡ実行プログラム１２１で実行可能なようにコードデータ１２４を作成しておけば、自ずと設計図が作成されることになる。つまり、設計図の規格を統一させることが可能となる。ＵＭＬは世界の広い地域で認定されているため、ＵＭＬに準拠した設計図で統一することは、後の世界展開の際に有利に働き得る。
【００６３】
また、コードデータ１２４は、テキストベースのデータであるため、修正が容易である。また、テキストベースであるため、ステップ数、分岐数等を過去の設計図と比較することが容易であり、設計図の評価工程を自動化させることが可能となり得る。
【００６４】
また、本実施形態では、ＲＰＡ実行部１１１は、コードデータ１２４に含まれるキーワードを検出する。そして、ＲＰＡ実行部１１１は、検出したキーワードと対応する動作プログラム１２３を呼び出し、呼び出した動作プログラム１２３を実行するようにしている。ＲＰＡ実行プログラム１２１とは別に記憶されている動作プログラム１２３が呼び出されるため、ＲＰＡ実行プログラム１２１をより汎用的な設計とすることが可能となる。
【００６５】
また、本実施形態では、コードデータ１２４は、例えば、オープンソースのツールであるＰｌａｎｔＵＭＬに対応した形式の言語で記載されている。これにより、ＵＭＬに準拠した設計図を表示可能なコードデータ１２４を安価に作成することが可能となる。
【００６６】
また、本実施形態では、ＲＰＡ実行プログラム１２１の制御文と、ＰｌａｎｔＵＭＬの制御文とは、少なくとも関連付けられている。これにより、コードデータ１２４を作成する負担が軽減されることになる。
【００６７】
なお、本実施形態において、ＲＰＡ実行プログラム１２１が対応しているキーワード、及び記憶部１２に記憶されている動作プログラム１２３は、上記の説明のものに限定されない。例えば、図３乃至図１１では、ＨＴＭＬを用いて作成されたウェブサイトから所望の情報を取得して所望のデータを作成するコード読込式ロボット、及びこのコード読込式ロボットで用いられるＲＰＡ実行プログラム１２１について説明した。しかしながら、本実施形態に係るコード読込式ロボット、及びＲＰＡ実行プログラム１２１は、例えば、ウェブサイト以外から情報を取得して所望のデータを作成してもよい。例えば、所定のアプリケーションを操作することで情報を取得してもよい。
【００６８】
このとき、ＲＰＡ実行プログラム１２１は、例えば、所定のアプリケーションを操作するためのキーワードを検出可能となっている。また、例えば、コードデータ１２４には、図１２に示されるコードが含まれ得る。ＲＰＡ実行部１１１は、例えば、図１２に示されるコードデータ１２４を読み込み、「box…participant…as winApp end box」の制御文に基づき、C:\appに記憶されているアプリケーション.exeを客体としての「winApp」とする。
【００６９】
また、ＲＰＡ実行部１１１は、図１２に示されるコードデータ１２４を読み込み、「box…participant…as button1…participant…as button2…participant…as button3…participant…as button4 end box」の制御文に基づき、アプリケーション内の様々なボタンをクリックするためのbutton1〜button4を定義する。
【００７０】
Button1は、C:\app\objectに記憶されている、ボタンに関する予め登録される画像の画像データ、例えば、ボタン.bmpを参照したボタンである。Button2は、ウィンドウズ（登録商標）のウィンドウハンドルを利用したボタンである。図１２に示される例では、６５５３５が設定されている。Button3は、ウィンドウズにおけるウィンドウの順番を利用したボタンである。Button4は、画面上の座標を利用したボタンである。
【００７１】
ＲＰＡ実行部１１１は、例えば、図１２に示される「Robot -> winApp:exe起動()」を読み込むと、「winApp」、すなわち、アプリケーション.exeを起動させるための動作プログラムを実行する。この「winApp」の実行の最中において、例えば、図１２に示される「Robot -> winApp:click(button1)」が読み込まれる。ＲＰＡ実行部１１１は、C:\app\objectに記憶されているボタン.bmpと同じ表示を表示画面から検出し、検出したボタンをクリックする。
【００７２】
また、「winApp」の実行の最中において、例えば、図１２に示される「Robot -> winApp:click(button2)」が読み込まれる。ＲＰＡ実行部１１１は、ウィンドウハンドル：６５５３５のウィンドウをクリックする。
【００７３】
また、「winApp」の実行の最中において、例えば、図１２に示される「Robot -> winApp:click(button3)」が読み込まれる。ＲＰＡ実行部１１１は、順番が一番目のウィンドウをクリックする。
【００７４】
また、「winApp」の実行の最中において、例えば、図１２に示される「Robot -> winApp:click(button4)」が読み込まれる。ＲＰＡ実行部１１１は、座標（ｘ，ｙ）をクリックする。
【００７５】
また、button1〜button4が必ずしも定義されている必要はない。例えば、図１３で示されるように、「click()」にクリック対象が記載されてもよい。
【００７６】
ＲＰＡ実行プログラム１２１が対応するキーワード、及び記憶部１２に記憶されている動作プログラム１２３は、ソフトウェアロボットに求められる動作に応じ、任意に調整されて構わない。
【００７７】
また、上記実施形態では、ＲＰＡ実行プログラム１２１により、コードデータ１２４が実行される場合を例に説明した。しかしながら、ＲＰＡ実行プログラム１２１の機能は、コードデータ１２４の実行に限定されない。例えば、ＲＰＡ実行プログラム１２１には、コードデータ１２４内のエラーをチェックする機能が含まれていても構わない。例えば、図６に示される実行ウィンドウ１４２のロボット実行ボタン１４３の隣にチェックボタンが設けられていてもよい。コードデータ１２４についてのエラーをチェックしたい場合、ユーザは、所望のコードデータ.puを実行ウィンドウ１４２へ入れ、チェックボタンを押下する。
【００７８】
ＲＰＡ実行部１１１は、コードデータ.puのコードをテキストとして行毎に読み込み、例えば、読み込んだ制御文、又はキーワードと、予め設定されている制御文、及びキーワードとを比較する。例えば、図３によれば、コードデータ.puの１つの行のコードのうち、「：」より前のコードは、ｐｌａｎｔＵＭＬの形式に則っている。ＲＰＡ実行部１１１は、「：」より前のコードがｐｌａｎｔＵＭＬの記載に則っているかをチェックする。また、コードデータ.puの１つの行のコードのうち、「：」より後のコードは、動作プログラム１２３を呼び出すためのキーワードに係る。ＲＰＡ実行部１１１は、「：」より後のコードが予め設定されているキーワードと一致するか否かをチェックする。また、ＲＰＡ実行部１１１は、例えば、変数及び分類子等が「ｂｏｘ」等で定義されているかをチェックする。また、ＲＰＡ実行部１１１は、例えば、「ｂｏｘ」に対して「ｅｎｄ  ｂｏｘ」の数が正しくあるか、「ｌｏｏｐ」に対して「ｅｎｄ」の数が正しくあるか、「ａｌｔ／ｅｌｓｅ」に対して「ｅｎｄ」の数が正しくあるか等をチェックする。また、ＲＰＡ実行部１１１は、キーワード中の「Function()」の括弧内の値が正しく取得されているかをチェックする。また、ＲＰＡ実行部１１１は、「（黒四角）X」の記載位置に異常がないかをチェックする。ＲＰＡ実行部１１１は、比較に基づいたチェック結果を出力する。チェック結果は、例えば、修正箇所の指摘、又はエラー報告等を含む。
【００７９】
ＲＰＡ実行部１１１がコードデータ１２４をチェックする機能を有することで、エラーの有無を迅速にユーザへ伝えることが可能となる。
【００８０】
また、上記実施形態では、表示画面１４１に表示されるコード読取式ロボットの実行ウィンドウ１４２に、コードデータファイルをドラッグアンドドロップ操作により入れて、コード読取式ロボットを実行させる場合を例に説明した。しかしながら、コード読取式ロボットの実行は、ユーザ操作に基づくものに限定されない。
【００８１】
例えば、処理部１１は、コード読取式ロボットの起動を管理するＲＰＡ管理部の機能を有していてもよい。ＲＰＡ管理部は、例えば、記憶部１２に記憶されているスケジュール情報に基づき、コードデータ１２４を記憶部１２から読み出し、ＲＰＡ実行部１１１に実行させる。
【００８２】
また、本実施形態に係る記憶部１２は、入力支援プログラムを記憶し、処理部１１は、入力支援プログラムを実行することで、入力支援部の機能を有していてもよい。入力支援プログラムは、例えば、非一過性の記憶媒体に記憶されて配布され、非一過性の記憶媒体から読み出されて記憶部１２にインストールされてもよい。また、入力支援プログラムは、例えば、所定のサーバからダウンロードされて記憶部１２にインストールされてもよい。また、入力支援プログラムは、記憶部１２に予め記憶されていてもよい。
【００８３】
入力支援部は、ユーザがコードデータ１２４を作成する際、コードの入力を支援する。入力支援部は、例えば、コードスニペット機能等により実現される。入力支援部は、例えば、ユーザによりある程度コードが打ち込まれると、打ち込まれたコードを、定義された文字の書き方規則に則って修正する。また、入力支援部は、打ち込まれたコードと、定義された書き方規則とに基づき、残りのコードを自動入力する。このとき、コードは、例えば、パラメータのみは空欄として入力されてもよい。また、入力支援部は、入力されたコードと、予め定義された規則とを比較し、修正を要する値がある場合には、その値の位置まで指示子を移動させるようにしてもよい。
【００８４】
処理部１１が入力支援部の機能を有することで、ＲＰＡ実行プログラム１２１に則ったコードデータ１２４を作成する負担が軽減可能となる。
【００８５】
以上説明した少なくとも１つの実施形態によれば、効率的に動作するソフトウェアロボットを作成する際の手間を削減できる。
【００８６】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【符号の説明】
【００８７】
１…信号処理装置
１１…処理部
１２…記憶部
１３…入力インタフェース
１４…出力インタフェース
１５…通信インタフェース
１１１…ＲＰＡ実行部
１１２…描画部
１２１…ＲＰＡ実行プログラム
１２２…描画プログラム
１２３…動作プログラム
１２４…コードデータ
１２５…入力データ
１４１…表示画面
１４２…実行ウィンドウ
１４３…ロボット実行ボタン
１４４…検索ボタン
１４５…値段順タブ
【要約】 
【課題】  効率的に動作するソフトウェアロボットを作成する際の手間を削減する。
【解決手段】  ＲＰＡ実行プログラム１２１は、ＵＭＬに則った設計図を表示可能に作成されたコードデータ１２４を読み込む処理と、前記コードデータ１２４に含まれるキーワードを検出する処理と、前記検出したキーワードと対応する動作プログラム１２３を呼び出す処理と、前記呼び出した動作プログラム１２３を実行する処理とをコンピュータに実行させる。
【選択図】図１【図１】
0006755538.tif 000002
【図２】
0006755538.tif 000003
【図３】
0006755538.tif 000004
【図４】
0006755538.tif 000005
【図５】
0006755538.tif 000006
【図６】
0006755538.tif 000007
【図７】
0006755538.tif 000008
【図８】
0006755538.tif 000009
【図９】
0006755538.tif 000010
【図１０】
0006755538.tif 000011
【図１１】
0006755538.tif 000012
【図１２】
0006755538.tif 000013
【図１３】
0006755538.tif 000014