JP2023054412A - 自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器 - Google Patents

自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器 Download PDF

Info

Publication number
JP2023054412A
JP2023054412A JP2021163228A JP2021163228A JP2023054412A JP 2023054412 A JP2023054412 A JP 2023054412A JP 2021163228 A JP2021163228 A JP 2021163228A JP 2021163228 A JP2021163228 A JP 2021163228A JP 2023054412 A JP2023054412 A JP 2023054412A
Authority
JP
Japan
Prior art keywords
unit
data
program
automation
activity
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
Application number
JP2021163228A
Other languages
English (en)
Inventor
一挙 木原
Kazunori Kihara
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keyence Corp
Original Assignee
Keyence Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Keyence Corp filed Critical Keyence Corp
Priority to JP2021163228A priority Critical patent/JP2023054412A/ja
Publication of JP2023054412A publication Critical patent/JP2023054412A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】作成された自動化プログラムの管理を容易化する。【解決手段】自動化対象ソフトに対する一連の操作を記録して実行させる自動化プログラムの作成装置であって、自動化プログラムを構成するサブアクティビティにおいて参照される変数を定義するための変数定義部42と、変数定義部42で定義された変数に基づいて、アクティビティで構成された自動化プログラムを生成するための自動化プログラム生成部25と、自動化プログラム生成部25で作成された自動化プログラムを構成するアクティビティ及び当該アクティビティを構成するサブアクティビティを表示させるための概略アクティビティ表示部43と、概略アクティビティ表示部43で表示されるアクティビティ又はサブアクティビティの概要を表す概略ラベルを、サブアクティビティのいずれかで参照される変数に係る変数情報を取得して、自然言語により自動で生成する概略ラベル生成部44と、を備える。【選択図】図3

Description

