JP2021072097A - Execution program, input support program, and code-reading robot - Google Patents
Execution program, input support program, and code-reading robot Download PDFInfo
- Publication number
- JP2021072097A JP2021072097A JP2020139008A JP2020139008A JP2021072097A JP 2021072097 A JP2021072097 A JP 2021072097A JP 2020139008 A JP2020139008 A JP 2020139008A JP 2020139008 A JP2020139008 A JP 2020139008A JP 2021072097 A JP2021072097 A JP 2021072097A
- Authority
- JP
- Japan
- Prior art keywords
- program
- code data
- code
- keyword
- rpa
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明の実施形態は、実行プログラム、入力支援プログラム、及びコード読込式ロボットに関する。 Embodiments of the present invention relate to an execution program, an input support program, and a code-reading robot.
近年、オフィスワークの効率化、及び自動化を図るため、RPA(Robotic Process Automation)が注目されている。RPAは、例えば、ソフトウェアロボット(RPAアプリとも称される。)がコンピュータ上で動作することにより実現される。ソフトウェアロボットは、例えば、人間がコンピュータを操作して業務を遂行する手順に基づいて構築される。 In recent years, RPA (Robotic Process Automation) has been attracting attention in order to improve the efficiency and automation of office work. RPA is realized, for example, by operating a software robot (also referred to as an RPA application) on a computer. A software robot is constructed based on, for example, a procedure in which a human operates a computer to perform a business.
ソフトウェアロボットは、一般的に、例えば、RPAツールを利用してコーディングされる。効率的に動作するソフトウェアロボットを作成するには、コーディング前に、ソフトウェアロボットが実行する動作を詳細に設計することが望ましい。ただし、動作を詳細に設計しようとすると、例えば、まず設計図を作成し、作成した設計図を参照しながらコーディングすることになる。 Software robots are generally coded using, for example, RPA tools. In order to create a software robot that operates efficiently, it is desirable to design the operation performed by the software robot in detail before coding. However, when trying to design the operation in detail, for example, a design drawing is first created, and then coding is performed with reference to the created design drawing.
以上のように、効率的に動作するソフトウェアロボットを作成しようとすると、設計図を作成し、その後に、設計図を参照しながらコーディングするため、作成に手間がかかる。 As described above, when trying to create a software robot that operates efficiently, it takes time and effort to create a design drawing and then code while referring to the design drawing.
そこで、目的は、効率的に動作するソフトウェアロボットを作成する際の手間を削減することである。 Therefore, the purpose is to reduce the time and effort required to create a software robot that operates efficiently.
本発明に係る実行プログラムは、UMLに則った設計図を表示可能に作成されたコードデータを読み込む処理と、前記コードデータに含まれるキーワードと対応する動作プログラムを実行する処理とをコンピュータに実行させる。 The execution program according to the present invention causes a computer to execute a process of reading code data created so that a design drawing conforming to UML can be displayed and a process of executing an operation program corresponding to a keyword included in the code data. ..
また、本発明に係る入力支援プログラムは、UMLに則った設計図を表示可能なコードデータを作成する際、前記コードデータを実行する実行プログラムのキーワードの入力を支援する処理をコンピュータに実行させる。 Further, the input support program according to the present invention causes a computer to execute a process of supporting input of a keyword of an execution program that executes the code data when creating code data capable of displaying a design drawing in accordance with UML.
また、本発明に係るコード読込式ロボットは、UMLに則った設計図を表示可能に作成されたコードデータに含まれるキーワードと対応する動作プログラムをコンピュータに実行させる実行プログラムを具備する。 Further, the code-reading robot according to the present invention includes an execution program that causes a computer to execute an operation program corresponding to a keyword included in code data created so that a design drawing conforming to UML can be displayed.
以下、実施の形態について、図面を参照して説明する。 Hereinafter, embodiments will be described with reference to the drawings.
図1は、本実施形態に係る信号処理装置1の機能構成の例を表すブロック図である。信号処理装置1は、例えば、パーソナルコンピュータ、又はサーバ等により実現される。
FIG. 1 is a block diagram showing an example of a functional configuration of the
図1に示される信号処理装置1は、例えば、処理部11、記憶部12、入力インタフェース13、出力インタフェース14、及び通信インタフェース15を備える。処理部11、記憶部12、入力インタフェース13、出力インタフェース14、及び通信インタフェース15は、例えば、バスを介して互いに通信可能に接続されている。
The
処理部11は、例えば、CPU(Central Processing Unit)、CPUが処理を実行する際に主記憶装置として用いるRAM(Random Access Memory)により構成される。CPUは、例えば、記憶部12に記憶されているプログラムをRAMに読み込み実行することで、プログラムに対応する種々の機能を実現する。
The processing unit 11 is composed of, for example, a CPU (Central Processing Unit) and a RAM (Random Access Memory) used as a main storage device when the CPU executes processing. The CPU, for example, realizes various functions corresponding to the program by reading the program stored in the
記憶部12は、種々の情報を記憶するHDD(hard disk drive)、及びSSD(solid state drive)等の不揮発性の記憶回路を備える、いわゆる補助記憶装置である。なお、記憶部12は、CD−ROM、DVD、及びフラッシュメモリ等の可搬性記憶媒体との間で種々の情報を読み書きする駆動装置等であってもよい。
The
記憶部12は、本実施形態に係るプログラム、例えば、RPA実行プログラム121を記憶している。RPA実行プログラム121は、テキストベースのコードデータ124に基づき、コードデータ124に規定されている動作を実行させるためのプログラムである。RPA実行プログラム121は、例えば、コードデータ124に含まれる所定のキーワードに応じた動作プログラムを実行する。キーワードは、RPA実行プログラム121で規定されていてもよいし、記憶部12に記憶されることで規定されていてもよい。キーワードは、例えば、実行すべき動作を識別可能なテキスト情報である。また、キーワードは、指示対象を特定可能なテキスト情報であってもよい。また、記憶部12は、テキストベースのコードで設計図を設計して描画するための描画プログラム122を記憶している。本実施形態において設計図は、例えば、UML(Unified Modeling Language(統一モデリング言語))に則ったシーケンス図を表す。なお、RPA実行プログラム121は、例えば、描画プログラム122の機能を拡張するプログラムであると理解してもよい。また、記憶部12は、予め設定されたキーワードと対応付けられている動作プログラム123を記憶している。
The
動作プログラム123は、例えば、単純な単一の動作が定義されたプログラムであり、動作毎に記憶されている。動作プログラム123には、例えば、データファイルを画面に表示させるための動作プログラム、インターネットにアクセスするための動作プログラム、ウェブ画面を表示させるための動作プログラム、所定の値を抽出するための動作プログラム、所定の値を入力するための動作プログラム、所定位置をクリックするための動作プログラム、所定位置のテキスト情報をデータファイルへ返すための動作プログラム、及び/又はデータファイルを記憶するための動作プログラム等が含まれる。なお、動作プログラム123は、これらに限定されず、所望されるソフトウェアロボットに求められる動作プログラムが含まれ得る。動作プログラム123は、必要に応じて任意に調整されて構わない。
The
RPA実行プログラム121、描画プログラム122、動作プログラム123、又はこれらのいずれかの組み合わせは、例えば、非一過性の記憶媒体に記憶されて配布され、非一過性の記憶媒体から読み出されて記憶部12にインストールされてもよい。また、RPA実行プログラム121、描画プログラム122、動作プログラム123、又はこれらのいずれかの組み合わせは、例えば、所定のサーバからダウンロードされて記憶部12にインストールされてもよい。また、RPA実行プログラム121、描画プログラム122、動作プログラム123、又はこれらのいずれかの組み合わせは、記憶部12に予め記憶されていてもよい。
The
また、記憶部12は、コードデータ124を記憶している。コードデータ124は、テキストベースのデータである。コードデータ124は、例えば、ソフトウェアロボットの動作を可視化するための設計図を、描画プログラム122に対応した形式の言語で記載したものである。また、コードデータ124は、例えば、RPA実行プログラム121に対応した制御文、及び動作プログラム123を実行するためのキーワードを含むように記載されている。ソフトウェアロボットは、例えば、イベント駆動型アプリケーションとも称し得る。コードデータ124は、例えば、ユーザにより作成され、記憶部12に記憶される。なお、コードデータ124は、所定の記憶媒体を介して記憶部12に記憶されてもよいし、所定のサーバを介して記憶部12に記憶されてもよい。
Further, the
また、記憶部12は、ソフトウェアロボットが動作を実行する際に、入力として用いられる入力データ125を記憶している。入力データ125は、RPA実行プログラム121と共に提供されてもよいし、RPA実行プログラム121とは別に提供されてもよい。また、記憶部12は、ソフトウェアロボットの動作により作成される結果データを記憶する。
Further, the
入力インタフェース13は、例えば、マウス、キーボード、及び、操作面へ触れることで指示が入力されるタッチパネル等により実現される。入力インタフェース13は、操作者からの入力指示を電気信号へ変換し、電気信号を処理部11へ出力する。なお、入力インタフェース13は、マウス、及びキーボード等の物理的な操作デバイスに限定されない。入力インタフェース13には、例えば、外部の入力機器から入力される電気信号を受け付ける受信ポートが含まれてもよい。 The input interface 13 is realized by, for example, a mouse, a keyboard, a touch panel on which instructions are input by touching the operation surface, and the like. The input interface 13 converts an input instruction from the operator into an electric signal, and outputs the electric signal to the processing unit 11. The input interface 13 is not limited to physical operation devices such as a mouse and a keyboard. The input interface 13 may include, for example, a receiving port that receives an electric signal input from an external input device.
出力インタフェース14は、例えば、表示機器、及び印刷機器等により実現される。表示機器としては、例えば、液晶ディスプレイ、有機ELディスプレイ、LEDディスプレイ、プラズマディスプレイ、及びCRTディスプレイ等、任意のディスプレイが利用可能である。表示機器は、表示対象についての画像データを表示する。印刷機器は、例えば、プリンタである。印刷機器は、印刷対象についての画像データを所定用紙に印刷する。なお、出力インタフェース14は、表示機器、及び印刷機器等の物理的な出力装置に限定されない。出力インタフェース14には、例えば、外部の出力装置へ画像データを送信する送信ポートが含まれてもよい。 The output interface 14 is realized by, for example, a display device, a printing device, or the like. As the display device, any display such as a liquid crystal display, an organic EL display, an LED display, a plasma display, and a CRT display can be used. The display device displays image data about the display target. The printing device is, for example, a printer. The printing device prints image data about the printing target on a predetermined sheet of paper. The output interface 14 is not limited to physical output devices such as display devices and printing devices. The output interface 14 may include, for example, a transmission port for transmitting image data to an external output device.
通信インタフェース15は、例えば、ネットワークと接続する回路により実現される。通信インタフェース15は、ネットワークを介し、例えば、所定のサーバ、又は他の信号処理装置等と通信する。
The
図1に示される処理部11は、記憶部12に記憶されているプログラムを実行することで、当該プログラムに対応する機能を実現する。例えば、処理部11は、プログラムを実行することで、RPA実行部111、及び描画部112の機能を実現する。
The processing unit 11 shown in FIG. 1 realizes a function corresponding to the program by executing the program stored in the
図1に示される処理部11は、複数のCPUが組み合わされて形成されていても構わない。すなわち、図1に示されるRPA実行部111、及び描画部112は、例えば、各CPUがプログラムを実行することで実現されても構わない。
The processing unit 11 shown in FIG. 1 may be formed by combining a plurality of CPUs. That is, the
また、処理部11は、RPA実行部111、及び描画部112の機能をそれぞれ有する専用のハードウェア構成により形成されていても構わない。また、処理部11は、RPA実行部111、及び描画部112の機能をそれぞれ有する専用のハードウェア回路を組み込んだ特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、フィールド・プログラマブル・ゲート・アレイ(Field Programmable Gate Array:FPGA)、他の複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、又は単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)により形成されていても構わない。
Further, the processing unit 11 may be formed by a dedicated hardware configuration having the functions of the
RPA実行部111は、記憶部12に記憶されるコードデータ124に従った処理を実行する。例えば、RPA実行部111は、コードデータ124に含まれる制御文、及びキーワードに基づき、記憶部12に記憶されている動作プログラム123を実行する。
The
描画部112は、記憶部12に記憶されるコードデータ124に基づいて設計図を作成する。描画部112は、作成した設計図を、例えば、表示機器に表示させる。
The
図2は、図1に示されるRPA実行部111及び描画部112の動作を説明するための模式図である。
FIG. 2 is a schematic diagram for explaining the operation of the
コードデータ124を作成する際、例えば、ユーザは、作成しようとするソフトウェアロボットに求められる要件を定義する。ユーザは、定義した要件を満たすための機能を設計する。そして、ユーザは、設計した機能を実現するための詳細な動作をUMLに則った設計図で可視化するため、描画プログラム122に則った言語でコードデータ124を作成する。また、ユーザは、コードデータ124をRPA実行プログラム121を用いて実行するため、RPA実行プログラム121に則った制御文、及び動作プログラム123を実行するためのキーワードを含むように、コードデータ124を作成する。なお、RPA実行プログラム121に則った制御文は、例えば、描画プログラム122に則った制御文と同一、又は関連付けられている。ユーザは、作成したコードデータ124を記憶部12に記憶させる。
When creating the
ユーザは、コードデータ124を作成すると、信号処理装置1の入力インタフェース13を介し、コードデータ124に基づく設計図の可視化指示を入力する。可視化指示が入力されると、処理部11は、描画プログラム122を実行し、描画部112として機能する。描画部112は、コードデータ124に基づき、設計図としての、例えば、シーケンス図を作成し、作成したシーケンス図を出力インタフェース14としての表示機器に表示させる。
When the
ユーザは、表示されたシーケンス図に基づき、ソフトウェアロボットの動作を確認する。ユーザは、シーケンス図を修正する必要があれば、コードデータ124のテキストを修正する。テキストが修正されると、描画部112は、修正後のコードデータ124に基づき、シーケンス図を作成し、作成したシーケンス図を表示機器に表示させる。なお、修正後のコードデータ124に基づくシーケンス図の可視化指示に応じ、シーケンス図が表示されてもよい。ユーザは、所望の動作を実行するソフトウェアロボットについてのシーケンス図が作成されるまで、コードデータ124の修正と描画とを繰り返す。
The user confirms the operation of the software robot based on the displayed sequence diagram. The user modifies the text of the
処理部11は、ユーザからの指示、又は予め設定されたスケジュールに従い、RPA実行部111として機能する。RPA実行部111は、指定されたコードデータ124を記憶部12から読み出し、コードデータ124に従った処理を実行する。例えば、RPA実行部111は、コードデータ124に含まれる制御文、及びキーワードに基づき、記憶部12に記憶されている動作プログラム123を呼び出す。RPA実行部111は、呼び出した動作プログラム123を実行する。
The processing unit 11 functions as the
より具体的には、例えば、RPA実行部111は、コードデータ124を行毎に読み込み、読み込んだ行に書かれている制御文、及び/又はキーワードを検出する。RPA実行部111は、例えば、検出したキーワードに基づき、動作の実行主体、又は客体を判断する。また、RPA実行部111は、検出したキーワードと対応付けられている動作プログラム123を記憶部12から読み出し、読み出した動作プログラム123を、判断した主体及び客体と、キーワード等とに基づいて実行する。RPA実行部111は、検出した制御文に従ってコードデータ124を読み込み、コードデータ124の最終行まで処理を繰り返す。
More specifically, for example, the
このように、コードデータ124がRPA実行プログラム121に読み込まれ、RPA実行プログラム121、及び動作プログラム123が実行されることにより、ソフトウェアロボットとしてのコード読込式ロボットが形成されることになる。
In this way, the
次に、コード読込式ロボットの動作について詳細に説明する。以下の例では、描画プログラム122として、例えば、オープンソースのツールであるPlantUMLが用いられる場合を例に説明する。なお、PlantUMLに限定されず、テキストベースのコードで設計図を設計して描画できれば、Visualstudio code(登録商標)等、如何なる描画プログラム122が用いられても構わない。
Next, the operation of the code-reading robot will be described in detail. In the following example, a case where, for example, PlantUML, which is an open source tool, is used as the
図3は、以下の説明で用いるコードデータ124の例を表す図である。図3に示されるコードデータ124は、交通費を取得し、取得した交通費を書き込んだファイルを作成するソフトウェアロボットのシーケンス図を描画するためのコードである。コードデータ124は、PlantUMLで規定される言語に則って記載され、記憶部12に、例えば、コードデータ.puとして記憶されている。図4は、図3に示されるコードデータ124を、PlantUMLにより描画したシーケンス図である。
FIG. 3 is a diagram showing an example of
図3、及び図4の説明において、入力データ125は、交通費.xlsxという名称のエクセルファイルである。交通費.xlsxは、例えば、「C:\app\input」に記憶されている。図5は、図3、及び図4で用いられる交通費.xlsxの例を表す図である。図5に示される入力データ125では、列毎にレコードが登録されており、各レコードには、日付、乗車駅、下車駅、及び交通費の項目がある。このうち、日付、乗車駅、及び下車駅に、それぞれ日付及び駅名が入力されている。 In the description of FIGS. 3 and 4, the input data 125 is an Excel file named transportation cost .xlsx. Transportation cost .xlsx is stored in "C: \ app \ input", for example. FIG. 5 is a diagram showing an example of transportation cost .xlsx used in FIGS. 3 and 4. In the input data 125 shown in FIG. 5, records are registered for each column, and each record has items of date, boarding station, getting-off station, and transportation cost. Of these, the date and station name are entered in the date, boarding station, and getting-off station, respectively.
図6乃至図11は、本実施形態に係るコード読取式ロボットが動作を実行する際の表示機器の表示例を表す模式図である。 6 to 11 are schematic views showing a display example of a display device when the code reading robot according to the present embodiment executes an operation.
まず、例えば、図6で示されるように、表示画面141にコード読取式ロボットの実行ウィンドウ142が表示される。ユーザは、コードデータ.puを所定の記憶フォルダから指定し、例えば、マウスのドラッグアンドドロップ操作により、コードデータ.puを実行ウィンドウ142へ投げ込む。このとき、例えば、キーボードにより、ファイル名:「コードデータ.pu」を実行ウィンドウ142に直接打ち込んでもよい。コードデータ.puが選択され、ユーザにより、ロボット実行ボタン143が押下されると、RPA実行部111が動作を開始する。
First, for example, as shown in FIG. 6, the code reading
RPA実行部111は、例えば、図3に示されるコードデータ124を読み込み、「box…actor…as Robot end box」の制御文に基づき、コードデータ.puを実行主体としての「Robot」とする。また、RPA実行部111は、「box…participant…as InputF end box」の制御文に基づき、C:\app\inputに記憶されている交通費.xlsxを第1客体としての「InputF」とする。また、RPA実行部111は、「box…participant…as OuputF end box」の制御文に基づき、C:\app\outputに記憶される交通費入力済.xlsxを第2客体としての「OnputF」とする。また、RPA実行部111は、「box…participant…as Web end box」の制御文に基づき、https://transit.xxxx.co.jpでアクセスされる乗換情報を第3客体としての「Web」とする。すなわち、RPA実行部111は、実行主体としての「Robot」が、交通費.xlsx(第1客体としての「InputF」)、交通費入力済.xlsx(第2客体としての「OnputF」)、及び/又は乗換情報(第3客体としての「Web」)に対する処理を実行するように動作する。
For example, the
RPA実行部111は、コードデータ124の「Robot -> InputF:workbooks.open()」を読み込み、「:」より前のキーワード:「Robot -> InputF」から動作の客体:「InputF」を取得する。RPA実行部111は、「:」より後のキーワード:「workbooks.open()」に対応する、データファイルを画面に表示させるための動作プログラムを記憶部12から読み出す。なお、「:」より前の「Robot -> InputF」は、plantUMLの規則に則った記載であり、RobotからInputFへの指示であることを表す。「:」より後の「workbooks.open()」は、本実施形態に係るRPA実行プログラム121においてキーワードとして規定されている記載である。RPA実行部111は、「InputF」、すなわち、交通費.xlsxを表示対象として、読み出した動作プログラムを実行する。これにより、図7に示されるように交通費.xlsxが表示画面141に表示される。
The
RPA実行部111は、コードデータ124の「Robot -> Web:ie起動()」を読み込み、「:」より前のキーワード:「Robot -> Web」から動作の客体:「Web」を取得する。RPA実行部111は、「:」より後のキーワード:「ie起動()」に対応する、インターネットエクスプローラー(登録商標)を利用してインターネットにアクセスするための動作プログラムを記憶部12から読み出す。RPA実行部111は、「Web」、すなわち、乗換情報を接続先として、読み出した動作プログラムを実行する。これにより、インターネットエクスプローラーを利用してhttps://transit.xxxx.co.jpにアクセスされる。
The
RPA実行部111は、コードデータ124の「Web -> Web:DisplayStandby」を読み込み、「:」より前のキーワード:「Web -> Web」から動作の客体:「Web」を取得する。RPA実行部111は、「:」より後のキーワード:「DisplayStandby」に対応する、画面遷移後のウェブ画面を表示させるための動作プログラムを記憶部12から読み出す。
RPA実行部111は、「Web」、すなわち、乗換情報を表示対象として、読み出した動作プログラムを実行する。これにより、図8に示されるように乗換情報が表示画面141に表示される。
The
The
RPA実行部111は、コードデータ124の「Robot <- InputF:(黒四角)Values←scope(Range[日付](2))」を読み込み、「:」より前のキーワード:「Robot <- InputF」から動作の客体:「InputF」を取得する。RPA実行部111は、「:」より後のキーワード:「(黒四角)Values←scope()」に対応する、所定の値を抽出するための動作プログラムを記憶部12から読み出す。なお、本実施形態において、(黒四角)Valuesは、変数を表す。RPA実行部111は、客体として判断した「InputF」、すなわち、交通費.xlsxにおける、キーワード:「Range[日付](2)」を抽出対象として、読み出した動作プログラムを実行する。これにより、交通費.xlsxの日付に値が入力されている行である「2」〜「4」が「(黒四角)Values」として抽出される。
The
RPA実行部111は、コードデータ124の「loop (黒四角)X = MinRow((黒四角)Values) to MaxRow((黒四角)Values)…end」を読み込む。RPA実行部111は、「loop (黒四角)X = MinRow((黒四角)Values) to MaxRow((黒四角)Values)…end」の制御文に基づき、loopからendまでの処理を、(黒四角)Valuesの最小行から、(黒四角)Valuesの最大行まで繰り返す。
The
RPA実行部111は、コードデータ124の「InputF -> Web :Range[乗車駅]((黒四角)X)→input(Name[from](0))」を読み込み、「:」より前のキーワード:「InputF -> Web」から動作の客体:「InputF」及び「Web」と、動作の方向とを取得する。RPA実行部111は、「:」より後のキーワード:「_((黒四角)X)→input()」に対応する、データファイルの所定値をウェブ画面上の所定箇所へ入力するための動作プログラムを記憶部12から読み出す。RPA実行部111は、「InputF」、すなわち、交通費.xlsxにおけるキーワード:「Range[乗車駅]」の「(黒四角)X」の文字を入力対象とする。そして、RPA実行部111は、「Web」、すなわち、乗換案内においてHTML(HyperText Markup Language)のJavascript(登録商標)に則った、キーワード:「Name[from](0)」で規定される位置を入力位置として、読み出した動作プログラムを実行する。これにより、交通費.xlsxの「乗車駅」における一行目の駅名:「六町」が、乗換案内における「出発」へ入力される。
The
RPA実行部111は、コードデータ124の「InputF -> Web :Range[下車駅]((黒四角)X)→input(Name[to](0))」を読み込み、「:」より前のキーワード:「InputF -> Web」から動作の客体:「InputF」及び「Web」と、動作の方向とを取得する。RPA実行部111は、「:」より後のキーワード:「_((黒四角)X)→input()」に対応する、データファイルの所定値をウェブ画面上の所定箇所へ入力するための動作プログラムを記憶部12から読み出す。RPA実行部111は、「InputF」、すなわち、交通費.xlsxにおけるキーワード:「Range[下車駅]」の「(黒四角)X」の文字を入力対象とする。そして、RPA実行部111は、「Web」、すなわち、乗換案内においてHTMLのJavascriptに則った、キーワード「Name[to](0)」で規定される位置を入力位置として、読み出した動作プログラムを実行する。これにより、交通費.xlsxの「下車駅」における一行目の駅名:「神谷町」が、乗換案内における「到着」へ入力される。
The
RPA実行部111は、コードデータ124の「Robot -> Web :click(Id[searchModuleSubmit])」を読み込み、「:」より前のキーワード:「Robot -> Web」から動作の客体:「Web」を取得する。RPA実行部111は、「:」より後のキーワード:「click()」に対応する、ウェブ画面上の所定位置をクリックするための動作プログラムを記憶部12から読み出す。RPA実行部111は、「Web」、すなわち、乗換案内においてHTMLのJavascriptに則った、キーワード:「Id[searchModuleSubmit]」で規定される位置を対象位置として、読み出した動作プログラムを実行する。これにより、乗換案内における検索ボタン144が押下される。
The
RPA実行部111は、コードデータ124の「Web -> Web:DisplayStandby」を読み込み、「:」より前のキーワード:「Web -> Web」から動作の客体:「Web」を取得する。RPA実行部111は、「:」より後のキーワード:「DisplayStandby」に対応する、画面遷移後のウェブ画面を表示させるための動作プログラムを記憶部12から読み出す。
RPA実行部111は、「Web」、すなわち、乗換情報を表示対象として、読み出した動作プログラムを実行する。これにより、図9に示されるように、検索ボタン144が押下され、画面が遷移した後の乗換情報が表示画面141に表示される。
The
The
RPA実行部111は、コードデータ124の「Robot -> Web :click(ClassName[icnPriFare](0).parentElement.parentElement)」を読み込み、「:」より前のキーワード:「Robot -> Web」から動作の客体:「Web」を取得する。RPA実行部111は、「:」より後のキーワード:「click()」に対応する、ウェブ画面上の所定位置をクリックするための動作プログラムを記憶部12から読み出す。RPA実行部111は、「Web」、すなわち、乗換案内においてHTMLのJavascriptに則った、キーワード:「(ClassName[icnPriFare](0).parentElement.parentElement)」で規定される位置を対象位置として、読み出した動作プログラムを実行する。これにより、図9に示される、乗換案内における値段順タブ145が押下される。
The
RPA実行部111は、コードデータ124の「Web -> Web:DisplayStandby」を読み込み、「:」より前のキーワード:「Web -> Web」から動作の客体:「Web」を取得する。RPA実行部111は、「:」より後のキーワード:「DisplayStandby」に対応する、画面遷移後のウェブ画面を表示させるための動作プログラムを記憶部12から読み出す。
RPA実行部111は、「Web」、すなわち、乗換情報を表示対象として、読み出した動作プログラムを実行する。これにより、図10に示されるように、値段順タブ145が押下され、画面が遷移した後の乗換情報が表示画面141に表示される。
The
The
RPA実行部111は、コードデータ124の「InputF <- Web:Range[交通費]((黒四角)X)←Get(ClassName[mark].innerText(*円*))」を読み込み、「:」より前のキーワード:「InputF <- Web」から動作の客体:「InputF」及び「Web」と、動作の方向とを取得する。RPA実行部111は、「:」より後のキーワード:「_((黒四角)X)←Get()」に対応する、ウェブ画面上の所定箇所のテキスト情報をデータファイルへ入力するための動作プログラムを記憶部12から読み出す。RPA実行部111は、「Web」、すなわち、乗換案内においてHTMLのJavascriptに則った、キーワード:「ClassName[mark].innerText(*円*)」で規定される位置内の「円」が付いているテキストを入力対象とする。そして、RPA実行部111は、「InputF」、すなわち、交通費.xlsxにおけるキーワード:Range[交通費]の「(黒四角)X」の欄を入力位置として、読み出した動作プログラムを実行する。これにより、図10に示されるように、乗換案内のルート1における「442」円が、交通費.xlsxの「交通費」の値として入力される。
The
RPA実行部111は、コードデータ124の「Robot -> Web :click(tags[A].href(https://transit. xxxx.co.jp/))」を読み込み、「:」より前のキーワード:「Robot -> Web」から動作の客体:「Web」を取得する。RPA実行部111は、「:」より後のキーワード:「click()」に対応する、ウェブ画面上の所定位置をクリックするための動作プログラムを記憶部12から読み出す。RPA実行部111は、「Web」、すなわち、乗換案内においてHTMLのJavascriptに則った、キーワード:「tags[A]」で規定される位置を入力位置に、リンク先:「https://transit. xxxx.co.jp/」を入力対象として、読み出した動作プログラムを実行する。これにより、乗換案内の初期画面へ遷移される。
The
RPA実行部111は、コードデータ124の「Web -> Web:DisplayStandby」を読み込み、「:」より前のキーワード:「Web -> Web」から動作の客体:「Web」を取得する。RPA実行部111は、「:」より後のキーワード:「DisplayStandby」に対応する、画面遷移後のウェブ画面を表示させるための動作プログラムを記憶部12から読み出す。RPA実行部111は、「Web」、すなわち、乗換情報を表示対象として、読み出した動作プログラムを実行する。これにより、表示画面141における乗換情報の表示が図8に示される乗換案内の表示に戻る。
The
RPA実行部111は、上記の処理を、(黒四角)Valuesの最大行まで繰り返す。図11は、交通費.xlsxにおける最大行、すなわち、三行目まで処理が実行された後の表示画面141の表示例を表す。図11では、乗車区間「六町→品川」の値段順で表示されるルート1における「508」円が、交通費.xlsxの「交通費」の値として取得されている。
The
RPA実行部111は、コードデータ124の「Robot -> Web :ie.quit」を読み込み、「:」より前のキーワード:「Robot -> Web」から動作の客体:「Web」を取得する。RPA実行部111は、「:」より後のキーワード:「ie.quit」に対応する、インターネットエクスプローラーを利用したインターネット接続を終了させるための動作プログラムを記憶部12から読み出す。RPA実行部111は、「Web」、すなわち、乗換情報への接続を終了させるように、読み出した動作プログラムを実行する。これにより、インターネットエクスプローラーによるネット接続が終了する。
The
RPA実行部111は、コードデータ124の「InputF -> OutputF :SaveAs()」を読み込み、「:」より前のキーワード:「InputF -> OutputF」から動作の客体:「InputF」及び「OutputF」と、動作の方向とを取得する。RPA実行部111は、「:」より後のキーワード:「SaveAs()」に対応する、データファイルを所定の名称で所定の場所へ保存するための動作プログラムを記憶部12から読み出す。RPA実行部111は、「InputF」、すなわち、交通費が入力された交通費.xlsxを、「OutputF」、すなわち、交通費入力済.xlsxとしてC:\app\outputに保存するように、読み出した動作プログラムを実行する。これにより、交通費が入力された交通費.xlsxが、交通費入力済.xlsxとして、C:\app\outputに記憶される。
The
RPA実行部111は、コードデータ124の「Robot -> OutputF :WorkBook.close()」を読み込み、「:」より前のキーワード:「Robot -> OutputF」から動作の客体:「OutputF」を取得する。RPA実行部111は、「:」より後のキーワード:「WorkBook.close()」に対応する、表示されているデータファイルを閉じるための動作プログラムを記憶部12から読み出す。RPA実行部111は、「OutputF」、すなわち、交通費入力済.xlsxを対象として、読み出した動作プログラムを実行する。これにより、表示画面141に表示されている交通費入力済.xlsxが閉じられる。
The
コードデータ124にエラーがある場合には、表示画面141にエラーがあるため、実行ができないことが表示される。
If there is an error in the
以上のように、本実施形態では、RPA実行部111は、UMLに則った設計図を表示可能に作成されたコードデータ124を読み込む。そして、RPA実行部111は、コードデータ124に含まれるキーワードと対応する動作プログラムを実行する。これにより、コードデータ124から直接、ソフトウェアロボットに求められている動作を実行することが可能となる。すなわち、コードデータ124、及び/又は設計図(シーケンス図)を参照しながら、RPAツールを用いてコーディングする必要がなくなる。
As described above, in the present embodiment, the
また、RPA実行プログラム121で実行可能なようにコードデータ124を作成しておけば、自ずと設計図が作成されることになる。つまり、設計図の規格を統一させることが可能となる。UMLは世界の広い地域で認定されているため、UMLに準拠した設計図で統一することは、後の世界展開の際に有利に働き得る。
Further, if the
また、コードデータ124は、テキストベースのデータであるため、修正が容易である。また、テキストベースであるため、ステップ数、分岐数等を過去の設計図と比較することが容易であり、設計図の評価工程を自動化させることが可能となり得る。
Further, since the
また、本実施形態では、RPA実行部111は、コードデータ124に含まれるキーワードを検出する。そして、RPA実行部111は、検出したキーワードと対応する動作プログラム123を呼び出し、呼び出した動作プログラム123を実行するようにしている。RPA実行プログラム121とは別に記憶されている動作プログラム123が呼び出されるため、RPA実行プログラム121をより汎用的な設計とすることが可能となる。
Further, in the present embodiment, the
また、本実施形態では、コードデータ124は、例えば、オープンソースのツールであるPlantUMLに対応した形式の言語で記載されている。これにより、UMLに準拠した設計図を表示可能なコードデータ124を安価に作成することが可能となる。
Further, in the present embodiment, the
また、本実施形態では、RPA実行プログラム121の制御文と、PlantUMLの制御文とは、少なくとも関連付けられている。これにより、コードデータ124を作成する負担が軽減されることになる。
Further, in the present embodiment, the control statement of the
なお、本実施形態において、RPA実行プログラム121が対応しているキーワード、及び記憶部12に記憶されている動作プログラム123は、上記の説明のものに限定されない。例えば、図3乃至図11では、HTMLを用いて作成されたウェブサイトから所望の情報を取得して所望のデータを作成するコード読込式ロボット、及びこのコード読込式ロボットで用いられるRPA実行プログラム121について説明した。しかしながら、本実施形態に係るコード読込式ロボット、及びRPA実行プログラム121は、例えば、ウェブサイト以外から情報を取得して所望のデータを作成してもよい。例えば、所定のアプリケーションを操作することで情報を取得してもよい。
In the present embodiment, the keywords supported by the
このとき、RPA実行プログラム121は、例えば、所定のアプリケーションを操作するためのキーワードを検出可能となっている。また、例えば、コードデータ124には、図12に示されるコードが含まれ得る。RPA実行部111は、例えば、図12に示されるコードデータ124を読み込み、「box…participant…as winApp end box」の制御文に基づき、C:\appに記憶されているアプリケーション.exeを客体としての「winApp」とする。
At this time, the
また、RPA実行部111は、図12に示されるコードデータ124を読み込み、「box…participant…as button1…participant…as button2…participant…as button3…participant…as button4 end box」の制御文に基づき、アプリケーション内の様々なボタンをクリックするためのbutton1〜button4を定義する。
Further, the
Button1は、C:\app\objectに記憶されている、ボタンに関する予め登録される画像の画像データ、例えば、ボタン.bmpを参照したボタンである。Button2は、ウィンドウズ(登録商標)のウィンドウハンドルを利用したボタンである。図12に示される例では、65535が設定されている。Button3は、ウィンドウズにおけるウィンドウの順番を利用したボタンである。Button4は、画面上の座標を利用したボタンである。 Button1 is a button that refers to image data of a pre-registered image related to the button, for example, button .bmp, which is stored in C: \ app \ object. Button2 is a button that uses the window handle of Windows (registered trademark). In the example shown in FIG. 12, 65535 is set. Button3 is a button that uses the order of windows in Windows. Button4 is a button that uses the coordinates on the screen.
RPA実行部111は、例えば、図12に示される「Robot -> winApp:exe起動()」を読み込むと、「winApp」、すなわち、アプリケーション.exeを起動させるための動作プログラムを実行する。この「winApp」の実行の最中において、例えば、図12に示される「Robot -> winApp:click(button1)」が読み込まれる。RPA実行部111は、C:\app\objectに記憶されているボタン.bmpと同じ表示を表示画面から検出し、検出したボタンをクリックする。
For example, when the
また、「winApp」の実行の最中において、例えば、図12に示される「Robot -> winApp:click(button2)」が読み込まれる。RPA実行部111は、ウィンドウハンドル:65535のウィンドウをクリックする。
Further, during the execution of "winApp", for example, "Robot-> winApp: click (button2)" shown in FIG. 12 is read. The
また、「winApp」の実行の最中において、例えば、図12に示される「Robot -> winApp:click(button3)」が読み込まれる。RPA実行部111は、順番が一番目のウィンドウをクリックする。
Further, during the execution of "winApp", for example, "Robot-> winApp: click (button3)" shown in FIG. 12 is read. The
また、「winApp」の実行の最中において、例えば、図12に示される「Robot -> winApp:click(button4)」が読み込まれる。RPA実行部111は、座標(x,y)をクリックする。
Further, during the execution of "winApp", for example, "Robot-> winApp: click (button4)" shown in FIG. 12 is read. The
また、button1〜button4が必ずしも定義されている必要はない。例えば、図13で示されるように、「click()」にクリック対象が記載されてもよい。 Also, button1 to button4 do not necessarily have to be defined. For example, as shown in FIG. 13, the click target may be described in "click ()".
RPA実行プログラム121が対応するキーワード、及び記憶部12に記憶されている動作プログラム123は、ソフトウェアロボットに求められる動作に応じ、任意に調整されて構わない。
The keyword corresponding to the
また、上記実施形態では、RPA実行プログラム121により、コードデータ124が実行される場合を例に説明した。しかしながら、RPA実行プログラム121の機能は、コードデータ124の実行に限定されない。例えば、RPA実行プログラム121には、コードデータ124内のエラーをチェックする機能が含まれていても構わない。例えば、図6に示される実行ウィンドウ142のロボット実行ボタン143の隣にチェックボタンが設けられていてもよい。コードデータ124についてのエラーをチェックしたい場合、ユーザは、所望のコードデータ.puを実行ウィンドウ142へ入れ、チェックボタンを押下する。
Further, in the above embodiment, the case where the
RPA実行部111は、コードデータ.puのコードをテキストとして行毎に読み込み、例えば、読み込んだ制御文、又はキーワードと、予め設定されている制御文、及びキーワードとを比較する。例えば、図3によれば、コードデータ.puの1つの行のコードのうち、「:」より前のコードは、plantUMLの形式に則っている。RPA実行部111は、「:」より前のコードがplantUMLの記載に則っているかをチェックする。また、コードデータ.puの1つの行のコードのうち、「:」より後のコードは、動作プログラム123を呼び出すためのキーワードに係る。RPA実行部111は、「:」より後のコードが予め設定されているキーワードと一致するか否かをチェックする。また、RPA実行部111は、例えば、変数及び分類子等が「box」等で定義されているかをチェックする。また、RPA実行部111は、例えば、「box」に対して「end box」の数が正しくあるか、「loop」に対して「end」の数が正しくあるか、「alt/else」に対して「end」の数が正しくあるか等をチェックする。また、RPA実行部111は、キーワード中の「Function()」の括弧内の値が正しく取得されているかをチェックする。また、RPA実行部111は、「(黒四角)X」の記載位置に異常がないかをチェックする。RPA実行部111は、比較に基づいたチェック結果を出力する。チェック結果は、例えば、修正箇所の指摘、又はエラー報告等を含む。
The
RPA実行部111がコードデータ124をチェックする機能を有することで、エラーの有無を迅速にユーザへ伝えることが可能となる。
Since the
また、上記実施形態では、表示画面141に表示されるコード読取式ロボットの実行ウィンドウ142に、コードデータファイルをドラッグアンドドロップ操作により入れて、コード読取式ロボットを実行させる場合を例に説明した。しかしながら、コード読取式ロボットの実行は、ユーザ操作に基づくものに限定されない。
Further, in the above embodiment, the case where the code data file is inserted into the
例えば、処理部11は、コード読取式ロボットの起動を管理するRPA管理部の機能を有していてもよい。RPA管理部は、例えば、記憶部12に記憶されているスケジュール情報に基づき、コードデータ124を記憶部12から読み出し、RPA実行部111に実行させる。
For example, the processing unit 11 may have a function of an RPA management unit that manages the activation of the code reading type robot. For example, the RPA management unit reads the
また、本実施形態に係る記憶部12は、入力支援プログラムを記憶し、処理部11は、入力支援プログラムを実行することで、入力支援部の機能を有していてもよい。入力支援プログラムは、例えば、非一過性の記憶媒体に記憶されて配布され、非一過性の記憶媒体から読み出されて記憶部12にインストールされてもよい。また、入力支援プログラムは、例えば、所定のサーバからダウンロードされて記憶部12にインストールされてもよい。また、入力支援プログラムは、記憶部12に予め記憶されていてもよい。
Further, the
入力支援部は、ユーザがコードデータ124を作成する際、コードの入力を支援する。入力支援部は、例えば、コードスニペット機能等により実現される。入力支援部は、例えば、ユーザによりある程度コードが打ち込まれると、打ち込まれたコードを、定義された文字の書き方規則に則って修正する。また、入力支援部は、打ち込まれたコードと、定義された書き方規則とに基づき、残りのコードを自動入力する。このとき、コードは、例えば、パラメータのみは空欄として入力されてもよい。また、入力支援部は、入力されたコードと、予め定義された規則とを比較し、修正を要する値がある場合には、その値の位置まで指示子を移動させるようにしてもよい。
The input support unit assists the user in inputting the code when creating the
処理部11が入力支援部の機能を有することで、RPA実行プログラム121に則ったコードデータ124を作成する負担が軽減可能となる。
Since the processing unit 11 has the function of the input support unit, the burden of creating the
以上説明した少なくとも1つの実施形態によれば、効率的に動作するソフトウェアロボットを作成する際の手間を削減できる。 According to at least one embodiment described above, it is possible to reduce the time and effort required to create a software robot that operates efficiently.
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。 The present invention is not limited to the above embodiment, and can be variously modified at the implementation stage without departing from the gist thereof. In addition, each embodiment may be carried out in combination as appropriate, and in that case, the combined effect can be obtained. Further, the above-described embodiment includes various inventions, and various inventions can be extracted by a combination selected from a plurality of disclosed constituent requirements. For example, even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, if the problem can be solved and the effect is obtained, the configuration in which the constituent requirements are deleted can be extracted as an invention.
1…信号処理装置
11…処理部
12…記憶部
13…入力インタフェース
14…出力インタフェース
15…通信インタフェース
111…RPA実行部
112…描画部
121…RPA実行プログラム
122…描画プログラム
123…動作プログラム
124…コードデータ
125…入力データ
141…表示画面
142…実行ウィンドウ
143…ロボット実行ボタン
144…検索ボタン
145…値段順タブ
1 ... Signal processing device 11 ... Processing
Claims (11)
前記コードデータに含まれるキーワードと対応する動作プログラムを実行する処理と
をコンピュータに実行させる実行プログラム。 The process of reading the code data created so that the design drawing conforming to UML (Unified Modeling Language) can be displayed, and
An execution program that causes a computer to execute a keyword included in the code data and a process of executing the corresponding operation program.
前記検出したキーワードと対応する動作プログラムを呼び出す処理と
をコンピュータに実行させる請求項1記載の実行プログラム。 The process of detecting the keyword included in the read code data and
The execution program according to claim 1, wherein a computer executes a process of calling the operation program corresponding to the detected keyword.
前記コードデータを読み込む処理を、前記検出した制御文に従って前記コンピュータに実行させる請求項1又は2に記載の実行プログラム。 The computer is made to execute a process of detecting a control statement included in the code data.
The execution program according to claim 1 or 2, wherein the computer is made to execute the process of reading the code data according to the detected control statement.
前記制御文は、前記描画プログラムの制御文と少なくとも関連付けられている請求項3記載の実行プログラム。 The code data is described in a language in a format corresponding to a drawing program for drawing a design drawing in accordance with the UML.
The execution program according to claim 3, wherein the control statement is at least associated with the control statement of the drawing program.
前記実行プログラムは、前記コードデータに含まれるキーワードと対応する動作プログラムを、前記複数の動作プログラムから呼び出し、前記呼び出した動作プログラムをコンピュータに実行させる請求項9記載のコード読込式ロボット。 A plurality of the operation programs corresponding to a plurality of keywords included in the code data are provided.
The code-reading robot according to claim 9, wherein the execution program calls an operation program corresponding to a keyword included in the code data from the plurality of operation programs, and causes a computer to execute the called operation program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020139008A JP2021072097A (en) | 2020-08-19 | 2020-08-19 | Execution program, input support program, and code-reading robot |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020139008A JP2021072097A (en) | 2020-08-19 | 2020-08-19 | Execution program, input support program, and code-reading robot |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019196541A Division JP6755538B1 (en) | 2019-10-29 | 2019-10-29 | Execution program, input support program, and code-reading robot |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021072097A true JP2021072097A (en) | 2021-05-06 |
Family
ID=75713249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020139008A Pending JP2021072097A (en) | 2020-08-19 | 2020-08-19 | Execution program, input support program, and code-reading robot |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021072097A (en) |
-
2020
- 2020-08-19 JP JP2020139008A patent/JP2021072097A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fox et al. | An R companion to applied regression | |
AU2016201115B2 (en) | Transferring a state of an application from a first computing device to a second computing device | |
US10324828B2 (en) | Generating annotated screenshots based on automated tests | |
CN101952821B (en) | Editing a document using a transitory editing surface | |
US11635977B2 (en) | Enhanced target selection for robotic process automation | |
US10592211B2 (en) | Generation of application behaviors | |
US8533666B2 (en) | Interactive design environments to visually model, debug and execute resource oriented programs | |
US11054960B1 (en) | Fuzzy target selection for robotic process automation | |
US7921370B1 (en) | Object-level text-condition indicators | |
US11221833B1 (en) | Automated object detection for user interface generation | |
US8082494B2 (en) | Rendering markup language macro data for display in a graphical user interface | |
US20070120875A1 (en) | Computer aided design interface | |
US10706215B2 (en) | Producing formula representations of mathematical text | |
US11829707B2 (en) | Providing way to store process data object state as snapshots at different points of process | |
US8813002B2 (en) | Circuit board design support program, design support method, and design support apparatus | |
CN112667218A (en) | Processing method, device, equipment and storage medium | |
JP6755538B1 (en) | Execution program, input support program, and code-reading robot | |
JP2021072097A (en) | Execution program, input support program, and code-reading robot | |
EP4086755A1 (en) | Robotic process automation (rpa) comprising automatic document scrolling | |
CN111475156B (en) | Page code generation method and device, electronic equipment and storage medium | |
Kimmel et al. | Excel 2003 VBA Programmer's Reference | |
US20210365280A1 (en) | System & method for automated assistance with virtual content | |
US11886648B2 (en) | Detecting keyboard accessibility issues in web applications | |
JP6785149B2 (en) | Data conversion device, input assist device and its program | |
US20240220068A1 (en) | Digital processing systems and methods for presenting board graphics |