本開示は、自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器に関する。
ロボティックプロセスオートメーション(RPA)では、人がコンピュータのデスクトップ環境で行っていた作業をプログラムが実行することにより、人がデスクトップ環境で行っていた作業が自動化される。従来、人が行っていた作業をプログラムに反映する手法として、人の操作を、コンピュータが認識可能な形態で記録する方法が知られている。
RPAの基本的な概念として、通常のプログラミングと比較した場合の、記述すべきコードの量を低減し、プログラミングに不慣れなユーザが自動化プログラムを生成することをサポートすることが挙げられる。
例えば、作業や業務の流れを把握するために、複数のログデータに同一のラベルが付与された場合に、一のログデータとして表示する構成が提案されている(特許文献1参照)。
しかしながら、この技術ではユーザ自身がラベルを付与する必要があった。特にユーザが内容を正しく理解できていない場合には、正確なラベルを付与することができず、ラベルを見ても内容を把握するのが困難という問題があった。
特開2020-123048号公報
本開示の目的の一は、作成された自動化プログラムの管理を容易に行えるようにした自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器を提供することにある。
課題を解決するための手段及び発明の効果
本発明の一形態に係る自動化プログラム作成装置によれば、自動化対象ソフトに対する一連の操作を記録して実行させる自動化プログラムの作成装置であって、前記自動化プログラムを構成する一以上のサブアクティビティのいずれかにおいて参照される変数を定義するための変数定義部と、前記変数定義部で定義された変数に基づいて、一以上のサブアクティビティを含む一以上のアクティビティで構成された自動化プログラムを生成するための自動化プログラム生成部と、前記自動化プログラム生成部で作成された自動化プログラムを構成する一以上のアクティビティ及び当該アクティビティを構成するサブアクティビティを表示させるための概略アクティビティ表示部と、前記概略アクティビティ表示部で表示される前記一以上のアクティビティ又はサブアクティビティの概要を表す概略ラベルを、前記サブアクティビティのいずれかで参照される変数に係る変数情報を取得して、自然言語により自動で生成する概略ラベル生成部とを備えることができる。上記構成により、各アクティビティの概略を表すアクティビティ概要を、ユーザがプログラミング時に定義した変数を利用することである程度自動で、自然言語により表現することができるため、さらに扱い易い環境が実現される。
また、本発明の他の形態に係る自動化プログラム作成方法によれば、自動化対象ソフトに対する一連の操作を記録して実行させる自動化プログラムを作成する自動化プログラム作成方法であって、前記自動化プログラムを構成する一以上のサブアクティビティのいずれかにおいて参照される変数を、変数定義部で定義する工程と、前記変数定義部で定義された変数に基づいて、一以上のサブアクティビティを含む一以上のアクティビティで構成された自動化プログラムを、自動化プログラム生成部で作成する工程と、前記自動化プログラム生成部で作成された自動化プログラムを構成する一以上のアクティビティ及び当該アクティビティを構成するサブアクティビティの概要を表す概略ラベルを、前記サブアクティビティのいずれかで参照される変数に係る変数情報を取得して、概略ラベル生成部で自然言語により自動で生成する工程と、前記概略ラベル生成部で生成された前記概略ラベルを、概略アクティビティ表示部に表示させる工程とを含むことができる。これにより、各アクティビティの概略を表すアクティビティ概要を、ユーザがプログラミング時に定義した変数を利用することである程度自動で、自然言語により表現することができるため、さらに扱い易い環境が実現される。
さらに、本発明の他の形態に係る自動化プログラム作成プログラムによれば、自動化対象ソフトに対する一連の操作を記録して実行させる自動化プログラムを作成する自動化プログラム作成プログラムであって、前記自動化プログラムを構成する一以上のサブアクティビティのいずれかにおいて参照される変数を、変数定義部で定義する機能と、前記変数定義部で定義された変数に基づいて、一以上のサブアクティビティを含む一以上のアクティビティで構成された自動化プログラムを、自動化プログラム生成部で作成する機能と、前記自動化プログラム生成部で作成された自動化プログラムを構成する一以上のアクティビティ及び当該アクティビティを構成するサブアクティビティの概要を表す概略ラベルを、前記サブアクティビティのいずれかで参照される変数に係る変数情報を取得して、概略ラベル生成部で自然言語により自動で生成する機能と、前記概略ラベル生成部で生成された前記概略ラベルを、概略アクティビティ表示部に表示させる機能とをコンピュータに実現させるたことができる。
さらにまた、本発明の他の形態に係るコンピュータで読み取り可能な記録媒体又は記憶した機器は、上記いずれかの形態に係るプログラムを格納する媒体又は該プログラムを記憶した機器である。記録媒体には、CD-ROM、CD-R、CD-RWやフレキシブルディスク、磁気テープ、MO、DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW、Blu-ray(商品名)、UHD BD(商品名)、HD DVD(AOD:商品名)等の磁気ディスク、光ディスク、光磁気ディスク、半導体メモリその他のプログラムを格納可能な媒体が含まれる。またプログラムには、上記記録媒体に格納されて配布されるものの他、インターネット等のネットワーク回線を通じてダウンロードによって配布される形態のものも含まれる。さらに記憶した機器には、上記プログラムがソフトウェアやファームウェア等の形態で実行可能な状態に実装された汎用もしくは専用機器を含む。さらにまたプログラムに含まれる各処理や機能は、コンピュータで実行可能なプログラムソフトウエアにより実行してもよいし、各部の処理を所定のゲートアレイ(FPGA、ASIC)等のハードウエア、又はプログラムソフトウエアとハードウェアの一部の要素を実現する部分的ハードウエアモジュールとが混在する形式で実現してもよい。また本明細書においてコンピュータで読み取り可能な記録媒体は、非一過性で有形の媒体、又は一過性の伝搬信号を含む。
自動化したい一連の作業を示す模式図である。 本発明の一実施形態に係る自動化プログラム作成装置のハードウェア構成を示すブロック図である。 図2のプロセッサ部の機能ブロック図である。 本発明の一実施形態に係る自動化プログラム作成プログラムのソフトウェア構成を示すブロック図である。 自動化プログラム作成プログラムと、表計算ソフトとのやりとりを示す模式図である。 自動化プログラム作成プログラムと、Webブラウザとのやりとりを示す模式図である。 自動化プログラム作成プログラムと、自動化対象ソフトとのやりとりの一例を示す模式図である。 RPAソフトを用いて自動化プログラムを作成する手順を示すフローチャートである。 概略手順作成画面を示す模式図である。 表計算ソフト取込詳細設定を行う手順を示すフローチャートである。 表計算ソフト取得範囲指定画面を示す模式図である。 転記設定の手順を示すフローチャートである。 一般転記詳細設定画面を示す模式図である。 操作レコード画面の一例を示す模式図である。 アクティビティ一覧画面を示す模式図である。 操作レコード画面を設定する画面を示す模式図である。 表データ転記出力詳細設定画面の一例を示す模式図である。 図17で表の左上端のセルを選択した状態を示す模式図である。 列名選択肢が表示された状態を示す模式図である。 表ナビ画面を示す模式図である。 表操作画面を示す模式図である。 図22Aは経費一覧表、図22Bは新たに生成された表の一例を示す模式図である。 結合対象の表を示す模式図である。 図23の表を「客先コード」で結合させた表である。 縦積み対象の表を示す模式図である。 図25の表を表縦積み機能でまとめた表である。 図23の表を表縦積み機能でまとめた表である。 差分を取る対象となる表を示す模式図である。 図28の差分を取った表を示す模式図である。 図28の共通部分を抜き出した表を示す模式図である。 対象Webページにおいて、一の記事のタイトルを手動で選択した状態を示す模式図である。 図31のWebページにおいて、複数の記事のタイトルを自動で選択した状態を示す模式図である。 出力詳細設定画面の一例を示す模式図である。 図33の出力詳細設定画面においてWebスクレイピング抽出プレビュー表示欄で表示されるWebスクレイピング抽出プレビュー表示の例を示す模式図である。 Webスクレイピング抽出プレビュー表示の他の例を示す模式図である。 Web取込詳細設定を行う手順を示すフローチャートの前段である。 図14の操作レコード画面でクリックして選択肢を表示させた状態を示す模式図である。 図37で入力候補リストから選択後の画面を示す模式図である。 図38で「値を取得する(変数名)」を選択した例を示す模式図である。 自動化対象ソフトのメニューに係る操作レコードを行う様子を示す模式図である。 2つのアプリケーションに対し半透明ウインドウを重畳表示させる様子を示す模式図である。 図41の半透明ウインドウとアプリケーションの位置関係を示す模式図である。 表UIを有する転記元アプリケーションの一例を示す模式図である。 概略アクティビティ詳細表示領域を展開した状態の概略アクティビティ表示欄を示す模式図である。 図44の概略アクティビティ詳細表示領域を畳んだ状態の概略アクティビティ表示欄を示す模式図である。 図44の「軽費Excel読み込み」から「変数のセット」のアクティビティを外部に移動した状態を示す模式図である。 図46の概略アクティビティ詳細表示領域を畳んだ状態の概略アクティビティ表示欄を示す模式図である。 エディタ画面を示す模式図である。 エディタ画面でソースコードを更新した場合にアクティビティ表示欄が自動更新される様子を示す模式図である。
以下、本発明の実施の形態を図面に基づいて説明する。ただし、以下に示す実施の形態は、本発明の技術思想を具体化するための自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器を例示するものであって、本発明は自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器を以下のものに特定しない。また、本明細書は特許請求の範囲に示される部材を、実施の形態の部材に特定するものでは決してない。特に実施の形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一もしくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。
[実施形態1]
自動化プログラム作成装置は、一般にRPA(Robotic Process Automation)と呼ばれる、パソコンのデスクトップ環境でユーザが行っていた作業をプログラムで代替して自動化する自動化プログラムを、ユーザが作成する作業を支援する装置である。図1は、本発明の自動化プログラム作成装置を用いて、任意のファイル中のデータ、もしくはアプリケーション中のデータを、任意のファイルのフォーム、もしくはアプリケーションのフォームに出力する転記作業を実行するRPAプログラムを作成する方法を示す概念図である。図1において左に位置する表計算ソフトSS、WebブラウザWB、及び自動化対象ソフトGSは転記作業で転記されるデータを表示する転記元アプリケーションである。図1において右に位置する表計算ソフトSS、WebブラウザWB、自動化対象ソフトGS、及びメールソフトMSは、転記作業で転記されるデータが出力される転記先アプリケーションである。なお、本実施形態において自動化対象ソフトGSは、デスクトップ環境でユーザが操作可能なアプリケーション全般を示す。例えば、本実施形態における転記元アプリケーションとしての自動化対象ソフトGSは、表計算ソフトSS及びWebブラウザWB以外の、ユーザが操作可能なアプリケーションを示す。また、例えば、本実施形態における転記先アプリケーションとしての自動化対象ソフトGSは、表計算ソフトSS、WebブラウザWB、及びメールソフトMS以外の、ユーザが操作可能なアプリケーションを示す。
本実施形態では、転記作業を、転記元アプリケーションからデータを取得し、転記先アプリケーションに出力する作業、と定義する。例えば、表計算ソフトSSのデータファイル中のデータを、同じ表計算ソフトSSの別のデータファイルに転記する転記作業は、図1では、図1中の左に示される、転記元アプリケーションとしての表計算ソフトSSのデータファイルからデータを取得して、当該データ、もしくは当該データに基づくデータを、図1中の右に示される転記先アプリケーションとしての表計算ソフトSSのデータファイルに出力する作業として示される。また、Webブラウザで閲覧しているページ中のデータを所定のソフトのフォームに転記する作業は、図1では、図1中の左に示される転記元アプリケーションとしてのWebブラウザWBからデータを取得して、当該データ、もしくは当該データに基づくデータを、図1中の右に示される転記先アプリケーションとしての自動化対象ソフトGSに出力する作業として示される。
ユーザがこのような転記作業を実行するRPAプログラムを作成するときには、どのデータを変数として扱うのか、どのようにその変数を扱うのか、を考慮する必要がある。例えば、転記元アプリケーションからどのデータをどのような変数として取得するのか、取得したデータをどのように編集して転記先に出力するためのデータに加工するのか、転記先アプリケーションに対してどの変数をどのように出力するのか、といったことを考慮する必要がある。変数の扱い方を考慮しながらプログラムを作成するのは、プログラムに不慣れなユーザにとって困難である。本実施形態においては、図1に示すように、転記元アプリケーションから取得するデータを表として保持することによって、変数の扱い方に係る指定を容易にする。詳細は後述する。
図2は、本実施形態の自動化プログラム作成装置として機能する汎用のコンピュータPCの構成を示す。コンピュータPCは、ディプレイ等の表示部11と、入力部12と、バス13と、通信部14と、プロセッサ部20と、メモリ部15と、ストレージ部16と、を備える。コンピュータPCに自動化プログラム作成プログラムがインストールされることによって、コンピュータPCは自動化プログラム作成装置として機能する。本実施例にでは、汎用のコンピュータPCが自動化プログラム作成装置として機能するが、専用の自動化プログラム作成装置がハードウェアで構成されてもよい。
表示部11は、図1に示される各アプリケーションや、自動化プログラム作成プログラムにより提供される画面情報を表示する。表示部11は、例えば液晶ディスプレイ(LCD)、有機EL等で構成される。表示部11はタッチパネルで構成されてもよく、この場合、タッチパネルは表示部11と入力部12とを兼ねる。入力部12は、キーボード12a、マウス12b、タッチパッド12c等の入力デバイスである。バス13は、各部材間でデータのやりとりを行うためのデータ伝送路を構成する。通信部14は、外部機器との間でデータ通信を行うための部材であり、イーサネット(商品名)やIEEE802.x等の規格化された通信インターフェースやモジュールが利用できる。このように外部機器との接続は、有線や無線で行うことができる。プロセッサ部20は各種演算や処理を行う部材であり、CPUやMPU、SoC、ASICなどで好適に実現できる。メモリ部15はコンピュータプログラムの実行時にロードモジュールが展開され、コンピュータプログラムの実行時に発生する一時的なデータ等を保持する。このようなメモリ部15は、SRAM、SDRAM等の揮発性メモリで構成されたRAMや、EEPROM等の不揮発性メモリで構成されたROMが利用できる。ストレージ部16は、自動化プログラム実行ファイルやデータや設定情報等の各種の情報を保持するための部材である。このストレージ部16は、ハードディスクや半導体メモリ、可搬メディア等で構成される。
また入力部12は、後述するオブジェクト選択受付部38で重畳表示されたオブジェクト選択受付画面上で、入力を受け付けるための部材として機能する。
(プロセッサ部20)
図3は、本実施形態の自動化プログラム生成装置として機能するコンピュータPCのプロセッサ部20の機能を示す機能ブロック図である。プロセッサ部20は自動化プログラム生成部25と自動化プログラム実行部26とを有する。自動化プログラム生成部25は自動化プログラムを生成するための機能ブロックであり、概略手順作成部21と、取得範囲指定部22と、転記指定部23と、操作レコード設定部48と、変数定義部42と、概略アクティビティ表示部43と、概略ラベル生成部44と、概略名入力部45と、ソースコード表示部46と、コード変換部47を有する。自動化プログラム実行部26は、自動化プログラム生成部25により生成された自動化プログラムを実行するための機能ブロックである。
概略手順作成部21は、自動化する転記作業における各アプリ―ケーション間でのデータの受け渡しを示す概略手順を設定するための機能ブロックである。概略手順作成部21は、繰返設定部31を有する。繰返設定部31は、概略手順作成部21により設定された概略手順のうち、繰り返し行われる手順を設定するための機能ブロックである。
取得範囲指定部22は、転記元アプリケーションのデータのうち、取得するデータが存在する範囲を指定するための機能ブロックであり、当該範囲を指定するための画面情報を表示したり、当該画面情報に対するユーザの指定を受け付けたりする。本実施形態において、転記元アプリケーションのデータとは、転記元アプリケーションにより扱われるファイルに含まれるデータと、転記元アプリケーションの機能により表示される画面情報に含まれるデータと、を含む。例えば、転記元アプリケーションが表計算ソフトSSであり、表計算ソフトSSにより表形式で表示されるファイルからデータを取得する場合が、転記元アプリケーションにより扱われるファイルに含まれるデータを取得する場合である。この場合、ファイルにおいて取得するデータが存在する範囲の指定が受け付ける。特に、表計算ソフトSSにより表形式で表示されるファイルからデータを取得する場合には、当該表の行と列とが指定されることにより、取得するデータが存在する範囲が指定される。また、例えば、転記元アプリケーションが自動化対象ソフトGSであり、当該ソフトの機能により表示される文字列をデータとして取得する場合が、転記元アプリケーションの機能により表示される画面情報に含まれるデータを取得する場合である。この場合も、画面情報において取得する文字列が存在する範囲の指定を受け付ける。なお、詳細は後述するが、表計算ソフトSSにおける行と列とによるデータの指定のような、対象のアプリケーションに固有の方法によるデータの指定が困難な場合は、後述する操作レコード設定部48の機能により、データの取得範囲が指定される。
また、取得範囲指定部22は、自動表認識実行部35を有する。自動表認識実行部35は、表計算ソフトSSにより扱われるものの、データの配置が一定ではなくユーザが取得するデータの範囲を指定しにくい形状のファイルから、データを抽出し、ユーザが範囲指定しやすい形状に整形する機能ブロックである。例えば、表として意図された部分とそうでない部分とを含むファイルの場合、罫線で囲まれた部分を表として意図された部分と認識して、表を抽出する。また、例えば、複数列にわたって結合されたセルを単一列のセルと認識して表を抽出する。さらに、例えば、複数のファイルからデータを抽出するとき、各行の抽出元を示すファイル名を新たな列として付加して表を抽出する。このように、既知のアルゴリズムを適宜適用して、ユーザが範囲指定しやすい形状に整形した表を生成する。ユーザは、整形された表に対して行と列とを指定することにより、取得するデータが存在する範囲を指定する。
このように、取得範囲指定部22により取得するデータが存在する範囲が指定された転記元アプリケーションのデータは、表データとしてメモリ部15に保持される。
転記元アプリケーションが表計算ソフトSSである場合は表計算ソフトSS上で表示される列ごとに、転記元アプリケーションに含まれるデータが配置されて表データが生成される。自動表認識実行部により表が認識された場合も、整形された後の表に基づいてデータが配置されて表データが生成される。すなわち、表計算ソフトSSは、表データの生成に使用するのが容易な規則としての行及び列、に従ったデータ配置がされるアプリケーションである。また、転記元アプリケーションがWebブラウザWBである場合、WebブラウザWBによりユーザに視認されるデータはhtmlタグにしたがって配置される。このため、タグごとに転記元アプリケーションに含まれるデータが配置されて表データが生成される。すなわち、WebブラウザWBは、表データの生成に使用するのが容易な規則としてのタグ情報、に従ったデータ配置がされるアプリケーションである。このように、表データの生成に使用するのが容易な規則に従ってデータ配置がなされるアプリケーションが転記元アプリケーションであるときは、当該規則に従って、表データを生成する。なお、本実施例においては、表データの生成に使用するのが容易な規則に従ってデータが配置されるアプリケーションとして、表計算ソフトSSとWebブラウザWBとが挙げられるが、これに限られない。転記元アプリケーションのデータが一定の規則に従って配置され、かつ、当該規則が周知されている場合には、取得範囲指定部22に予め当該転記元アプリケーションのデータから表データを生成する方法が設定されうるため、表データの生成に使用するのが容易な規則に従ってデータ配置がなされる、と言える。この場合は、表計算ソフトSSとWebブラウザWBと同様に、概略手順作成部21により当該転記元アプリケーションの種類が設定されることにより、対応する表データ生成方法が適用され、転記元アプリケーションのデータから表データが生成される。表データにおいては、当該転記元アプリケーションにおいてデータを配置する規則に従ってデータが配置される。なお、生成される表データの列名は、ユーザにより適宜設定されても良い。
また、転記元アプリケーションとしての自動化対象ソフトGSのデータの配置規則に取得範囲指定部22が対応していない場合、例えば自動化対象ソフトGSが、ある企業内でのみ使用されるようなアプリケーションである場合、には、自動化対象ソフトGSにおけるデータの配置規則に従って表データを生成することが困難である。このような場合に、上述したように、操作レコード設定部48の機能によりデータの取得範囲が指定される。操作レコード設定部48の機能によるデータの取得範囲の指定においては、ユーザの操作にしたがってデータの取得範囲と、表データの列名とがユーザの操作にしたがって指定される。より詳細には、ユーザにより指定されるデータに係るオブジェクト階層における位置情報や座標情報と、指定された列名と、が対応付けられる。このように対応付けられることによって、自動化対象ソフトGSにより表示される第一の画面情報に含まれるデータと、自動化対象ソフトGSにより表示される第二の画面情報に含まれ当該データと同じ位置に位置するデータと、が同じ列に配置される表データが生成される。
このようにして、取得範囲指定部22により取得するデータが存在する範囲が指定された転記元アプリケーションのデータは、当該転記元アプリケーションの種類に応じた適切な方法で表データとして取得され、当該表データがメモリ部15に保持される。なお、メモリ部15に保持される表データは、同様にメモリ部15に保持される表データと識別可能なように、名称が付されるが、当該名称がユーザによって付与されてもよい。この場合取得範囲指定部22は、表データに付与される名称を受け付ける。
転記指定部23は、転記先アプリケーションへ転記するデータを指定するための機能ブロックである。転記指定部23は、転記先指定部23a、転記単位指定部23b、表操作部23c、転記データプレビュー部23dとを有する。
転記先指定部23aは、転記先アプリケーションにおけるデータを書き込むフォームを指定するための機能ブロックであり、当該フォームを指定するための画面情報を表示したり、当該画面情報に対するユーザの指定を受け付けたりする。本実施形態において、転記先アプリケーションのフォームは、従来の転記作業においてユーザが転記するデータに基づいて何らかの指定を行っていた対象であり、ユーザによりテキストデータが入力されるテキストボックス、ユーザにより予め定められた選択肢から任意の選択肢が選択されるコンボボックス、及び複数の選択肢のうちいずれかが選択されたことを示すラジオボタン、を含む。
転記単位指定部23bは、取得範囲指定部22により指定された範囲から取得されるデータを転記する単位を指定するための機能ブロックである。すなわち、転記単位指定部23bにより、一回の転記で転記されるデータの範囲が指定される。上述の通り、転記先アプリケーションに転記されるデータは表データとしてメモリ部15に保持されるため、転記単位指定部23bはデータを転記する単位として行数の指定を受け付ける。なお、転記単位指定部23bにより単位が指定される転記先アプリケーションへの転記が、概略手順において繰り返しの対象とされている場合、転記指定部23により指定される単位は、転記の単位として扱われる。
表操作部23cは、表データとしてメモリ部15に保持されるデータを操作して、転記先アプリケーションに書き込むデータを編集するための機能ブロックである。表操作部23cによる表データの操作は、ある列に含まれるデータが所定の条件を満たすか否かに応じて表示する行を決めるフィルタ操作や、複数の表データを、共通する列項目などの条件にしたがって結合する表結合操作などを含む。
転記データプレビュー部23dは、表操作部23cにより操作された表と、当該表において転記単位指定部23bにより指定されたデータを転記する単位を示す表示を行う機能ブロックである。ユーザは転記データプレビュー部23dにより表示される情報を見て、自身が設定した転記単位や表操作の結果を確認する。
操作レコード設定部48は、アプリケーションに対するユーザの操作を記録するための機能ブロックである。操作レコード設定部48は、取得範囲指定部の一部としても機能し、ユーザが転記元アプリケーションのうちデータを取得する範囲を指定する操作を、記録する。また、操作レコード設定部48は、転記先指定部23aの一部としても機能し、ユーザが転記先アプリケーションのうちデータを書き込むフォームを指定する操作を、記録する。なお、操作レコード設定部48が記録するユーザの操作は、転記元アプリケーション、もしくは転記先アプリケーションに対するユーザの操作に限定されず、任意のアプリケーションに対するユーザの操作を記録する。
操作レコード部48は、オブジェクト選択受付部38と、操作選択部39と、要素識別部40と、操作実行部41と、を有する。
オブジェクト選択受付部38は、ユーザによる、自動化対象ソフトGSにより表示されるオブジェクトの選択を受け付ける。より詳細には、自動化対象ソフトGSの表示画面に重畳して、ユーザ操作を受け付けるオブジェクト選択受付画面を表示する。本実施形態の自動化プログラム作成装置として機能するコンピュータPCは、ユーザが表示画面に表示されるカーソルを用いて操作を指示した場合、当該カーソルに対応する位置にある表示画面のうち、最前面に位置する表示画面のアプリケーションが当該操作を受け付ける。このため、オブジェクト選択受付部38は、オブジェクト選択受付画面を、ディスプレイ部の表示画面で自動化対象ソフトGSより前面に配置することにより、自動化対象ソフトGSに優先してマウスやキーボード等によるユーザ操作を受け付ける。なお、オブジェクト選択受付部38がオブジェクト選択受付画面を表示することによって受け付けるユーザ操作は、ユーザがオブジェクトを選択することのみを意図してなされた操作に限定されず、オブジェクトに対して何らかの処理を指示することを意図してなされた操作を含む。前者の操作は、例えば、「いずれかのオブジェクトを選択してください」という表示と共にユーザに促される操作である。後者の操作は、例えば、「作業で自動化対象ソフトGSに行う操作を実行してください」という表示と共に、ユーザに促される操作である。
本実施形態のオブジェクト選択受付画面は、表示画面の全面を覆う半透明ウインドウTWである。半透明ウインドウTWは、当該半透明ウインドウTWの背面側にある自動化対象ソフトをユーザが視認できる程度に透明であることが好ましい(後述する図14等)。これにより、オブジェクト選択受付部38は、ユーザが、自動化対象ソフトGSを視認しながら自動化対象ソフトGSを対象とすることを意図して操作できる状態で、オブジェクト選択受付部38は、自動化対象ソフトGSを対象とすることが意図された操作を受け付けることができる。また、半透明ウインドウTWは、自動化対象ソフトGSに重ねて表示されることが視認可能な程度に透明でないことが好ましい。オブジェクト選択受付画面は、ユーザが操作の対象として意図する自動化対象ソフトGSに代わって操作を受け付けるため、ユーザにとって、操作したにもかかわらず自動化対象ソフトGSが操作に対応して変化しない状態となる。したがって、これによれば、自動化対象ソフトGSに代わって、オブジェクト選択受付画面が操作を受け付ける現在の状態をユーザに視覚的に把握させることが可能となる。さらに、オブジェクト選択受付画面は、表示画面の前面を覆うように表示されることが好ましい。これによれば、自動化対象ソフトGSが複数ある場合であっても、表示画面にこれら複数の自動化対象ソフトGSが表示される限り、オブジェクト選択受付画面が操作を受け付ける範囲を変更することなくユーザ操作を受け付けることができる。このため、操作を行う自動化対象ソフトGSに応じて、オブジェクト選択受付画面の位置を変更する、オブジェクト選択受付画面のサイズを変更する、といった工程が不要である。
なお、選択受付画面を重畳表示させる際、自動化対象ソフトを表示画面上でのウィンドウサイズの全画面表示を解除し、一回り小さく表示させるようにしてもよい。この構成により、自動化対象ソフトを全画面表示でなく小さく表示させることで、自動化対象ソフト以外のオブジェクトを視認し易くなる利点が得られる。
操作選択部39は、オブジェクト選択受付部38により受け付けたユーザ操作により選択されるオブジェクトへの操作内容を指定可能とするための機能ブロックである。操作レコード設定部48がユーザ操作を正確に記録するためには、当該ユーザ操作の対象のオブジェクトと、当該操作の内容とを記録する必要がある。本実施形態では、ユーザ操作をオブジェクト選択受付部38が表示するオブジェクト選択受付画面で受け付け、また、選択されたオブジェクトへの操作内容を操作選択部39で選択する。これにより、自動化対象ソフトGSがユーザ操作を受け付ける前に、操作レコード設定部48が操作対象のオブジェクトと当該オブジェクトへの操作内容とを記録することができる。したがって、オブジェクトがユーザ操作に応じて動的に変化する、例えば、オブジェクトが操作によって消えるといった場合でも、表示画面の状態の変化によらず、動作を記録することが可能となる。また操作選択部39で指定されたオブジェクトへの操作内容を表示させる出力リストウィンドウ161を表示画面上に表示させてもよい(後述する図37等)。これにより、自動化プログラムの作成時において、ユーザが操作した内容を出力リストウィンドウ161で確認することができ、作成状況を視覚的に把握できる利点が得られる。
操作選択部39は、指定されたオブジェクトへの操作として複数の選択肢を一覧表示させた操作内容選択肢を表示させることもできる。これにより、ユーザが指定したオブジェクトに応じて、当該オブジェクトに対して操作可能な候補を自動で表示させ、ユーザに選択させることで、入力内容を限定してある程度固定化でき、操作レコード設定部48による記録の精度が向上する。また、表示する選択内容選択肢として、操作内容をプログラムにおいてどのように再現するかを選択させても良い。例えば、あるフォームに対して文字列を入力する操作は、ユーザがキーボードを操作して入力する方法と、クリップボードの内容を張り付ける方法と、で実現される。操作選択肢39が表示する選択肢を用いて、ユーザに自動化プログラムにおいてどちらの方法で文字列を入力するかを選択させることができるため、確実な自動化が見込まれる。文字列を入力する操作以外にも、例えばオブジェクトをクリックする操作では当該オブジェクトを特定する方法として、座標情報を用いて特定する方法と、当該オブジェクトを含むオブジェクト群の階層関係に基づいて特定する方法とがあるため、適切な方法をユーザが選択できることが好ましい。
操作レコード設定部48が取得範囲指定部22の機能の一部として機能する場合、操作選択部39で指定可能なオブジェクトへの操作として、メモリ部15の特定のメモリ領域への保持を選択することもできる。この場合、ユーザ操作対象の自動化対象ソフトGSは転記元アプリケーションである。操作選択部39によりメモリ部へのデータ保持が選択される場合、メモリ部15で表データとして保持されるのか否かが設定可能であることが好ましい。また、メモリ部15で表データとして保持される場合に、オブジェクトから取得されるデータが属する表データや、表データのうちオブジェクトから取得されるデータが配置される列を指定できることが好ましい。
操作レコード設定部48が転記指定部23の機能の一部として機能する場合、操作選択部39で指定可能なオブジェクトへの操作としてメモリ部15に保持される表形式データの転記を選択することもできる。この場合、選択されたオブジェクトに対して、表データのいずれの列項目のデータを転記するかが選択できること、すなわち、表データの列項目を自動化対象ソフトGSのオブジェクトに含まれる入力フォームに割り当てることができることが好ましい。このように、表形式のデータを自動化対象ソフトのオブジェクトの各入力フォームに割り当てることで、自動化プログラムの作成を容易に行える利点が得られる。
要素識別部40は、選択されたオブジェクトの属性を識別するための機能ブロックである。要素識別部40は、オブジェクト選択受付部38がオブジェクトの選択を受け付けると、オブジェクトと、オブジェクトに係る情報とが紐づけられるライブラリを利用して、選択されたオブジェクトがどのようなオブジェクトであるかの情報を取得する。本実施例におけるライブラリは、例えばMicrosoft社の UI Automation(商品又はサービス名)である。
要素識別部40が取得する情報について選択されたオブジェクトがコンボボックスである場合を例に説明する。選択されたオブジェクトがコンボボックスである場合、選択されたオブジェクトは選択肢を有し、ユーザはその選択肢からオブジェクトに入力する情報を選択することができる。要素識別部40は選択されたオブジェクトがコンボボックスであると識別し、当該オブジェクトに係る情報として、オブジェクトに入力可能な選択肢の情報を取得する。要素識別部40により取得された情報は、操作選択部39が表示する操作内容の選択肢として表示されることが好ましい。選択されたオブジェクトがコンボボックスである場合、当該オブジェクト自体が、当該オブジェクトに入力される情報の選択肢を有するが、当該選択肢が操作選択部39に表示される選択肢に反映されることで、自動化対象ソフトGSに対して実行可能な操作が指定されるため、ユーザ操作の記録の精度が向上する。
なお、要素識別部40がオブジェクトに係る情報を取得する際には、ユーザ操作が自動化対象ソフトGSに反映されることが好ましい。オブジェクトには、ユーザ操作を受け付けることで当該オブジェクトに係る情報がより正確に取得されるようになるオブジェクトがあり、操作を受け付ける前と操作を受け付けた後との情報を取得することが好ましいからである。ユーザ操作が自動化対象ソフトGSに反映されるようにする方法としては、一時的にオブジェクト選択受付部を非表示とする方法や、操作レコード設定部48が操作内容を自動化対象ソフトGSに実行する方法などがある。
操作実行部41は、操作選択部39で指定したオブジェクトへの操作を、自動化対象ソフトGSのオブジェクトに実行する。操作実行部41による操作は、オブジェクトが選択され、かつ、当該オブジェクトに対する操作内容が選択された後に実行される。これに加えて、上述したように、要素識別部40がオブジェクトに係る情報を取得する過程で、操作実行部41が選択されたオブジェクトに対する操作を実行しても良い。
また操作レコード設定部48は、操作レコードを一時的に停止する指示を受け付け可能としてもよい。これにより、必要に応じて操作レコード機能を一時的に停止することが可能となり、例えば記録したくない操作については記録対象外とするなど、自動化対象ソフトへの操作の柔軟性を高めることができる。さらに操作レコードを一時的に停止する指示に応じて、オブジェクト選択受付画面の重畳表示を解除し、入力部であるマウス又はキーボードによる入力を受け付け可能としてもよい。
また自動化プログラム生成部25は、指定されたGUI要素に対して、操作選択部39に基づいて選択された操作を実行する自動化プログラムを生成する。また自動化プログラム生成部25は、変数定義部42で定義された変数に基づいて、一以上のサブアクティビティを含む一以上のアクティビティで構成された自動化プログラムを生成する。自動化プログラム実行部26は、自動化プログラム生成部25で生成され、ストレージ部16に保持された自動化プログラム実行ファイルを読み込んで、自動化プログラムファイル実行ファイルを実行して、記録された一連の操作を再現するための部材である。
変数定義部42は、自動化プログラムを構成する一以上のサブアクティビティのいずれかにおいて参照される変数を定義するため部材である。
概略アクティビティ表示部43は、自動化プログラム生成部25で作成された自動化プログラムを構成する一以上のアクティビティ及び当該アクティビティを構成するサブアクティビティを表示させるための部材である。また概略アクティビティ表示部43は、自動化プログラムを構成する複数のサブアクティビティをグループ化して、アクティビティとして表示させることもできる。これにより、一連の操作を自動的にグループ化して概略アクティビティ表示部43で表示させることが可能となり、ユーザに対し複雑な操作であってもひとまとまりの見易さを提供することが可能となる。
概略ラベル生成部44は、概略アクティビティ表示部43で表示される一以上のアクティビティ又はサブアクティビティの概要を表す概略ラベル224を、サブアクティビティのいずれかで参照される変数に係る変数情報を取得して、自然言語により自動で生成するための部材である。また概略ラベル生成部44は、アクティビティに含まれないサブアクティビティで参照される変数、又はアクティビティで参照される変数に係る変数情報を、概略アクティビティ表示部43に表示させることもできる。
このような構成により、各アクティビティの概略を表すアクティビティ概要を、ユーザがプログラミング時に定義した変数を利用することである程度自動で、自然言語により表現することができるため、さらに扱い易い環境が実現される。
また概略アクティビティ表示部43は、概略アクティビティの概要を示す概略アクティビティヘッドライン部222と、概略アクティビティヘッドライン部222で表示される各アクティビティ毎に、概要を表示させた概略アクティビティ詳細表示領域225とを設けることができる。これにより、ユーザは各アクティビティの概略と要旨と詳細をそれぞれ容易に確認することが可能となる。
さらに概略アクティビティ表示部43は、概略アクティビティヘッドライン部222毎に、概略アクティビティ詳細表示領域225を表示させる詳細表示モードと、概略アクティビティ詳細表示領域225を非表示とさせる概略表示モードとを切替可能な表示切替部を設けることもできる。これにより、各アクティビティ毎に展開表示と折り畳み表示を切り替えることが可能となる。
さらに概略アクティビティ表示部43は、概略アクティビティヘッドライン部222又は概略アクティビティ詳細表示領域225に表示させる概略ラベル224に含まれる変数について、変数毎に異なる色を割り当てて表示させることもできる。これにより、変数毎に色分けされて、自動化プログラムの概要説明についての視認性を高めた環境が提供される。
一方、概略ラベル生成部44は、自然言語により概略ラベル224を所定のルールに従って生成することもできる。ここで所定のルールは、内部で引数として使われるものについては入力する;内部で代入されるものについては取得する;引数が再代入によって外部の値を参照しない場合には入力と判断しないようにする;の少なくともいずれかを含んでもよい。
概略名入力部45は、概略アクティビティヘッドライン部222毎に、当該概略アクティビティヘッドライン部222で表示される、アクティビティの内容を示す概略名223を文字列等によりユーザに入力させるための部材である。これにより、各アクティビティに対し、ユーザが判り易い任意の名称を付与することが可能となり、自動作成される自然言語に加えて、更に自動化プログラムの概要を判り易くすることができる。
ソースコード表示部46は、自動化プログラム生成部25で作成された自動化プログラムのソースコードを表示させるための部材である。コード変換部47は、ソースコード表示部46に表示されたソースコードで記述された内容を、アクティビティ表示欄における概略アクティビティとして表示させる変換を行うための部材である。
図4から図7は、本実施形態の自動化プログラム作成装置として機能するコンピュータPCが有するソフトウェアとデータとの関連性を示す図である。図4から図7に示されるRPAソフトRSは、自動化プログラム生成プログラムである。RPAソフトRSがインストールされることにより、プロセッサ部20は自動化プログラム生成部25と自動化プログラム実行部26として機能するため、RPAソフトRSに包含される機能ブロックとして図4から図7に記載される。
図4に示すように、RPAソフトRSは、表計算ソフトSS、WebブラウザWB、及びその他の自動化対象ソフトGSなどの既存のアプリケーションからのデータの取得、これら既存のアプリケーションへのデータの書き込みを行う。既存のアプリケーションに対するデータ取得とデータ書き込みとは、自動化プログラムが生成されるときに自動化プログラム生成部25が有する各機能ブロックの機能により行われ、かつ、生成された自動化プログラムが実行されるときに自動化プログラム実行部26により行われる。また、自動化プログラム生成部25は、転記元アプリケーションから取得するデータに基づいて表データを生成してメモリ部15に保持し、メモリ部15に保持される表データを参照して転記先アプリケーションへのデータの書き込みを設定することにより、自動化プログラムを生成する。自動化プログラム実行部26は、生成された自動化プログラムに基づいて転記作業を実行する。
RPAソフトRSで自動化プログラムの作成支援を行う際には、図4に示すように、xlsx等のデータファイルを読み込んだMicrosoft Excel(商品又はサービス名)等の表計算ソフトSS等の外部のプログラムと、RPAソフトRSはAPIを介してデータ等をやりとりする。またWebブラウザWB(データ形式はhtmlファイル)とRPAソフトRSは、selenium等を用いてプロセス間通信をし、データを取得する、書き込み、操作する。
また自動化プログラム生成部25は、表データ形式で自動化プログラムの作成を支援する。自動化プログラム生成部25で作成された自動化プログラムは、RPAプログラムファイルとしてストレージ部16などに保存される。さらに自動化プログラム実行部26は、保存されたRPAプログラムファイルを読み出して、自動化プログラムを実行する。これにより、予め規定された一連の操作が自動的に実行される。
図5はRPAソフトRSと表計算ソフトSSとの関連性を示す。RPAソフトRSは、表計算ソフトSSとの間でCOM通信を行って、表計算ソフトSSを操作する。RPAソフトRSは、表計算ソフトSSの操作を行うことによって、ファイルに含まれるデータの取得として表計算ソフトSSにより表示される表のセルの値を取得したり、データの書き込みとして表計算ソフトSSにより表示される表のセルにデータを書き込んだりする。また、本実施例において、表計算ソフトSSはExcelであり、表計算ソフトSSにより表示されるファイルは、拡張子.xlsxのファイルである。この場合において、RPAソフトRSは、Excelファイル操作ライブラリのプロセス内で使用してファイルにデータを書き込んでも良い。
図6はRPAソフトRSとWebブラウザWBとの関連性を示す。RPAソフトRSは、Webブラウザからデータを取得するときに、ユーザにWebブラウザを操作させる。このとき、WebブラウザWBに予め追加された拡張機能を介して、ユーザによりマウス等のポインティングデバイスでクリックされた要素のパスを取得する。RPAソフトRSは、取得したパスに基づく検索式としてのXpathを使用して、Xpathに該当するパスの要素を抽出する。RPAソフトRSが作成された自動化プログラムを実行するときは、WebブラウザWBの拡張機能を介してWebブラウザWB上で表示されるフォームのパスを特定し、特定されたパスの要素に対し、データを転記する。
なお、RPAソフトRSは、WebブラウザWBの拡張機能により取得したパスからXpathを生成するときに、当該パスに対応する要素と同じ階層にある要素を抽出可能なXpathを生成して、ユーザがWebブラウザWBを操作することによって指定した要素と同じ階層にある要素を複数抽出することができる。このとき、ユーザが同階層にあると判断する複数の要素を指定させる場合、当該複数の要素のパスに共通する部分からXpathを生成することができるため、同階層にある要素を抽出するのに適したXpathを生成する精度が向上する。
図7はRPAソフトRSと、操作レコード設定部48の機能により操作を自動化する自動化対象ソフトGSとの関連性を示す。RPAソフトRSと自動化対象ソフトGSとは、UIAutomationを介してやりとりを行う。UIAutomationとは、マイクロソフト社の提供するライブラリである。自動化プログラムの作成時においては、ユーザが自動化対象ソフトGSの操作に対して行う操作を、自動化プログラム生成部25が受け付ける。より具体的には、自動化プログラムは、自動化対象ソフトGSより前面に自動化対象ソフトGSの表示情報を視認可能な程度に透過する半透明ウインドウTWを表示する。本実施形態におけるコンピュータPCは、最前面に表示される画面情報に対応するアプリケーションが操作を受け付けるため、半透明ウインドウTWの後面にあるアプリケーションに対してユーザが行ったつもりの操作は、半透明ウインドウTWに対する操作として受け付けられる。半透明ウインドウTWの機能によってユーザ操作を受け付ける自動化プログラム生成部25は、受け付けたユーザ操作で指定されたマウス位置をUIAutomationに渡す。マウス位置を渡した結果、UIAutomationは当該マウス位置にあるユーザインターフェースのUI要素に係る情報を受け取る。ここでいうUI要素に係る情報とは、階層におけるUIの位置や、UIの属性(例えばデータ入力可能か、コンボボックスであるか)を含む。このUI要素に係る情報に基づいて、自動化プログラム生成部25は、当該UI要素に対して実施する操作の内容を示す操作内容の選択肢を表示する。自動化プログラム生成部25は、当該UI要素に対してユーザが選択した操作内容を受け付け、当該操作内容とUI要素とを対応付けて記録するとともに、操作内容と当該UI要素を指定する情報とをUIAutomationに返し、自動化対象ソフトGSに対する操作を実行させる。
作成された自動化プログラムを実行する際には、UI要素を指定する情報と、当該UI要素に対応付けられた操作内容と、をUIAutomationに送り、当該UIに対する所定の操作を実行する。
なお、RPAソフトRSで自動化対象ソフトGSに対し、自動化プログラムの作成支援や実行を行うに際しては、上述したUIAutomation等を用いる方法に限られない。例えば、自動化対象ソフトGSやRPAソフトRSを実行される環境であるOSが備えるAPIを用いてもよい。一例として、Windows(商品又はサービス名)OSが有するWin32API(商品又はサービス名)を用いて、OSから各アプリケーションへ送られる操作イベントを監視して自動化プログラムを生成しても良い。また、Win32APIを介して自動化プログラムに示される操作内容を自動化対象ソフトGSに対して実施して、自動化プログラムを実行しても良い。
本実施形態のRPAソフトRSは、自動プログラムを作成するモードとして複数のモードを備える。複数のモードの一つとしてのナビゲーションモードでは、ユーザが作成しようとする自動化プログラムに合わせて、ユーザに対して自動化プログラムを作成するのに必要な手順をガイダンスしながら、自動化プログラムの作成を行うガイド付きモードである。図8は、ナビゲーションモードのRPAソフトRSで転記作業を実行する自動化プログラムを作成するときのフローチャートを示す。
まず図8のステップS901で、概略手順作成部21が、ユーザが概略手順を作成するための画面情報として概略手順作成画面を表示する。
(概略手順作成画面110)
図9は概略手順作成画面110の一例を示す。ユーザは概略手順作成画面110を操作して概略手順を生成する。ここでユーザにより生成される概略手順は、転記作業に対応する手順であり、ユーザは転記元アプリケーションと転記先アプリケーションとの指定を行う。したがって、「表計算ソフトSSからデータを取り出す」という選択肢が表示され、ユーザが当該選択肢を選択した場合も、転記元アプリケーションとして表計算ソフトSSが選択されたとみなすことができる。このように、本実施例の自動化プログラム作成装置は、転記作業において使用するアプリケーションという、比較的指定しやすい項目を選択肢として表示することによって、ユーザに概略手順の作成を促す。また、ユーザがアプリケーションを選択することによって作成される概略手順に従って、転記元アプリケーションからデータを取得するために必要な情報や、転記先にデータを書き込むために必要な情報を指定するための画面情報を表示する。これにより、ユーザが自動化プログラムを作成することの難易度が低減する。
図9を用いて概略手順作成画面110の詳細を説明する。概略シナリオをまず構築してから詳細シナリオを構築することで、ユーザの業務フローをシナリオに起こしやすくなる。画面中央の項目が選択できる大まかな操作(アクティビティ)である。画面中央の操作候補一覧112で列挙された大まかな操作のうち、選択したい項目をクリックで選択状態にしてから「追加」ボタン113を押すことで、画面右側の操作選択一覧114に追加することが可能である。さらにまた「次へ」ボタン117を押すと、右側の操作選択一覧114にアクティビティが追加されている場合は、追加された項目順に各大まかな操作の詳細設定を行うための画面に遷移される。一方、操作選択一覧114に何もない場合は遷移しない。また「破棄して戻る」ボタン118を押すと、作成ナビの設定を中止し、終了する。
なお、概略手順作成画面110では、操作候補一覧112中の概略手順アイコン111が操作選択一覧114に追加されることで、転記元アプリケーションの選択と、転記先アプリケーションの選択とがなされる。図9の例において、「何からデータを取り出しますか?」というフォームの「表計算ソフト」という概略手順アイコン111が操作選択一覧114に追加されると、転記元アプリケーションとして表計算ソフトSSが選択される。「Web」というアイコンはWebブラウザWBに対応し、「任意のアプリ」というアイコンは自動化対象ソフトGSに対応する。また、図9の例において、「何にデータを書き出しますか?」というフォームの「表計算ソフト」という概略手順アイコン111が操作選択一覧114に追加されると、転記先アプリケーションとして表計算ソフトSSが選択される。
また、概略手順作成画面110は、繰り返し設定アイコン119が含まれる。ユーザは、繰り返し設定アイコン119と組み合わせて概略手順を作成することで、繰り返し実行する手順を含む概略手順を作成する。繰返設定部31は、繰り返し設定アイコン119を含む概略手順に基づいて繰り返しに係る画面情報を表示する。図9においては、概略手順として並んだ概略手順アイコン111を選択した状態で、ユーザが「指定範囲を繰り返しにする」ボタン115を選択することで、選択された概略手順の上に繰り返し設定アイコン119が挿入される。選択されていた概略手順アイコン111は、繰り返し設定アイコン119より一段下がった表示になり、繰り返し設定がなされた概略手順であることを示す。
なお実施形態1の例では、転記元アプリケーションとして表計算ソフトSSが選択され、転記先アプリケーションとして表計算ソフトSS、WebブラウザWBとが選択された状態である。また、転記先アプリケーションとしての自動化対象ソフトGS、表計算ソフトSS、WebブラウザWBにデータを書き込む動作の一部が繰り返し行われるように設定される。
図8に示すように、ステップS901で概略手順作成画面110を表示した後、ステップS902において、概略手順の作成が終了したか否かを判定し、未だの場合はステップS902を繰り返し、終了した場合はステップS903に進む。
ステップS903で、自動化プログラム作成部は、ステップS901で転記元アプリケーションが選択されたか否かを判定する。自動化プログラム作成部が、転記元アプリケーションが選択されたと判定した場合、ステップS904で転記元アプリケーションとして選択されたアプリケーションに応じて取得範囲の設定を開始する。自動化プログラム作成部がステップS904で取得範囲の設定が完了した後、ステップS905に進む。また、ステップS903で、自動化プログラム作成部が、転記元アプリケーションが選択されていないと判定した場合、ステップS905に進む。
(表計算ソフトSSに対する取込範囲設定)
図10は、転記元アプリケーションとして表計算ソフトSSが選択された場合に、取得範囲指定部22が実行する取得範囲の指定の詳細を示すフローチャートである。ステップS1101で、取得範囲指定部22は、自動表認識を行う表自動取得モードか否かを判定する。取得範囲指定部22が表自動取得モードであると判定する場合、ステップS1102として、取得範囲指定部22は自動表認識実行部の機能により、表の自動認識を行う。表の自動認識を行い、整形された表を生成してステップS1103に進む。ステップS1101において取得範囲指定部22が表自動取得モードでない、と判断した場合はステップS1103に進む。ステップS1103で取得範囲指定部22は、自動表認識実行部により整形された表、もしくは表計算ソフトSSにより表形式で表示される表で、取得するデータが存在する範囲を指定する。ステップS1103で取得範囲が指定された後、取得範囲指定部22は、ステップS1104で取得するデータから生成される表データの名称を指定する。ステップS1104における取得範囲指定部22は、ユーザから表データの名称を受け付けても良いし、既にメモリ部15に保持される他の表データと識別可能な名称を指定しても良い。ステップS1105で、取得範囲指定部22は、ステップS1103で指定された取得範囲の最上行を列項目とする表データを生成し、当該表データに対して、ステップS1104で指定された名称を付与してメモリ部15に保持させる。
図11は、表自動取得モードでない場合に取得範囲指定部22が表示する表計算ソフト取得範囲指定画面130である。この図は、上述した図10におけるステップS1103やS1104において、ユーザ操作を受け付ける画面である。図11では、ステップS1103で実行する表の範囲の指定を受け付けるために、「ファイル名」「シート名」「セル」というラベルが付与されたフォームが表示される。また、図11では、ステップS1104で実行する名称の指定を受け付けるために、「取り出した表の名前」というラベルが付与されたフォームが表示される。図11の例では、「経費一覧表」という名称が指定されている。さらに図11では、ステップs1105を実行するためのトリガボタン138が設けられる。なお、ステップS1104において指定される表データの名称は、RPAソフトRSにおいて当該表データをメモリ部15から呼び出すための変数名である。
図8に示すように、自動化プログラム作成部は、取得範囲の指定が完了した後、ステップS905で、ステップS901において転記先アプリケーションが選択されたか否かを判定する。自動化プログラム作成部が、転記先アプリケーションが選択されたと判定した場合、ステップS906で転記設定を実行する。自動化プログラム作成部は、ステップS906で転記設定が完了した後、ステップS907に進む。ステップS905で、自動化プログラム作成部が、転記先アプリケーションが選択されていないと判定した場合、自動化プログラムはステップ907に進む。
図12は、転記先アプリケーションとして任意のアプリケーションが選択された場合に、転記指定部23が実行する転記に係る設定の詳細を示すフローチャートである。ステップS1301で、メモリ部15から呼び出す表データを選択させる。ステップS1302では、表操作部23cの機能としてステップS1301で選択された表データに対する操作を受け付け、操作に応じて表データを編集する。ステップS1303では、転記単位指定部23bの機能としてステップS1301で呼び出された表データ、もしくは、ステップS1302で編集された表データに対して、転記先アプリケーションに転記する単位の指定を行う。ステップS1303で転記する単位の指定を受け付けた後、ステップS1304で転記先指定部23aの機能として、転記先アプリケーションにおいてデータが転記されるフォームを指定する。
ステップS1304において、転記先指定部23aは、転記先アプリケーションに応じて、ユーザから転記先のフォームの指定を受け付けるための画面情報を表示する。転記先アプリケーションが表計算ソフトSSである場合、転記先のファイル、シート、セルなどの指定を受け付ける。転記先アプリケーションがWebブラウザWBである場合、WebブラウザWBを起動し、WebブラウザWBに対するユーザ操作をWebブラウザWBが有する拡張機能を介して取得し、WebブラウザWB上でユーザによって選択されたフォームを特定する。転記先アプリケーションが自動化対象ソフトGSである場合、操作レコード部の機能により、フォームを特定する。
図13は、ステップS906の転記設定の一態様として表示される一般転記詳細設定画面150を示している。この図に示す一般転記詳細設定画面150は転記指定部23の一態様を示している。一般転記詳細設定画面150では、データ転記の詳細を設定する。図13の例では、一般転記詳細設定画面150は、画面左にアクティビティ表示欄121が表示され、画面中央から右に転記詳細指定欄152が表示される。この例では、アクティビティ表示欄121で選択されたアクティビティ、ここでは「操作を記録して入出力を行う」に関しての詳細設定画面が、一般転記詳細設定画面150で表示されている。
図3の取得範囲指定部22で設定された範囲のデータを表形式の取得元データとして転記するデータ転記の詳細は、ユーザにより転記指定部23で指定される。
図13の転記詳細指定欄152には、転記指定部23の一形態として転記データ指定欄153と実施操作決定欄156とが設けられている。
(転記データ指定欄153)
転記データ指定欄153は、図12のフローチャートに示されるステップS1301で実行する表データ選択、ステップS1302で実行する表操作、ステップS1303で実行する転記単位指定のそれぞれに対応する欄が設けられる。ユーザは、転記データ指定欄153を操作することにより、転記先アプリケーションに転記するデータの詳細を設定することができる。
転記データ指定欄153は、表データ参照有無指定欄155と、表データ指定欄153bを有する。ユーザは、表データ参照有無指定欄155を操作することで、メモリ部15に保持される表データを参照するか否かを指定することができる。図13の例では、表データを参照することが選択されている。また、ユーザは、表データ指定欄153bを操作することで、転記するデータ、もしくは転記するデータを生成するためのデータを含む表データを指定する。すなわち、転記データ指定欄は上述した図12のフローチャートのステップS1301に対応する。図13の例では、「経費一覧」という名称の表データが選択されることが示される。
転記データ指定欄153は、また転記単位プレビュー部24の一形態として、転記単位プレビュー欄154を有する。転記単位プレビュー欄154は、ユーザが転記データ指定欄153を操作することによって設定される転記データの詳細の設定に基づいて、転記されるデータの態様を表示する。また、転記単位プレビュー欄154は、上述した図12のフローチャートのステップS1302における表データの編集をユーザに行わせるための部材でもある。ユーザが転記単位プレビュー欄154を操作すると、図20の表ナビ画面380が表示され、ユーザによる表操作が受け付けられる。
転記データ指定欄153は、転記単位指定部23bの一形態として、転記単位指定欄153cを有する。ユーザは、転記単位指定欄153cを操作することで、転記先アプリケーションへの一回のデータの転記において転記する対象を指定する。すなわち、転記単位指定欄153cは、図12のフローチャートのステップS1303に対応する。表データ指定欄153bにより指定された表データからの転記単位として「一行ずつ」「表全体」「グルーピング」が選択可能である。「一行ずつ」が選択された場合、一回の転記で、表データ選択欄153bで選択された変数名の表データが一行ずつ転記される。また「表全体」が選択された場合は、一回の転記で、表データの全体が転記される。さらに「グルーピング」を選択した場合は、表データの列の値が同じ行のデータが入力される。このため「グルーピング」では、表データ選択欄153bで選択された変数名の表データが有する列の項目を選択可能としている。図13の例では、「グルーピング」という選択肢と合わせて「日付」という列項目が示される。この場合、一回の転記で、表データ選択欄153bで選択された変数名の表データのうち、「日付」という名称の列が同じ値のデータが転記される。
(実施操作決定欄156)
さらに、図13の転記詳細指定欄152において転記単位指定欄153の下部には、実施操作決定欄156が設けられている。実施操作決定欄156は、上述した図12のフローチャートのステップS1304におけるデータ転記先としてのフォームの指定をユーザに行わせるための部材である。
実施操作決定欄156は、転記先アプリケーションとして自動化対象ソフトGSが指定される場合に表示される。ユーザは、当該自動化対象ソフトGSにおけるフォームを指定するために実施操作決定欄156から操作レコード設定部48の機能により操作レコードを開始する。図13に示される実施操作決定欄156は、自動化プログラムの実行において繰り返さない操作を決定するための部材であるが、繰り返す操作を決定するための実施操作決定欄が別途設けられても良い。この場合、繰り返さない操作を決定するための実施操作決定欄と、繰り返す操作を決定するための実施操作決定欄とが、同じ画面に表示されることが好ましい。ここで言う「同じ画面に表示される」とは、スクロール操作で上記二つの実施操作決定欄が表示可能な配置を含む。これによれば、ユーザは、同じ画面から繰り返す操作と繰り返さない操作との両方を設定することができるため、繰り返す操作と繰り返さない操作とが混在する作業に係る自動化プログラムを容易に生成することができる。
(操作レコード画面160)
図14は、操作レコード設定部48に含まれるオブジェクト選択受付部38の機能により表示されるオブジェクト選択受付画面を含む表示画面の態様である。
図14に示される操作レコード画面160には、自動化対象ソフトGSとしての経費精算アプリにより表示される「経費精算」フォームGS1が表示される。操作レコード設定部48は、自動化対象ソフトGSにより生成されるオブジェクト選択受付画面より前面に半透明ウィンドウTWを表示する。半透明ウィンドウTWは、当該半透明ウィンドウTWに重なりかつ当該半透明ウィンドウTWより後ろに位置する画面情報が視認可能な程度に透明であればよいため、透明なウィンドウであっても良い。半透明なウィンドウを表示することによって、ユーザが自動化対象ソフトGSにより生成される画面情報に対して何らかの画面情報が重ねて表示されていることが認識できるため、ユーザが視認可能な程度に透明でないことが好ましい。なお、図14では、半透明ウィンドウTWを図上で明らかにするために、図14の枠より内側に半透明ウィンドウTWの枠があるが、実際には、全画面に表示される。
ユーザは、操作レコード画面160に対して操作を実行する。より詳細には、操作レコード設定部48は、ユーザが半透明ウィンドウTW越しにフォームGS1に含まれる所定のオブジェクトを対象とする操作を、半透明ウィンドウTWで受け付け、ユーザにより選択されたフォームGS1中のオブジェクトを特定する。これにより取得範囲指定部22は、転記元アプリケーションとしての自動化対象ソフトGSのデータの取得範囲を指定することができる。また、これにより転記先設定部は、転記先アプリケーションとしての自動化対象ソフトGSにおいてデータが書き込まれるフォームを特定する。図14の例では、自動化対象ソフトの「経費精算」フォームGS1のうち、「申請者」という説明が付与されたフォームが、選択されたオブジェクトである。操作を判り易くするため、マウスカーソルの位置を○で表している。
図37は、オブジェクト選択受付部38によりオブジェクトの選択が受け付けられた後に、操作選択部39の機能により、当該オブジェクトに対して選択可能な操作を示す操作内容選択肢171が表示された状態を示す。
操作内容選択肢171は、オブジェクトに実行する操作内容の選択肢を有する。図37では、「マウス操作」171aと、「入力」171bとが該当する。マウス操作は、より詳細の操作内容として例えば「クリック」と「ダブルクリック」と、を有しても良い。これら「クリック」や「ダブルクリック」は、「マウス操作」171aからサブメニューで表示させることができる。
また、操作内容選択肢171は、自動化プログラムを実行するときの操作の実現方法を示す選択肢を有する。図37では、「入力」171bの選択肢として、ユーザのキーボード操作を反映する「テキスト入力」172a、172cと、クリップボードの内容を反映する「ペースト入力」172b、172dとが該当する。これによれば、ユーザの意図が自動化プログラムに反映されやすい。
また、操作内容選択肢171は、選択されたオブジェクトに対して入力する情報を、メモリ部15に保持される表データから選択するための選択肢が表示される。図37では、「表入力(列名):申請者」172eと「表入力(列名)金額」172fとが該当する。この選択肢は、図37は、自動化対象ソフトGSが転記先アプリケーションとして扱われる場合に表示されることが好ましい。これによれば、メモリ部15に保持される表データを利用して容易に、転記先の割り当てが設定できる。
ここで、図37の自動化対象ソフトGSは、図38に示すように「申請者」というフォームから「金額」フォームまでの各フォームに情報が入力された状態で、申請ボタン187がクリックされることで申請IDフォーム186に文字列を表示するアプリケーションである。このため、例えば申請IDフォーム186に表示される文字列を取得する場合に、操作実行部41が、選択されたオブジェクトに対して選択された操作を逐一実行することで、ユーザは、申請IDフォーム186に表示される文字列を選択しやすい。
図39は、申請IDフォーム186に表示列を取得するときの画面である。本実施形態においては、操作選択部39により選択された操作が、操作実行部41により自動化対象ソフトGSに反映されるため、申請IDフォーム186に取得したい文字列が表示されることをユーザが把握しやすい。ユーザは、申請IDフォーム186を選択することにより表示される操作内容選択肢191から、「値を取得する」191aという選択肢を選択し、申請IDフォーム186中の文字列をメモリ部15に保持させる。このとき、取得するデータをどのような形態でメモリ部15に保持させるかを設定できることが好ましい。図39では、どのような変数名でメモリ部15に保持させるかの設定を受け付ける表示がある。なお、変数名以外に、データが含まれる表データや、表データにおいて取得したデータが配置される位置などが指定できることが好ましい。ここで操作内容選択肢191の選択肢の内、「値を取得する(変数名: )」という選択肢を選択すると、変数名を指定することができる。この選択肢は、変数定義部42の一態様を構成する。変数名は、任意の文字列をユーザが記入する。
データが書き込まれるフォームが特定された後、操作レコード設定部48は、転記指定部23によりメモリ部15から呼び出された表データに基づいて、当該フォームに書き込まれるデータをユーザに選択させる画面情報を表示する。表データが表操作部23cにより編集される場合は、編集された表データに基づいて画面情報を表示しても良い。また、転記単位指定部23bにより指定される単位に基づいて画面情報を表示しても良い。
ユーザは、操作レコード設定部48により表示される、書き込むデータの選択肢から、当該フォームに書き込むべきデータを選択する。操作レコード設定部48はユーザの選択を受け付け、特定されたフォームと当該フォームに書き込むデータとを対応付ける。これにより転記先指定部23aにより、転記先アプリケーションのうちデータを書き込むフォームと、当該フォームに書き込むデータとを指定する。
ここで、本実施形態において、転記先アプリケーションとして自動化対象ソフトにデータを書き込む動作は繰り返しする処理として設定されている。このため、自動化プログラム生成部によって生成される自動化プログラムは、転記単位指定部で指定した単位のデータを、転記先指定部23aにより指定されるフォームに書き込む処理を繰り返し実行するプログラムとして出力される。より詳細には、自動化対象ソフトGSにより表示されるフォームに指定した単位のデータを転記する処理が実行された後、自動化対象ソフトGSにより同様に表示される同様のフォームに指定した単位で次のデータにが移動するデータを書き込む自動化プログラムが生成される。
なお、操作レコード設定部48は、ユーザに選択されたデータを特定されたフォームに書き込む。これにより、操作レコード画面を介して操作を選択した直後に自動化対象ソフトで実行させることで、ユーザは、選択したデータがエラーなく特定されたフォームに書きこまれるか否かを確認することができ、デバッグ作業も容易となる
図8に示すように自動化プログラム作成部は、ステップS907に進み、詳細が設定されていない操作レコード手順があるか否かを判定する。ここで有無の判定をする操作レコード手順は、ステップS904における転記元アプリケーションの取得範囲の設定や、ステップS906における転記先アプリケーションへの転記設定に含まれる操作レコードの手順ではなく、転記作業において、データを転記する手順の前後に実施されるユーザ操作に対応する手順として設定されるものである。ステップS907において、未設定の操作レコード手順があると判定した場合ステップS908に進み操作レコード設定を実行する。ステップS908においては、操作レコード設定部48の機能により半透明ウィンドウTWが表示され、当該半透明ウィンドウTWに対して実施されるユーザ操作が記録される。ステップS908におけるユーザ操作の記録が完了すると、ステップS909に進み、ステップS901、S904、S906、S908の少なくともいずれかのステップで設定された内容に基づいて自動化プログラムの内容を示す画面情報を生成する。ステップS907において、未設定の操作レコード手順がないと判断した場合、ステップS908に進み、ステップS901、S904、S906の少なくともいずれかのステップで設定された内容に基づいて自動化プログラムの内容を示す画面情報を生成する。
(アクティビティ一覧画面220)
図15は、ステップS909で表示される、作成される自動化プログラムの内容を示すアクティビティ一覧画面220を示す。アクティビティ一覧画面220では、作成された手順がステップS901で設定した概略手順単位でまとめられて表示される。アクティビティ一覧画面220は、概略アクティビティ表示部43の一態様である概略アクティビティ表示欄221を画面左側に設けている。概略アクティビティ表示欄221では、作成されたアクティビティが概略アクティビティ単位でまとめられて表示される。図15のアクティビティ一覧画面220では、変数がオレンジ色で表示されている。本実施形態では、表データ自体が生成された自動化プログラムにおいても変数として扱われるため、表データ自体に付与された名前が変数名として扱われる。また表データに含まれる各列項目も、転記時に参照されるため変数名として扱われる。
図8に示すようにステップS909でアクティビティ一覧画面220を表示した後、自動化プログラム作成部はステップS910で自動化プログラムを作成する。当該自動化プログラムは、ステップS901、S904、S906、S908の少なくともいずれかで設定された内容に基づいて生成される。
[実施形態3]
(操作レコード画面280)
図16は、転記先指定部23aの機能によりユーザが指定する転記先アプリケーションのフォームが表形式で表示される表UIであるときの操作レコード画面280を示す。なお、この図では、説明のために、半透明ウィンドウは非表示としている。
図16の操作レコード画面280において、ユーザがマウスで表UIを選択したことを検出すると図17の操作レコード画面300に示すように、表UIへの表データの転記の詳細を設定するための表データ転記詳細設定ウィンドウ301が表示される。表データ転記詳細設定ウィンドウ301は、表入力位置指定欄302と、表選択欄303を設けている。まず、出力先の表UIを特定するために、表入力位置指定欄302において、表の左上端のセルをユーザに選択させる。ユーザの選択を検出して、表UIの左上セルを特定した後、表UIの左上を選択する操作を表UIに反映させる。図18では、自動化対象ソフトGSである日報管理用アプリが、表UIのうち選択されたセルを青枠で表示している。また表入力位置指定欄302において「選択済み」と表示され、表の左上セルの選択が終了していることが示される。
次に表の選択を行う。図18の表データ転記詳細設定ウィンドウ301において、表選択欄303には、表移動方向指定欄304と、行挿入指定欄305、行削除指定欄306、「表の移動を試す」ボタン307が設けられている。「表の移動を試す」ボタン307を押下すると、表UIが正しく選択できているかを確認することができる。この確認では、RPAソフトがユーザ操作を「右:→」のような対応するキーボードで受け付け、キーボードを操作したときにそのように選択箇所が表UI上を移動するかどうかを確認することができる。
RPAソフトに表示される表は、自動化対象ソフトの表UI、つまり転記先アプリケーションとしての日報管理用アプリの表UIに対応する。一例として、表UIの左から二番目の列にデータを転記したい場合に、この列に転記するデータを選択する状態を図19の操作レコード画面320に示す。この操作レコード画面320では、自動化対象ソフトGSの表UIの各列と、RPAソフトでのRPAプログラム作成のために取り込まれた表データの各列とをどのように対応付け、その際の設定画面の態様を確認することができる。図において、横長の棒状で示すL1の部分が、自動化対象ソフトGSの表UIがRPAソフトRSの設定画面に反映されている。またその下にある列名選択肢321では、取込済表データの列項目の名称が選択肢として表示されている。列名選択肢321は、RPAソフトRSの実行時に自動化対象ソフトGSに転記する表データに対応する列名を選択する。例えば、L1の左から2番目の列のプルダウンで表示される列名選択肢321の内、「品目」を選んで設定すると、RPAソフトRSを実行する際には、取込済表データの「品目」が自動化対象ソフトGSの左から2番目の列に転記されることになる。このように設定することで、自動化対象ソフトGSで表示される表UIの特定の列に書き込まれる表データ中のデータが指定される。
操作レコード画面320で設定された内容は、相当するユーザ操作に置き換えられて記録される。例えば、ここで、操作レコード画面280に表示される表UIは、F2キーを押すことで選択したセルが入力状態になり、Tabキーを押すことで選択されるセルが1つ右の列に移動し、ShiftキーとTabキーとを合わせて押すことにより選択されるセルが1つ左の列に移動し、↓キーを押すと選択される列が1つ下の行に移動するような表UIであるとする。操作レコード画面320で最も左の列から右に向かって順に「単価」「品目」「納期」の項目を対応付けた場合、以下のような操作に置き換えられて記録される。
[操作]
表の左上をクリックする。
行ごとに以下を繰り返す。
F2キー押下(※入力状態にする)
ペースト:「単価」
Tabキーx1押下
F2キー押下(※入力状態にする)
ペースト:「品目」
Tabキーx1押下
F2キー押下(※入力状態にする)
ペースト:「納期」
Shift+Tabキーx3押下
↓キー押下
(表操作)
次に表操作部23cにより実行可能な表データの編集の詳細を説明する。メモリ部15に保持する表データを編集する機能を「表ナビ」と呼ぶ。例えば図13の一般転記詳細設定画面150において、表操作を呼び出して表データの編集を行える。
また図20の表ナビ画面380から、希望する表操作に該当する種類を選択して実行することもできる。操作実行後の表データはメモリ部15に保持される。このとき、メモリ部に保持される表データは、ユーザが指定した名称が付されてメモリ部15に保持されても良いし、既にメモリ部15に保持される表データと識別可能な名称が付されて、メモリ部15に保持されても良い。
また、メモリ部15に複数の表データが保持されており、かつ、図12に示すフローにおけるステップS1301の表データ選択で複数の表データが選択される場合に、当該複数の表データを結合したり、当該複数の表データの差分を抽出したりすることもできる。図21は図20の別例である。例えば図21の表操作画面390において、表1として図22Aのような経費一覧表が生成されている場合に、「表を条件で絞り込む」を選択すると、アクティビティとして「表1を条件で絞り込む」が生成される。
ここで例えば経費が1000円以上の場合のみ申請をする、というシナリオを作成する場合には、「経費一覧表を金額>1000で絞り込む」という設定を行えば、図22Aの経費一覧表が絞り込まれて、図22Bのような表が生成される。このようにして新たに生成された表も、変数として扱うことができる。例えば、図22Bの表に申請対象経費一覧表という名前を付ければ、申請対象経費一覧表という表をそのほかのアクティビティでも使用することができる。
またこの機能を使うことで、分岐処理指定を代替することも可能である。例えば、通常の分岐処理では、if文のような分岐処理(今回の場合は「金額>1000」)の処理を、ユーザが分岐すべき個所をコード中から特定し、適切な位置に分岐処理を挿入するといった操作をする必要があり、手間であった。これに対し、本機能を使えば、一つの表として扱うことができるため、作成ナビの繰り返し処理と合わせて使用することで、分岐処理を自分で挿入せずとも分岐相当の操作が可能になる。
(表操作機能)
また複数の表に対して、結合や縦積み、差分抽出、共通部分抽出、表絞込、列追加、列削除といった様々な操作を行うことができる。このような表操作機能は、図3の表操作部23cで実行される。ここで表操作機能の一例として、まず複数の表を結合する表結合機能について、図23~図24に基づいて説明する。
(表結合機能)
表結合機能では、複数の表に対して、特定の列の名前で表を結合することができる。例えば図23に示すように、2つの表がある場合に、特定の列の名前、ここでは「客先コード」で合体させて図24の表を生成することができる。
このように、表データが結合されることにより、別の表データとして保持される表データ中のデータを、対応付けられたデータとして扱う転記作業に係る自動化プログラムを生成することができる。図23の例では、「客先名」を有する表データと「メールアドレス」を有する表データが別の表データとして保持される。表結合機能により、同じ画面に存在する複数のフォームに対して、「客先名」と当該「客先名」に関連する「メールアドレス」とを転記する転記作業に係る自動化プログラムが生成される。
(表縦積み機能)
また表縦積み機能では、同じ項目を規定した複数の表を列方向に連結することができる。例えば図25に示すように、共通の項目(ここでは「客先名」、「客先コード」、「状態」の3つ)を有する2つの表に対し、表縦積み機能を実行して図26のように一つの表にまとめることができる。なお、上述した図23のように、共通しない項目が存在する表に対して表縦積み機能を実行すると、図27のように、存在しない項目については空のセルとなる。
このように、表データが縦積みされることにより、別の表データとして保持されていた同種のデータを同じ表データに保持されるデータとして扱う転記作業に係る自動化プログラムを生成することができる。図25の例では、2つの表は列項目が全て共通であるため、各行のデータは同種のデータである。表縦積み機能により、図26に示すように単一の表データとして扱われるため、当該表データに対して転記指定部23による転記指定を行うことで、複数の表データに対して同様の転記を行う転記作業に係る自動化プログラムが生成される。
(差分抽出機能)
さらに、複数の表の差分をとる差分抽出機能について説明する。差分抽出機能では、複数の表に対して、一の表の特定列のうち、他の表の特定列に存在しない行を残す。例えば、図28に示すような2つの表があり、左の表1に項目名として客先名と客先コードと状態、右の表2に客先コードとメールアドレスを記録している例を考える。これらの表に対して、メールアドレスが存在しない客先のみを抜き出すには、差分抽出機能を使用する。ここでは、表1の特定列である客先コードの内、表2の客先コードが存在しない行を表1から抽出する。この結果、図29に示すように、客先コードが表2に存在せず、メールアドレスが存在していない仮名銀行をリストアップした表が作成される。
このように、複数の表データから差分を抽出されることにより、ある表データのデータを別の表データを条件に絞り込みした結果のデータを転記する転記作業に係る自動化プログラムを生成することができる。図28の例では、左側の表を右側の表を条件に絞り込む。これにより、左側の表データのうち、右側の表データに対応する「客先コード」が無いデータを転記する自動化プログラムを生成することができる。
(共通部分抽出機能)
さらに表の共通部分を抜き出す共通部分抽出機能について説明する。共通部分抽出機能では、複数の表に対して、一の表の特定列の内、他の表の特定列に存在する行のみを残す。例えば、上述した図28の表に対して、メールアドレスが存在する客先のみを抽出する例を考える。ここでは、表1の特定列である客先コードの内、表2の客先コードが存在する行を表1から抽出する。この結果、図30に示すように、客先コードが表2に存在し、メールアドレスが存在してする仮名マニュファクチャリングをリストアップした表が作成される。
このように、複数の表データから共通部分を抽出することにより、差分抽出機能と同様に、ある表データのデータを別の表データを条件に絞り込みした結果のデータを転記する転記作業に係る自動化プログラムを生成することができる。図28の例では、左側の表を右側の表を条件に絞り込む。これにより、左側の表データのうち、右側の表データに対応する「客先コード」があるデータを転記する自動化プログラムを生成することができる。
なお上述した図23や図25、図28の例では、2つの表を横方向、即ち行方向に並べた例を示しているが、これに限らず、縦方向や斜め方向等、任意の位置に配置された複数の表に対して、表結合機能や表縦積み機能、差分抽出機能等の各表操作機能を実行できることは言うまでもない。
(表絞込機能)
表の絞り込みを行う表絞込機能では、特定の列でフィルタを行う。複数列の条件を入れることもできる。
(列追加機能)
列の追加を行う列追加機能では、表計算ソフトの列を、数式を含めて追加することができる。
(列削除機能)
列削除機能は、不要な列を削除する機能である。
なお上述した表データ中の列に対する各種の操作は、行に対する操作とすることもでき、逆に行に対する操作を、列に対する操作に入れ替えることも可能である。
[実施形態4:Webスクレイピング]
(Web取込詳細設定)
取得範囲指定部22は、WebブラウザWBから取得する要素データが指定された後、Webデータ取得設定画面540を表示する。Webデータ取得設定画面では、ユーザが指定した要素データと同階層の要素データを取得するか否かを選択させる。また、同階層の要素データを取得する場合に当該同階層の要素データを同じ列に配置するかもしくは同じ行に配列するかの設定を受け付ける。これらの設定により、WebブラウザWBから取得するデータが表データとしてメモリ部15に保持される。
図32は、図33で、ユーザにより指定された要素データと同階層の要素データを取得することが選択された場合の画面である。同階層の要素データを取得することが選択された場合、取得範囲指定部22は、ユーザが指定した要素データのパスに基づいて、同階層の要素データを抽出可能な検索式を作成する。図32では、当該検索式により抽出されるパスに該当する要素データを強調表示される。
図36は、転記元アプリケーションとしてWebブラウザWBが指定されたときに、図8のステップS904において取得範囲設定部により取得範囲を設定するときに、取得範囲設定部が実行するフローチャートである。なお、本フローチャートはWebブラウザWBにデータを取得する対象のページが表示されている状態から、取得範囲設定部が実行するフローチャートを示す。WebブラウザWBを起動することと、データを取得する対象のページを表示することとは、別途操作レコード設定部48により設定されても良い。
取得範囲設定部は、ステップS5701として、WebブラウザWBに表示される要素データの指定を受け付ける。取得範囲設定部は、ステップS5702で、WebブラウザWBの拡張機能を介して、WebブラウザWB上でユーザが指定した要素データのパスを取得する。取得範囲設定部は、ステップS5703で、取得したパスに基づいて、当該パスに該当する要素データを強調表示させる。図31は、ステップS5703により、ユーザが指定した要素データが強調表示された状態を示す。ユーザは、自身が指定した要素データを識別することができる。
取得範囲設定部は、ステップS5704で、ステップS5701でユーザが指定した要素データと同階層の要素データを取得するか否か判定する。ユーザが指定した要素データと同階層の要素データを取得する場合、ステップS5705として、ステップS5702で取得したパスに基づいて、ステップS5701でユーザが指定した要素データと同階層の要素データを取得するためのXpathを用いた検索式を生成する。本実施例において、ステップS5705における検索式の生成は、ステップS5702で取得するパスに基づくが、当該パスとして複数パスに基づいて検索式が生成されても良い。例えば、ユーザがステップS5701で指定した要素データと同階層の要素データであると認識する要素データの指定を受け付け、複数の要素データのパスに基づいて検索式が生成されても良い。この場合、ユーザの意図に対して同階層の要素データが抽出できる検索式が生成される確度が向上する。図32では、ステップS5705で生成された検索式により抽出される要素データが強調表示された状態を示す。ステップS5704でユーザが指定した要素データと同階層の要素データを取得しないと判定した場合、ステップS5708に進み、WebブラウザWBからのデータ取得範囲の設定を終了する。
ステップS5705が完了すると取得範囲設定部はステップS5706で、同階層の要素データの配置方向の選択を受け付ける。ステップS5706で選択される要素データの配置方向は、WebブラウザWBから取得するデータを、メモリ部15で表データとして保持するときに、同階層の要素データが同じ列に配置されるようにするか、同じ行に配置されるようにするか、に反映される。図34は、ステップS5706において、同階層の要素データが同じ列に配置されるように設定された場合にメモリ部15で保持される表データの態様を示す。ステップS5706での選択が完了すると、取得範囲設定部は、ステップS5707として取得するデータの追加を受け付ける。ステップS5707で指定されるデータは、表データとしてメモリ部15に保持されるときに、ステップS5706で選択された配置にしたがって配置される。例えば、ステップS5706で、同階層の要素データが同じ列に配置されるように選択された場合、ステップS5707で指定されるデータは新たな列に配置されるデータとして取得される。図35は、ステップS5706において同階層の要素データが同じ列に配置されるように設定され、かつ、ステップS5707で、2種類のデータが追加された場合に、メモリ部15で保持される表データの態様を示す。なお、各ステップでの設定に応じて、図34、図35に示される表データの態様が、取得するデータのプレビューとして表示されてもよい。
ステップS5707でのデータの追加が完了した後、ステップS5708に進みWebブラウザWBからのデータ取得範囲の設定を終了する。
以上のように、各実施形態に係る本願発明によれば、表データとして取得できるデータ群を、表データとして取得できるようにユーザにガイドすることで、自動化プログラムの作成を容易に行うことが可能である。特に自動化対象ソフトがExcelのような表計算ソフトであれば、自動認識や表の範囲設定を行うことができる。また自動化対象ソフトがWebブラウザであれば、Webスクレイピングの際の繰り返し方向の設定を容易に行える。さらに自動化対象ソフトが他の汎用的なプログラムであれば、操作内容として「データ取得」を選んだ際の、変数名設定が可能な画面を表示することで、表データに名称を付与して参照できるようにし、自動化プログラムの作成を容易に行える利点が得られる。
以下、操作レコード機能に係る詳細機能について説明する。
(自動化対象ソフトのメニュー操作の記録)
ここで自動化対象ソフトのメニューに係る操作レコードを行う例を、図40に基づいて説明する。まず、経費精算アプリを操作して「申請ID」を取得する手順を操作レコード画面740で記録する。ここでは図40の操作レコード画面740において、左側に示す経費精算アプリのメニュー欄にある「編集」メニュー188を、半透明ウインドウTW上からクリックする。クリックされたタイミングで、一旦「編集」メニュー188の全階層を開き、「編集」メニュー188の下位項目である「コピー」を要素識別部40で取得する。図40の例では、要素識別部40が選択肢のある「編集」メニュー188内のオブジェクトを選択しているため、入力候補リスト741に「メニュー」カテゴリ742が表示される。また「メニュー」カテゴリ742の下位には、経費精算アプリと同様の階層関係となる選択項目、ここでは「編集」の「コピー(C)」744又は「貼り付け(P)」745が操作内容選択肢743として一覧表示される。
以上の例では、一の自動化対象ソフトを起動して状態で操作レコード機能を実行する例を説明したが、本発明はこの構成に限らず、複数のプログラムを自動化対象ソフトとして、操作レコード機能を実行することもできる。一例として、2つのアプリケーションGSa、GSbを実行する場合を図41、図42に示す。これらの図に示すように、複数のアプリケーションGSa、GSbが起動している場合でも、表示画面の全体を半透明ウィンドウ750で覆うことができる。この半透明ウィンドウ750の上から自動化対象ソフト上のオブジェクトの位置をクリックすると、当該クリックを受け付けるのは自動化対象ソフトでなく、半透明ウィンドウ750側となる。この仕様のため、オブジェクト等のオブジェクトを選択するための操作、例えばクリックは、即座には自動化対象ソフトに反映されない。
操作レコードの対象として選択した、自動化対象ソフトのメニューの項目の中には、クリックすると表示が消えて正しくデータが取れないものがある。これに対し本実施形態に係る自動化プログラム作成プログラムでは、自動化対象ソフトでクリックを受け付けるのでなく、まず自動化プログラム作成プログラム側でクリックを受け付けるため、データを取得するタイミングを適切にコントロールすることが可能となる。特にクリックすることによって態様が変化する、あるいは情報が取れなくなる(例えば「閉じるボタン」を押すと画面が消えてしまう)ようなオブジェクトに対する操作内容の設定において有用となる。
ここで操作レコードで設定可能な操作内容の例を説明する。例えば、クリックする位置の座標を指定したクリック、座標を指定しない通常のクリック、フォーカスを合わせる、キー入力、表入力等が共通で設定可能な操作項目として挙げられる。またテキストポックスに対する操作としては、テキスト入力、クリップポード貼り付け、キーポード入力等が挙げられる。さらにコンポボックスに対しては、いずれかの要素の選択が挙げられる。さらにまたチェックポックスに対しては、チェックONやチェックOFF等が挙げられる。一方メニューに関しては、階層取得→クリック、階層取得→チェックON(チェック可能なもの)、階層取得→チェックOFF(チェック可能なもの)等が挙げられる。さらにリポン(オフィス系ソフト等で多く見られる。)に関しては、XPath対応や階層取得→クリック等が挙げられる。さらにまたスクロールに関しては、スクロールダウンやスクロールアップ等が挙げられる。
(低レベルレコードモード)
操作レコード設定部48は、低レベルレコードを実行することができる。本実施形態における低レベルレコードとは、ユーザが操作するマウスの移動や、マウスボタンのアップ及びダウン、キーボードで押されたキーを記録するレコードである。このモードにおいては、ユーザが実行した操作をそのまま記録するため、自動化対象ソフトGSへの反映を阻害するオブジェクト選択受付画面の表示や、操作内容選択肢の表示は不要である。なおマウスボタンのダウンとはユーザの指でボタンを押した状態であり、マウスボタンのアップが指を離してマウスボタンが元の位置に戻った状態を指す。
(表UI取込機能)
転記元アプリケーションとしての自動化対象ソフトGSの表UIから、情報を二次元表のデータとして取り込む表UI取込機能を備えることもできる。このような表UI取込機能を、図43に基づいて説明する。ここでは、取り込み元すなわち転記元アプリケーションである経費精算アプリの表UIは、図43のようなUIとする。ここでは、ユーザに対し以下の設定を行わせる。
1.図43の経費精算アプリの表UIの、表の左上のセルをクリックさせる。
2.表UIの、どの列のどの値を取得するかの設定を行う。ここでは、列項目である「発生日」、「手段」、「金額」の列値を取得する。
3.終了条件を指定させる。ここでは、「空の行に到達するまで」、又は「最大行数[10]行」のいずれかを選択させる。
このような設定を行った結果として、自動化プログラム作成プログラムの内部的な処理として以下のような操作を生成する。なお転記元アプリケーションのコントロールによって取得方法が異なるので、下記は一例である。
表の左上をクリックする。
空の行に到達するか、10行コピーするまで以下を繰り返す。
新規行追加。
セルをコピーして、新規行の「発生日」列に保存する。
Tabキーx2
セルをコピーして、新規行の「手段」列に保存する。
Tabキーx1
セルをコピーして、新規行の「金額」に保存する。
Shift+Tabキーx3
↓キー
(その他の変形例)
本実施形態においてオブジェクト選択受付画面は半透明ウィンドウであったが、オブジェクト選択受付画面は、半透明ウィンドウに限らず、オブジェクト選択受付画面が介在されていることをユーザに告知できれば足りる。例えばディスプレイ部の画面上に「オブジェクト選択受付中」等のメッセージを表示させたり、オブジェクト選択受付画面であることを示すアイコンを重畳表示させたり、マウスカーソルの形状を変化させたり、画面を点滅させたり、音を鳴らしたり、あるいはバイブレータ機能を有するタブレット等の場合はバイブレータを継続的、断続的にONさせるといった、ユーザが視覚的、聴覚的、触覚的にオブジェクト選択受付機能が動作中であることを認識できる手段を適宜利用できる。またオブジェクト選択受付機能が動作中であることをユーザに認識できれば足りる。また、ユーザが視認しやすいように、ディスプレイ部の表示画面の前面にオブジェクト選択受付画面に表示されるが、上記のように、ユーザがオブジェクト選択受付機能が動作中であることを認識できれば良いので、表示画面の一部のみに表示させてもよい。例えばオブジェクト選択受付機能のウィジェットを表示画面の隅部に配置してもよい。ユーザが操作レコード機能で記録したい自動化対象ソフトへの操作や入力フォームの表示を妨げない程度に、自動化対象ソフトのオブジェクトの視認性が維持されていれば足りる。すなわち自動化対象ソフトの全体が常に視認できる状態でなくてもよく、入力フォームなど、操作に必要な表示が確保されていることがオブジェクト選択受付画面の条件となる。
図15のアクティビティ一覧画面220では、各種データの取り込み詳細設定や、転記を行う操作の設定が完了した状態を示している。この図の「操作を記録して入出力を行う」との部分が概略アクティビティヘッドライン部222であり、フローに相当する概略アクティビティを表示している。また概略アクティビティヘッドライン部222の下には、概略アクティビティ詳細表示領域225が設けられている。概略アクティビティ詳細表示領域225には、「アプリ起動」、「表の繰り返し」、「アプリ終了」が表示されており、「操作を記録して入出力を行う」との概略アクティビティを構成する具体的な操作すなわちアクティビティが列挙されている。各種設定が完了した時の概略アクティビティの単位は、図9で作成した概略手順に対応する。ここで、概略アクティビティヘッドライン部222の内、「操作を記録して入出力を行う」との表示は概略名223として、図3の概略名入力部45でユーザが手動で入力する一方、その右にある「経費一覧表を入力する」との概略ラベル224は図3の概略ラベル生成部44により自動で生成される。
以上のように本実施形態に係る自動化プログラム作成プログラムによれば、作成した自動化プログラムの各操作を、概略アクティビティ単位にまとめて表示させることができる。またアクティビティ一覧画面220に概略アクティビティ単位で表示する際には、操作で扱われる変数中から適切な変数を選択して、これに自然言語の概要を付与し、ユーザが概要を把握できるようにしている。すなわち、ユーザは作成した自動化プログラムの概要を、自分で一から作成する必要がなく、ある程度自動で作成することができ、もって自動化プログラムの作成作業の省力化が図られる。
従来のRPAでは、自動化プログラムを規定するシナリオの構築が進むに従って、シナリオの長さが長くなり一覧性に欠けるという問題点があった。それに対して、自動化プログラムを構成する各操作をブロック化やグループ化を行うことで一覧性を改善しようとする試みがなされている。
しかしながら従来のRPAでは、ユーザがシナリオを操作、編集、確認する際の負担を低減できるようにフローをグループ化やブロック化するような機能が実装されてきてはいるものの、未だにユーザの負担が大きい状態であった。
これに対し本実施形態に係る自動化プログラム作成プログラムでは、作成した自動化プログラムの一部をグループ化表示したときに、操作で扱われる変数中から適切な変数を選択して、自然言語の概要を付与し、ユーザが概要を把握できるようにしている。
まず作成した自動化プログラムを、概略ラベル生成部44に入れて、自動的に概略アクティビティ内外の変数の読み書きを解析する。そして、概略アクティビティ内部で使用されており、かつ外部でも使用されているような変数の一覧を取得する。さらに、その各々の変数が入力に使われているか、あるいはデータ取得の結果を格納しているかを判別し、表示に反映する。この表示は、自然言語表示として概略アクティビティ表示部43に表示する。
また概略アクティビティは図44や図45に示すように、展開して詳細を表示させたり、畳で表示をコンパクトにできるようにして、ユーザの視認性を向上している。さらに内外のデータフローが、概略アクティビティ表示部43により可視化されているため、自動化プログラムの内部で行われている操作を判り易く示すことができる。
さらにまた概略アクティビティ内部に入っている操作が編集、追加、削除等された場合には、概略ラベル生成部44で自動的に内部のデータフローを再解析し、概略アクティビティ表示部45における表示内容を更新することもできる。
一方で概略ラベル生成部44及び概略アクティビティ表示部45によるデータフロー解析表示とは別に、概略名入力部45を介してユーザが任意の名称を付与することもできる。
ここで、2つの概略アクティビティを作成してアクティビティ一覧画面に表示させた例を、図44に示す。ここでは概略アクティビティとして、「軽費Excel読み込み」と、「経費精算」の2つが、概略アクティビティ表示欄831にそれぞれ表示されている例を示している。また各概略アクティビティヘッドライン部222の下部には、概略アクティビティ詳細表示領域225が表示される。
(展開ボタン839)
概略アクティビティ表示欄831に一覧表示された各概略アクティビティヘッドライン部222の左側には、表示切替部の一形態を構成する展開ボタン839が設けられている。図44の例では展開ボタン839は▽や△で表示されており、展開ボタン839を押す毎に概略アクティビティ詳細表示領域225の展開表示と折り畳み表示を切り替えることが可能となる。例えば図44は概略アクティビティ詳細表示領域225を展開した状態を示しており、展開ボタン839は▽で表示されている。この状態で展開ボタン839を押すと図45のようになり、展開ボタン839が△に変化すると共に、各概略アクティビティの概略アクティビティ詳細表示領域225a、225bが折り畳まれ、概略アクティビティヘッドライン部222のみが表示された状態となる。このように展開ボタン839のアイコンを△と▽に変化させることで、詳細な展開表示かシンプルな折り畳み表示を判別できるようにしている。また折り畳み表示であっても、自動化プログラムの外部でも使用されている変数が表示されるため、概要表示が煩雑化せず、ユーザがアクティビティの内容を容易に把握できる。また、入力や取得の関係も可視化されるため、折り畳み表示であっても、何をするための操作なのかが判り易い利点が得られる。
また図44、図45の概略アクティビティヘッドライン部222の左側には概略名223が、右側には概略ラベル224が、それぞれ設けられている。概略名223は、ユーザが自由に名称を設定可能なテキストボックスであり、この例では青色の領域(図44においてクロスハッチングで示す)で示されている。また概略ラベル224は、概略ラベル生成部44で自動生成される文字領域であり、橙色の領域(図44において斜線で示す)で表示されている。また概略ラベル224が異なる色で表示されている項目に関しては、変数を表している。このように変数の型によって表示色を異ならせている。また変数毎に表示色を異ならせることで、複数の変数を視覚的にユーザに区別し易くできる利点が得られる。
図44の例では、上段の概略アクティビティヘッドライン部222aの左側の概略名223に、概略アクティビティの名称としてユーザが入力した「経費Excel読み込み」が表示され、その右側の概略ラベル224には自動生成された概略アクティビティの概略として「[経費一覧表]を取得する。」が表示されている。同じく下段の概略アクティビティヘッドライン部222bの右側の概略名223には、概略アクティビティの名称として「経費精算」が、その右側の概略ラベル224には概略として「[経費一覧表]を入力する」が、それぞれ表示されている。
(概略ラベル224)
概略ラベル生成部44で自動生成される概略ラベル224は、所定のルールに従って生成される。概略ラベル224を自動生成するルールとしては、例えば概略アクティビティの外部で宣言されている変数のうち、
・内部で引数として使われるものについては入力する;
・内部で代入されるものについては取得する;
・引数が再代入によって外部の値を参照しない場合には入力と判断しないようにする;
等とすることができる。
ここで、概略アクティビティの外部で宣言される変数、とは、概略ラベル224が付与される概略アクティビティ外のアクティビティで、当該変数として扱われる値を定義しているものである。図44において「経費一覧表を入力する」という概略ラベルが付与される概略アクティビティに対して、「Excelから表取得」というアクティビティは、概略アクティビティの外部のアクティビティである。当該「Excelから表取得」アクティビティにおいて、Excelから取得するデータを、「経費一覧表」として取得するため、Excelから取得するデータが、「経費一覧表」として扱われる値として定義されていることと同義である。
図44の概略アクティビティの内、「経費精算」は、内部のアクティビティに「経費一覧表」、「品名」、「金額」、「用途」を変数名として扱うアクティビティを有する。このうち、「経費精算」の概略アクティビティの外部で宣言されている変数は、概略アクティビティ「軽費Excel読み込み」に含まれる一アクティビティである「Excelから表取得」でも宣言されている「経費一覧表」である。したがって、「経費一覧表」が概略ラベル224に使用される。
また、変数名に続く文言は、例えば以下のようなプログラムコードの例(概略アクティビティの内部では引数扱い→入力、内部で代入→取得)で決定される。
var a = 1;
OutlineActivity(() => {
a = 2;
})
以上のコードにより、「aを取得する」という操作が規定される。また別のコードとして、以下が挙げられる。
var a = 1;
OutlineActivity(() => {
Console.WriteLine(a);
})
以上のコードにより、「aを入力する」という操作が規定される。その他のコードの例として、以下が挙げられる。
var a = 1;
OutlineActivity(() => {
a = 2;
a = a+1;
})
以上のコードにより、「aを取得する」という操作が規定される。また、さらに他のコードの例として、以下が挙げられる。
var a = 1;
var b = 2;
OutlineActivity(() => {
b = 3;
Console.WriteLine(a);
})
以上のコードにより、「aを入力し、bを取得する」という操作が規定される。また、さらに他のコードの例として、以下が挙げられる。
var a = 1;
OutlineActivity(() => {
a = 3;
Console.WriteLine(a);
})
以上のコードにより、「aを取得する」という操作が規定される。また、さらに他のコードの例として、以下が挙げられる。
var a = 1;
OutlineActivity(() => {
Console.WriteLine(a);
a = 3;
})
以上のコードにより、「aを入力し、aを取得する」という操作が規定される。
またユーザは、図44の画面上で、アクティビティを並び替えることで、どのアクティビティがどの概略アクティビティに括られるかを変更することができる。この操作により各概略アクティビティとして括られるアクティビティが変化した場合、概略ラベル224も更新される。
(概略アクティビティ自動更新機能)
概略アクティビティの自動更新を行う概略アクティビティ自動更新機能の一例として、図44の画面において、概略アクティビティヘッドライン部222aで表示された「[軽費Excel読み込み][軽費一覧表]を取得する。」の概略アクティビティから、「変数のセット」のアクティビティを、概略アクティビティの外部に移動した状態を、図46の概略アクティビティ表示欄851を示す。ここでは「ファイル名」が、概略アクティビティの外部で使用されていることから、概略アクティビティ「経費Excel読み込み」の前段に、新たなアクティビティとして「変数のセット」が規定され、その概要として「[ファイル名]に[軽費一覧表.xlsx]をセット」が規定される。また概略アクティビティ「経費Excel読み込み」の内部でも入力として使用されているため、概略アクティビティヘッドライン部222aにおける概略アクティビティの概略表示が、図44の「[軽費一覧表]を取得する。」から、図46の「[ファイル名]を入力し、[軽費一覧表]を取得する。」に自動更新される。このように、「ファイル名」が、概略アクティビティの外部と内部で入力として使用されているため、これに応じて概略アクティビティ表示が自動更新される。すなわち自動化プログラムをユーザが修正しても、概略アクティビティの表示が自動で更新されるため、ユーザはデバッグ等の度に一々概略を手動で書き換える手間を省ける。また図46の概略アクティビティ表示欄851において、概略アクティビティ詳細表示領域225a、225bを閉じた状態を図47に示す。このように外部に移動させたアクティビティ「変数のセット」も追加して表示され、図45の状態から自動化プログラムの更新に応じてユーザが一々概略を書き換える手間を省くことができる。
以上のようにして、ユーザは作成済みの自動化プログラムの概要を把握し易くできる。すなわち、一の自動化プログラムに含まれる複数の概略アクティビティを、詳細表示を省いてコンパクトにした概略表示モードとして、一画面等でまとめて確認することが可能となる。また概略表示モードにおいても、概略アクティビティヘッドライン部222である程度の内容を記述することにより、コンパクトな表示としながらも概要を把握できる。
さらにユーザは所望の概略アクティビティを選択して、概略アクティビティ詳細表示領域225を表示させる詳細表示モードに切り換えることにより、概略アクティビティを構成するサブアクティビティの詳細を確認することが可能となり、必要な情報へのアクセスを容易に行える。このように、コンパクトな表示と詳細表示とを適宜切替可能として、見易さと詳細の把握を両立させることが可能となる。
(エディタ画面870)
さらに、作成された自動化プログラムのコードを確認することもできる。またプログラミングに長けたユーザであれば、自動で生成されたコードを直接編集することもできる。このような自動化プログラムのコードの編集には、図3のエディタ部49を用いる。具体的には、エディタ部49の一形態として、図48に示すエディタ画面870を利用する。エディタ画面870は、右側にソースコード表示欄871を、左側にアクティビティ表示欄872を、それぞれ設けている。アクティビティ表示欄872には、上述した図44の概略アクティビティ表示欄831と同様に、自動化プログラムを構成する概略アクティビティ毎に、概略アクティビティを構成する各サブアクティビティが表示されている。またソースコード表示欄871は、ソースコード表示部46の一態様を構成する。ソースコード表示欄871には、作成された自動化プログラムで規定された一連の操作を実現するために自動生成された自動化プログラムのソースコードが表示される。いいかえると、通常であればソースコード表示欄871で表示されるような、一般ユーザでは理解が容易でない表示形態であるところ、本実施形態に係る自動化プログラム作成プログラムによれば、アクティビティ表示欄872で示すような、自然言語で自動化プログラムの概要を表示させることにより、より判り易く、自動化プログラムを活用し易くした環境を実現することができる。さらに、従来であればこのような自然言語による表記を実現するためには、ユーザが別途、各アクティビティの内容を手作業で記述しなければならなかったところ、本実施形態に係る自動化プログラム作成プログラムによれば、各アクティビティの概要を、ユーザがプログラミング時に定義した変数を利用することである程度自動で、自然言語により表現することができるため、さらに扱い易い環境が実現される。
ユーザは、ソースコード表示欄871から、ソースコードを直接編集することが可能となる。また図49のエディタ画面880に示すように、ソースコード表示欄871からユーザがソースコードを変更すると、これに対応するようにアクティビティ表示欄872における概略アクティビティの表示内容も更新される。このようにして、プログラミングに長けたユーザであっても、作成、更新した自動化プログラムを概略アクティビティとして自然言語で判り易く表現することができ、後日に自動化プログラムの概要を確認する際等において、過去の資産を効率良く活用できるといった利点が得られる。
ソースコード表示欄871に表示されたソースコードで記述された内容を、アクティビティ表示欄872における概略アクティビティとして表示させる変換は、図3のコード変換部47により行われる。コード変換部47は、ソースコードで記述された内容を解析して、自然言語として表現する。このような処理には、例えばソースコードからツールを使ってノードを切り出し、ノードにIDを割り当てる。またUIを生成する際に、各要素にIDをコピーする。さらにID→Viewの対応表と、ID→SyntaxNodeの対応表を準備し、IDを介して両者を関連付ける。これにより、ソースコードと対応する自然言語への変換を実現している。
本発明の自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器は、Excel等の表計算ソフトやWebブラウザ、その他の自動化対象ソフトに対する操作を自動化する自動化プログラムの作成を支援するRPAソフトなどに好適に利用できる。
11…表示部
12…入力部;12a…キーボード;12b…マウス;12c…タッチパッド
13…バス
14…通信部
15…メモリ部
16…ストレージ部
20…プロセッサ部
21…概略手順作成部
22…取得範囲指定部
23…転記指定部;23a…転記先指定部;23b…転記単位指定部;23c…表操作部;23d…転記データプレビュー部
24…転記単位プレビュー部
25…自動化プログラム生成部
26…自動化プログラム実行部
31…繰返設定部
38…オブジェクト選択受付部
39…操作選択部
40…要素識別部
41…操作実行部
48…操作レコード設定部
110…概略手順作成画面
111…概略手順アイコン
112…操作候補一覧
113…「追加」ボタン
114…操作選択一覧
115…「指定範囲を繰り返しにする」ボタン
117…「次へ」ボタン
118…「破棄して戻る」ボタン
119…繰り返し設定アイコン
121…アクティビティ表示欄
123…「自動表認識機能で取り出す」ボタン
124…「表計算ソフトのシートの範囲を指定」
125…「レコード機能で取り出す」ボタン
130…表計算ソフト取得範囲指定画面
132…表計算ソフト取込詳細指定欄
138…「次へ」ボタン
150…一般転記詳細設定画面
152…転記詳細指定欄
153…転記単位指定欄;153b…「入力するデータ」選択欄;153c…「繰り返し単位」選択欄;153d…グルーピング詳細設定欄
154…「入力単位のプレビュー」欄
155…「他の操作の結果を入力する」欄
156…実施操作決定欄
157…「事前準備の動作」設定欄
159…「事後の動作」設定欄
160…操作レコード画面
161…出力リストウィンドウ
170…操作レコード画面
171…操作内容選択肢;171a…「マウス操作」;171b…「入力」
172…入力候補リスト;172a、172c…「テキスト入力」;172b、172d…「ペースト入力」;172e…「表入力(列名):申請者」;172f…「表入力(列名)金額」
180…動的変化反映後の操作レコード画面
186…「申請ID」欄
188…「編集」メニュー
190…操作レコード画面
191…操作内容選択肢;191a…「値を取得する」
202…「書き出すセルを個別に指定する」欄
208…「次へ」ボタン
220…アクティビティ一覧画面
221…概略アクティビティ表示欄
222…概略アクティビティヘッドライン部
223…概略名
224…概略ラベル
225…概略アクティビティ詳細表示領域
231…「ファイル選択」ボタン
232…「フォルダ選択」ボタン
234…「自動抽出」ボタン
235…「プレビュー」ボタン
236…「マニュアル抽出」ボタン
237…「設定」ボタン
262…「決定」ボタン
280…操作レコード画面
300…操作レコード画面
301…表データ転記詳細設定ウィンドウ
302…表入力位置指定欄
303…表選択欄
304…表移動方向指定欄
305…行挿入指定欄
306…行削除指定欄
307…「表の移動を試す」ボタン
310…操作レコード画面
320…操作レコード画面
321…列名選択肢
358…「OK」ボタン
380…表ナビ画面
390…表操作画面
513…「Webページを開く」設定欄;513b…「設定」ボタン
514…「抽出対象の選択」欄:514b…「設定」ボタン
515…「繰り返し設定」欄;515b…「設定」ボタン
516…「出力の設定」欄;516b…「設定」ボタン
540…出力詳細設定画面
740…操作レコード画面
741…入力候補リスト
742…「メニュー」カテゴリ
743…操作内容選択肢
744…「コピー(C)」
745…「貼り付け(P)」
750…半透明ウィンドウ
831…概略アクティビティ表示欄
839…展開ボタン
851…概略アクティビティ表示欄
870…エディタ画面
871…ソースコード表示欄
872…アクティビティ表示欄
880…エディタ画面
SS…表計算ソフト
WB…Webブラウザ
GS…自動化対象ソフト;GS1…経費精算アプリの「経費精算」フォーム
RS…RPAソフト
PC…コンピュータ
TW…半透明ウィンドウ
L1…表UIに対応する領域
GSa、GSb…アプリケーション

Claims (15)

  1. 自動化対象ソフトに対する一連の操作を記録して実行させる自動化プログラムの作成装置であって、
    前記自動化プログラムを構成する一以上のサブアクティビティのいずれかにおいて参照される変数を定義するための変数定義部と、
    前記変数定義部で定義された変数に基づいて、一以上のサブアクティビティを含む一以上のアクティビティで構成された自動化プログラムを生成するための自動化プログラム生成部と、
    前記自動化プログラム生成部で作成された自動化プログラムを構成する一以上のアクティビティ及び当該アクティビティを構成するサブアクティビティを表示させるための概略アクティビティ表示部と、
    前記概略アクティビティ表示部で表示される前記一以上のアクティビティ又はサブアクティビティの概要を表す概略ラベルを、前記サブアクティビティのいずれかで参照される変数に係る変数情報を取得して、自然言語により自動で生成する概略ラベル生成部と、
    を備えてなる自動化プログラム作成装置。
  2. 請求項1に記載の自動化プログラム作成装置であって、
    前記概略アクティビティ表示部は、前記自動化プログラムを構成する複数のサブアクティビティをグループ化して、アクティビティとして表示させてなる自動化プログラム作成装置。
  3. 請求項1又は2に記載の自動化プログラム作成装置であって、
    前記概略ラベル生成部は、アクティビティに含まれないサブアクティビティで参照される変数、又はアクティビティで参照される変数に係る変数情報を、前記概略アクティビティ表示部に表示可能としてなる自動化プログラム生成装置。
  4. 請求項1~3のいずれか一項に記載の自動化プログラム作成装置であって、
    前記概略アクティビティ表示部は、
    前記概略アクティビティの概要を示す概略アクティビティヘッドライン部と、
    前記概略アクティビティヘッドライン部で表示される各アクティビティ毎に、概要を表示させた概略アクティビティ詳細表示領域と、
    を設けてなる自動化プログラム生成装置。
  5. 請求項4に記載の自動化プログラム作成装置であって、
    前記概略アクティビティ表示部は、前記概略アクティビティヘッドライン部毎に、
    前記概略アクティビティ詳細表示領域を表示させる詳細表示モードと、
    前記概略アクティビティ詳細表示領域を非表示とさせる概略表示モードと、
    を切替可能な表示切替部を設けてなる自動化プログラム生成装置。
  6. 請求項4又は5に記載の自動化プログラム作成装置であって、
    前記概略アクティビティ表示部は、前記概略アクティビティヘッドライン部又は前記概略アクティビティ詳細表示領域に表示させる概略ラベルに含まれる変数について、変数毎に異なる色を割り当てて表示させてなる自動化プログラム生成装置。
  7. 請求項1~6のいずれか一項に記載の自動化プログラム作成装置であって、
    前記概略ラベル生成部は、前記自然言語により前記概略ラベルを所定のルールに従って生成するよう構成されてなる自動化プログラム生成装置。
  8. 請求項7に記載の自動化プログラム作成装置であって、
    前記所定のルールが、
    内部で引数として使われるものについては入力する;
    内部で代入されるものについては取得する;
    引数が再代入によって外部の値を参照しない場合には入力と判断しないようにする;
    の少なくともいずれかを含んでなる自動化プログラム生成装置。
  9. 請求項1~8のいずれか一項に記載の自動化プログラム作成装置であって、さらに、
    前記概略アクティビティヘッドライン部毎に、当該概略アクティビティヘッドライン部で表示される、アクティビティの内容を示す概略名を入力可能な概略名入力部を備えてなる自動化プログラム生成装置。
  10. 請求項1~9のいずれか一項に記載の自動化プログラム作成装置であって、
    前記自動化プログラムが、転記元の第一アプリケーションから取得したデータに基づき、転記先の第二アプリケーションに転記を行う操作を自動化するプログラムであり、
    前記自動化プログラム作成装置が、さらに、
    前記第一アプリケーションからの前記データの取得動作と、
    前記第二アプリケーションへの前記データの転記動作を、
    選択するための概略手順作成部と、
    前記概略手順作成部で選択された前記第一アプリケーションの任意のデータファイルに含まれるデータの内、取得したい範囲を選択するための取得範囲指定部と、
    前記取得範囲指定部で設定された範囲のデータを、表形式の取得元データとして、前記第二アプリケーションに転記するデータ転記単位を設定するための転記単位指定部と、
    前記転記単位指定部で設定されたデータ転記単位に基づいて、前記概略手順作成部で選択された前記第二アプリケーションに転記される転記データを表示させるための転記単位プレビュー部と、
    前記概略手順作成部で選択された前記第一アプリケーションの、前記取得範囲指定部で設定された範囲の表形式の取得元データを、前記転記単位指定部で設定されたデータ転記単位に基づいて、前記概略手順作成部で選択された前記第二アプリケーションに転記する自動化プログラムを生成する自動化プログラム生成部と、
    を備える自動化プログラム作成装置。
  11. 請求項1~10のいずれか一項に記載の自動化プログラム作成方法であって、さらに、
    前記自動化プログラム生成部で作成された自動化プログラムのソースコードを表示させるためのソースコード表示部を備えてなる自動化プログラム生成装置。
  12. 請求項11に記載の自動化プログラム作成方法であって、さらに、
    前記ソースコード表示部に表示されたソースコードで記述された内容を、前記アクティビティ表示欄における概略アクティビティとして表示させる変換を行うためのコード変換部を備えてなる自動化プログラム生成装置。
  13. 自動化対象ソフトに対する一連の操作を記録して実行させる自動化プログラムを作成する自動化プログラム作成方法であって、
    前記自動化プログラムを構成する一以上のサブアクティビティのいずれかにおいて参照される変数を、変数定義部で定義する工程と、
    前記変数定義部で定義された変数に基づいて、一以上のサブアクティビティを含む一以上のアクティビティで構成された自動化プログラムを、自動化プログラム生成部で作成する工程と、
    前記自動化プログラム生成部で作成された自動化プログラムを構成する一以上のアクティビティ及び当該アクティビティを構成するサブアクティビティの概要を表す概略ラベルを、前記サブアクティビティのいずれかで参照される変数に係る変数情報を取得して、概略ラベル生成部で自然言語により自動で生成する工程と、
    前記概略ラベル生成部で生成された前記概略ラベルを、概略アクティビティ表示部に表示させる工程と、
    を含む自動化プログラム作成方法。
  14. 自動化対象ソフトに対する一連の操作を記録して実行させる自動化プログラムを作成する自動化プログラム作成プログラムであって、
    前記自動化プログラムを構成する一以上のサブアクティビティのいずれかにおいて参照される変数を、変数定義部で定義する機能と、
    前記変数定義部で定義された変数に基づいて、一以上のサブアクティビティを含む一以上のアクティビティで構成された自動化プログラムを、自動化プログラム生成部で作成する機能と、
    前記自動化プログラム生成部で作成された自動化プログラムを構成する一以上のアクティビティ及び当該アクティビティを構成するサブアクティビティの概要を表す概略ラベルを、前記サブアクティビティのいずれかで参照される変数に係る変数情報を取得して、概略ラベル生成部で自然言語により自動で生成する機能と、
    前記概略ラベル生成部で生成された前記概略ラベルを、概略アクティビティ表示部に表示させる機能と、
    をコンピュータに実現させるための自動化プログラム作成プログラム。
  15. 請求項14に記載のプログラムを格納したコンピュータで読み取り可能な記録媒体又は記憶した機器。
JP2021163228A 2021-10-04 2021-10-04 自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器 Pending JP2023054412A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021163228A JP2023054412A (ja) 2021-10-04 2021-10-04 自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021163228A JP2023054412A (ja) 2021-10-04 2021-10-04 自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器

Publications (1)

Publication Number Publication Date
JP2023054412A true JP2023054412A (ja) 2023-04-14

Family

ID=85874126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021163228A Pending JP2023054412A (ja) 2021-10-04 2021-10-04 自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器

Country Status (1)

Country Link
JP (1) JP2023054412A (ja)

Similar Documents

Publication Publication Date Title
JP4950482B2 (ja) 書式によるフィルタ(filter)とソート(sort)
US8689137B2 (en) Command user interface for displaying selectable functionality controls in a database application
JP5174468B2 (ja) 自動ビジネスプロセスアプリケーションを設計するための統合システム、ツールおよび方法
US9038001B2 (en) System and method for graphically illustrating external data source information in the form of a visual hierarchy in an electronic workspace
US8386919B2 (en) System for displaying an annotated programming file
US20050015730A1 (en) Systems, methods and computer program products for identifying tab order sequence of graphically represented elements
JP2008545212A (ja) キーボードアクセラレータ
JP2009522695A (ja) オペレーティングシステムユーザインターフェースを使用して文書および文書オブジェクトにメタデータを付加する方法
CN113900636A (zh) 一种自助化渠道业务流程开发系统及其开发方法
CA2756829A1 (en) Providing assisted business analysis to users
US10725969B2 (en) Centralized selection context for user interface data binding and event handling
JP2023054412A (ja) 自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
JP2023054411A (ja) 自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
JP2023054410A (ja) 自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
WO2006137564A1 (ja) 文書処理装置
JP2023054409A (ja) 自動化プログラム作成装置、自動化プログラム作成方法、自動化プログラム作成プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
US20230108676A1 (en) Scenario management device, scenario management method, and a computer-readable recording medium recording a program causing a computer to function as the scenario management device
JP6966710B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
Korol Excel 2021/Microsoft 365 Programming By Example
US11714962B2 (en) Systems and methods for automated review and editing of presentations
CN115328789A (zh) 一种测试用例编辑方法、装置、设备及介质
Korol Microsoft Excel 2016 Programming by Example with VBA, XML, and ASP
US20210264365A1 (en) Customer Interaction Architecture
Series Model Navigation
Alexander 101 ready-to-use Excel macros