(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-11
(45)【発行日】2022-10-19
(54)【発明の名称】シナリオ生成装置、シナリオ生成システム、シナリオ生成方法及びプログラム
(51)【国際特許分類】
G06Q 10/06 20120101AFI20221012BHJP
【FI】
G06Q10/06 324
(21)【出願番号】P 2021002868
(22)【出願日】2021-01-12
【審査請求日】2021-01-12
(73)【特許権者】
【識別番号】000102739
【氏名又は名称】エヌ・ティ・ティ・アドバンステクノロジ株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】小林 恵
(72)【発明者】
【氏名】岡田 隆裕
(72)【発明者】
【氏名】神田 直活
(72)【発明者】
【氏名】島田 英正
(72)【発明者】
【氏名】高橋 淳
(72)【発明者】
【氏名】大塚 智己
【審査官】田中 寛人
(56)【参考文献】
【文献】特開2012-014291(JP,A)
【文献】特開2008-021095(JP,A)
【文献】特開2007-025823(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q10/00-99/00
(57)【特許請求の範囲】
【請求項1】
操作の実行順を示す実行順情報と、ユーザーインタフェースによる操作を表すノードの名称であるノード名と、前記操作の種別を示すイベントと、前記操作の対象を示す操作対象情報と、前記操作をシナリオ実行装置が実行する際に用いられる付加情報とそれぞれを設定するための欄を第一の方向に並べた操作データを、第二の方向に一以上並べた操作手順データを表形式で表示し、入力されたユーザ操作に従って前記操作手順データを編集する編集部と、
前記編集部により編集された前記操作手順データに含まれる前記操作データそれぞれに対応するノードであって、前記操作データに含まれる前記ノード名が付与された前記ノードを前記実行順情報の順に並べて表されるシナリオを、シナリオ実行装置において実行可能な記述形式を用いて記述したシナリオファイルを生成するシナリオ生成部と、
を備え
、
前記シナリオ生成部は、前記操作データに含まれる前記イベントに応じて、又は、前記操作データに含まれる前記イベントと、前記操作対象情報及び前記付加情報の一方又は両方との組み合わせに応じて前記ノードの種別を判断し、前記ノードに付加され、当該ノードに関する設定を表すプロパティ情報に前記操作対象情報及び前記付加情報の一方又は両方から得られる情報を設定する、
シナリオ生成装置。
【請求項2】
前記操作データに対応して生成されるノードを表すシンボルと、前記ノードの実行順を表すシンボルとを表示するシナリオ表示部をさらに備える、
請求項
1に記載のシナリオ生成装置。
【請求項3】
前記操作データは、当該操作データが表す操作の実行には用いられない補足情報を含み、
前記シナリオ表示部は、前記操作データに対応して生成されるノードを表す前記シンボルに、当該操作データに含まれる前記補足情報を付加して表示する、
請求項
2に記載のシナリオ生成装置。
【請求項4】
前記実行順情報は、階層化された実行順を表し、
前記シナリオ表示部は、上位階層の実行順が同じ前記操作データに対応して生成されるノードを表すシンボルを、前記上位階層を表すノードのシンボル内に表示する、
請求項
2又は請求項
3に記載のシナリオ生成装置。
【請求項5】
前記シナリオ表示部は、前記操作データにグループを示す情報が含まれている場合、当該操作データに対応して生成されるノードを表すシンボルに、当該操作データの下位階層の前記操作データに対応して生成されるノードを表すシンボルを含めて表示する、
請求項
4に記載のシナリオ生成装置。
【請求項6】
操作の実行順を示す実行順情報と、ユーザーインタフェースによる操作を表すノードの名称であるノード名と、前記操作の種別を示すイベントと、前記操作の対象を示す操作対象情報と、前記操作をシナリオ実行装置が実行する際に用いられる付加情報とそれぞれを設定するための欄を第一の方向に並べた操作データを、第二の方向に一以上並べた操作手順データを表形式で表示し、入力されたユーザ操作に従って前記操作手順データを編集する編集部と、
前記編集部により編集された前記操作手順データに含まれる前記操作データそれぞれに対応するノードであって、前記操作データに含まれる前記ノード名が付与された前記ノードを前記実行順情報の順に並べて表されるシナリオを、シナリオ実行装置において実行可能な記述形式を用いて記述したシナリオファイルを生成するシナリオ生成部と、
を備え
、
前記シナリオ生成部は、前記操作データに含まれる前記イベントに応じて、又は、前記操作データに含まれる前記イベントと、前記操作対象情報及び前記付加情報の一方又は両方との組み合わせに応じて前記ノードの種別を判断し、前記ノードに付加され、当該ノードに関する設定を表すプロパティ情報に前記操作対象情報及び前記付加情報の一方又は両方から得られる情報を設定する、
シナリオ生成システム。
【請求項7】
シナリオ生成装置が実行するシナリオ生成方法であって、
編集部が、操作の実行順を示す実行順情報と、ユーザーインタフェースによる操作を表すノードの名称であるノード名と、前記操作の種別を示すイベントと、前記操作の対象を示す操作対象情報と、前記操作をシナリオ実行装置が実行する際に用いられる付加情報とそれぞれを設定するための欄を第一の方向に並べた操作データを、第二の方向に一以上並べた操作手順データを表形式で表示し、入力されたユーザ操作に従って前記操作手順データを編集する編集ステップと、
シナリオ生成部が、前記編集ステップにおいて編集された前記操作手順データに含まれる前記操作データそれぞれに対応するノードであって、前記操作データに含まれる前記ノード名が付与された前記ノードを前記実行順情報の順に並べて表されるシナリオを、シナリオ実行装置において実行可能な記述形式を用いて記述したシナリオファイルを生成するシナリオ生成ステップと、
を有
し、
前記シナリオ生成ステップにおいては、前記操作データに含まれる前記イベントに応じて、又は、前記操作データに含まれる前記イベントと、前記操作対象情報及び前記付加情報の一方又は両方との組み合わせに応じて前記ノードの種別を判断し、前記ノードに付加され、当該ノードに関する設定を表すプロパティ情報に前記操作対象情報及び前記付加情報の一方又は両方から得られる情報を設定する、
シナリオ生成方法。
【請求項8】
コンピュータを、請求項1から請求項
5のいずれか一項に記載のシナリオ生成装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シナリオ生成装置、シナリオ生成システム、シナリオ生成方法及びプログラムに関する。
【背景技術】
【0002】
RPA(Robotic Process Automation)などの自動化ツールは、PC(パーソナルコンピュータ)等の情報処理装置を用いて人手で行っていた定型的な作業を自動で実行可能とする。例えば、作業手順を記述したシナリオを作成し(例えば、特許文献1参照)、PCがそのシナリオを実行することで、人手で行っていた作業を再現する(例えば、特許文献2参照)。RPAにより、時間的コストや人的コストを削減し、作業ミスを低減することもできる。シナリオには、アプリケーションを自動操作するための手順やその操作のための情報が記述される。
【0003】
一方、BPR(Business Process Reengineering)ツールは、業務改革を支援するツールである。BPRは、業務活動の情報を収集、分析し、業務改善に繋がるアクションを明示する。RPAの社会浸透に伴い、昨今のBPRツールは、RPA化できる業務を切り出す機能が備わりつつある(例えば、非特許文献1参照)。また、BPM(Business Process Management)ツールは、業務プロセス、業務システムを統合的に管理するツールの総称である。BPMツールにおいても、業務改善に関するプロセス変更を明示する機能、業務をRPAへ置き換える機能が備わりつつある。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第5026451号公報
【文献】特許第4883638号公報
【非特許文献】
【0005】
WebSAM IT Process Operations 運用改善支援ソフトウェア,[online],日本電気株式会社,[2020年12月10日検索]、インターネット<https://jpn.nec.com/websam/itprocessoperations/index.html>
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述のように、BPRツール及びBPMツールには、RPAへ業務を置き換えることによる業務改善を提案する機能が備わりつつある。しかしながら、置き換え対象の業務をPCに実行させるためのRPAのシナリオは、人手で作成されていた。従って、RPAへの置き換えのためにかかる時間的、人的コストが高くなる場合があった。
【0007】
上記事情に鑑み、本発明は、業務の分析結果に基づくRPAシナリオの作成を支援することができるシナリオ生成装置、シナリオ生成システム、シナリオ生成方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
本発明の一態様は、操作の実行順を示す実行順情報と、ユーザーインタフェースによる操作を表すノードの名称であるノード名と、前記操作の種別を示すイベントと、前記操作の対象を示す操作対象情報と、前記操作をシナリオ実行装置が実行する際に用いられる付加情報とそれぞれを設定するための欄を第一の方向に並べた操作データを、第二の方向に一以上並べた操作手順データを表形式で表示し、入力されたユーザ操作に従って前記操作手順データを編集する編集部と、前記編集部により編集された前記操作手順データに含まれる前記操作データそれぞれに対応するノードであって、前記操作データに含まれる前記ノード名が付与された前記ノードを前記実行順情報の順に並べて表されるシナリオを、シナリオ実行装置において実行可能な記述形式を用いて記述したシナリオファイルを生成するシナリオ生成部と、を備え、前記シナリオ生成部は、前記操作データに含まれる前記イベントに応じて、又は、前記操作データに含まれる前記イベントと、前記操作対象情報及び前記付加情報の一方又は両方との組み合わせに応じて前記ノードの種別を判断し、前記ノードに付加され、当該ノードに関する設定を表すプロパティ情報に前記操作対象情報及び前記付加情報の一方又は両方から得られる情報を設定する、シナリオ生成装置である。
【0012】
本発明の一態様は、上述のシナリオ生成装置であって、前記操作データに対応して生成されるノードを表すシンボルと、前記ノードの実行順を表すシンボルとを表示するシナリオ表示部をさらに備える。
【0013】
本発明の一態様は、上述のシナリオ生成装置であって、前記操作データは、当該操作データが表す操作の実行には用いられない補足情報を含み、前記シナリオ表示部は、前記操作データに対応して生成されるノードを表す前記シンボルに、当該操作データに含まれる前記補足情報を付加して表示する。
【0014】
本発明の一態様は、上述のシナリオ生成装置であって、前記実行順情報は、階層化された実行順を表し、前記シナリオ表示部は、上位階層の実行順が同じ前記操作データに対応して生成されるノードを表すシンボルを、前記上位階層を表すノードのシンボル内に表示する。
【0015】
本発明の一態様は、上述のシナリオ生成装置であって、前記シナリオ表示部は、前記操作データにグループを示す情報が含まれている場合、当該操作データに対応して生成されるノードを表すシンボルに、当該操作データの下位階層の前記操作データに対応して生成されるノードを表すシンボルを含めて表示する。
【0016】
本発明の一態様は、操作の実行順を示す実行順情報と、ユーザーインタフェースによる操作を表すノードの名称であるノード名と、前記操作の種別を示すイベントと、前記操作の対象を示す操作対象情報と、前記操作をシナリオ実行装置が実行する際に用いられる付加情報とそれぞれを設定するための欄を第一の方向に並べた操作データを、第二の方向に一以上並べた操作手順データを表形式で表示し、入力されたユーザ操作に従って前記操作手順データを編集する編集部と、前記編集部により編集された前記操作手順データに含まれる前記操作データそれぞれに対応するノードであって、前記操作データに含まれる前記ノード名が付与された前記ノードを前記実行順情報の順に並べて表されるシナリオを、シナリオ実行装置において実行可能な記述形式を用いて記述したシナリオファイルを生成するシナリオ生成部と、を備え、前記シナリオ生成部は、前記操作データに含まれる前記イベントに応じて、又は、前記操作データに含まれる前記イベントと、前記操作対象情報及び前記付加情報の一方又は両方との組み合わせに応じて前記ノードの種別を判断し、前記ノードに付加され、当該ノードに関する設定を表すプロパティ情報に前記操作対象情報及び前記付加情報の一方又は両方から得られる情報を設定する、シナリオ生成システムである。
【0017】
本発明の一態様は、シナリオ生成装置が実行するシナリオ生成方法であって、編集部が、操作の実行順を示す実行順情報と、ユーザーインタフェースによる操作を表すノードの名称であるノード名と、前記操作の種別を示すイベントと、前記操作の対象を示す操作対象情報と、前記操作をシナリオ実行装置が実行する際に用いられる付加情報とそれぞれを設定するための欄を第一の方向に並べた操作データを、第二の方向に一以上並べた操作手順データを表形式で表示し、入力されたユーザ操作に従って前記操作手順データを編集する編集ステップと、シナリオ生成部が、前記編集ステップにおいて編集された前記操作手順データに含まれる前記操作データそれぞれに対応するノードであって、前記操作データに含まれる前記ノード名が付与された前記ノードを前記実行順情報の順に並べて表されるシナリオを、シナリオ実行装置において実行可能な記述形式を用いて記述したシナリオファイルを生成するシナリオ生成ステップと、を有し、前記シナリオ生成部は、前記操作データに含まれる前記イベントに応じて、又は、前記操作データに含まれる前記イベントと、前記操作対象情報及び前記付加情報の一方又は両方との組み合わせに応じて前記ノードの種別を判断し、前記ノードに付加され、当該ノードに関する設定を表すプロパティ情報に前記操作対象情報及び前記付加情報の一方又は両方から得られる情報を設定する、シナリオ生成方法である。
【0018】
本発明の一態様は、コンピュータを、上述のシナリオ生成装置として機能させるためのプログラムである。
【発明の効果】
【0021】
本発明により、業務の分析結果に基づくRPAシナリオの作成を支援することが可能となる。
【図面の簡単な説明】
【0022】
【
図1】本発明の一実施形態によるRPAシステムの概要を説明するための図である。
【
図2】同実施形態によるシナリオの表示例を示す図である。
【
図3】同実施形態によるシナリオ生成装置の機能ブロック図である。
【
図4】同実施形態によるシナリオ実行装置の機能ブロック図である。
【
図5】同実施形態による操作手順データの例を示す図である。
【
図6】同実施形態によるRPAシステムの処理を示すフロー図である。
【
図7】同実施形態による操作手順データ編集画面を示す図である。
【
図8】同実施形態によるシナリオ生成装置によるシナリオファイル生成処理を示すフロー図である。
【
図9】同実施形態によるシナリオの例を示す図である。
【
図10】同実施形態によるシナリオ実行装置によるシナリオ表示画面生成処理を示すフロー図である。
【
図11】同実施形態によるシナリオファイルの表示例を示す図である。
【
図12】同実施形態によるプロパティ設定画面の表示例を示す図である。
【発明を実施するための形態】
【0023】
以下、図面を参照しながら本発明の実施形態を詳細に説明する。
図1は、本発明の一実施形態によるRPAシステム100の概要を説明するための図である。RPAシステム100は、シナリオ生成システムの一例である。RPAシステム100は、シナリオ生成装置1と、シナリオ実行装置5とを有する。シナリオ生成装置1は、RPAのシナリオを生成する。RPAは、自動化ツールの一例である。シナリオは、シナリオ実行装置5において実行される機能に対してユーザーインタフェースにより行われる操作を表すノードを、それらノードが実行される順に並べて表される。ノードが表す操作の対象となる機能は、例えば、OS(Operation System)、又は、アプリケーションにより実現される機能であり、ユーザーインタフェースにより行われた操作に応じて処理を行う。なお、シナリオ生成装置1とシナリオ実行装置5とが一体の装置であってもよい。
【0024】
シナリオ生成装置1は、シナリオ実行装置5に行う操作を実行順に表形式により記述した操作手順データを取得する。操作手順データは、例えば、BPRツールやBPMツールにより作成されてもよく、ユーザーが手作業で作成してもよい。シナリオ生成装置1は、取得した操作手順データを、シナリオファイルに変換する。シナリオファイルは、シナリオ実行装置5において実行可能な記述形式により、RPAのシナリオを記述したデータである。シナリオ実行装置5は、シナリオ生成装置1が生成したシナリオファイルに記述されているシナリオを実行する。なお、操作手順データにおいて欠落していた情報を付加したり、BPRツールやBPMツールが操作手順データを生成する際に参照した条件とは異なる条件でシナリオを実行させたりする場合には、シナリオファイルに記述されているシナリオをユーザーが人手により編集する。
【0025】
図2は、シナリオ実行装置5によるシナリオの表示例を示す図である。シナリオは、ノードと、ノードの実行順とを示す。ノードは、ノードシンボルP1、P2により表示され、ノードの実行順は、矢印Qにより表示される。ノードシンボルP1は、ユーザーインタフェースにより行われる操作を表すノードのシンボルである。ノードシンボルP2は、グループを表すノードのシンボルである。ノードシンボルP2内には、グループに属する1以上のノードのノードシンボルP1が含まれる。グループに属するノードがない場合は、ノードシンボルP2内にノードシンボルP1は含まれない。矢印Qは、矢印Qに接続されているシンボルP1、P2が表すノードの実行順を表すシンボルである。すなわち、矢印Qの根元のノードシンボルP1、P2が表すノードが実行された後に、その矢印Qの先のノードシンボルP1、P2が表すノードが実行されることを表す。ノードシンボルP2が表すノードの実行とは、ノードシンボルP2内に含まれるノードシンボルP1が表すノード全てが実行されることである。なお、ノードシンボルPsは、シナリオの開始を表すノードのシンボルであり、ノードシンボルPeはシナリオの終了を表すノードのシンボルである。
【0026】
各ノードには、プロパティ情報が付加される。プロパティ情報は、ノードに関する設定を示す。シナリオ生成装置1は、プロパティ情報の表示指示が入力された場合、プロパティを表示する画面Gを表示する。また、ノードには、補足情報が付加されてもよい。補足情報は、シナリオの実行には用いられない情報である。補足情報には、ノードシンボルP1、P2に対応付けて表示される付箋情報と、プロパティ情報内に設定されるコメント情報がある。
【0027】
図3は、シナリオ生成装置1の機能ブロック図である。
図3には、本実施形態と関係する機能ブロックのみを抽出して示してある。シナリオ生成装置1は、例えば、パーソナルコンピュータなどのコンピュータ装置により実現される。シナリオ生成装置1は、入力部11と、表示部12と、記憶部13と、処理部14とを有する。入力部11は、ユーザーの指示をシナリオ生成装置1に入力する際にユーザーによって操作されるユーザーインタフェースである。入力部11は、キーボード、ポインティングデバイス(マウス、タブレット等)、ボタン、タッチパネル等の既存の入力装置を用いて構成される。表示部12は、データを表示する。表示部12は、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の画像表示装置である。
【0028】
記憶部13は、処理部14の処理に用いられる情報を含む各種情報を記憶する。記憶部13は、操作手順データ及びシナリオファイルを記憶する。
【0029】
操作手順データは、操作データを1以上並べたデータである。一つの操作データは、シナリオ実行装置5のOSやアプリケーションが有する機能に対して一つの指示を与える操作に対応する。また、一つの操作データは、シナリオ内の一つのノードに対応する。操作データは、実行順情報と、ノード名情報とを含む。実行順情報は、操作の実行順を示す。実行順は、階層化されていてもよい。ノード名情報は、操作データに対応したノードの名称を示す。操作データは、さらに、イベント情報と、詳細情報とを含んでもよい。イベント情報は、操作の種別を示す。詳細情報は、操作対象情報と、付加情報と、補足情報とを含む。操作対象情報は、イベントが表す操作の対象を示す。付加情報は、イベントが表す操作をシナリオ実行装置5が実行する際に用いられる情報である。補足情報は、操作の実行には用いられない情報であり、操作やノードに関する補足的な情報である。
【0030】
シナリオファイルは、シナリオを記述したファイルである。シナリオファイルは、複数のノード情報を含む。ノード情報は、実行順情報と、ノード種別と、プロパティ情報と、付箋情報とを含む。実行順情報は、ノードが実行される順序を示す。ノード種別は、ノードが表す操作の種類を示す。プロパティ情報は、ノード名情報、コメント情報、及び、各種パラメータを含む。パラメータは、シナリオ実行装置5がノード種別により表される操作を実行する際に用いる情報である。
【0031】
処理部14は、処理部14の機能を実現するためのプログラムをコンピュータが読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現される。ここでいう「コンピュータシステム」とは、CPU(central processing unit)やOS、周辺機器等のハードウェアを含む。
【0032】
処理部14は、取得部141と、データ編集部142と、シナリオ生成部143とを備える。取得部141は、操作手順データを取得し、記憶部13に書き込む。データ編集部142は、記憶部13に記憶されている操作手順データを、入力部11による入力に応じて編集する。データ編集部142は、編集された操作手順データを記憶部13に書き込む。
【0033】
シナリオ生成部143は、操作手順データに含まれる操作データそれぞれに基づいて生成されたノード情報を並べたシナリオファイルを生成する。シナリオファイルは、シナリオ実行装置5において実行可能な記述形式を用いてシナリオを記述したファイルである。シナリオ生成部143は、操作データに含まれるノード名及び実行順情報をノード情報に設定する。さらに、シナリオ生成部143は、操作データに含まれるイベント情報に応じて、又は、イベント情報と詳細情報の少なくとも一部の情報との組み合わせに応じてノード種別を判断し、ノード情報に設定する。また、シナリオ生成部143は、操作データの詳細情報から得られる情報を、ノード情報に含まれるプロパティ情報に設定する。すなわち、シナリオ生成部143は、ノード種別に応じて、プロパティ情報に使用されるパラメータの種類を判断する。シナリオ生成部143は、プロパティ情報に使用されるパラメータの種類と、操作データに含まれる詳細情報とのマッピングルールに基づいて、プロパティ情報のパラメータに、詳細情報から得られる情報を設定する。マッピングルールは予め決められる。また、シナリオ生成部143は、操作データに含まれる補足情報を、ノード情報の付箋情報やプロパティ情報に設定する。
【0034】
図4は、シナリオ実行装置5の機能ブロック図である。
図4には、本実施形態と関係する機能ブロックのみを抽出して示してある。シナリオ実行装置5は、例えば、パーソナルコンピュータなどのコンピュータ装置により実現される。シナリオ実行装置5は、記憶部51と、入力部52と、表示部53と、処理部54とを有する。
【0035】
記憶部51は、シナリオ生成装置1により生成されたシナリオファイルを記憶する。入力部52は、ユーザーの指示をシナリオ実行装置5に入力する際にユーザーによって操作されるユーザーインタフェースである。入力部52は、キーボード、ポインティングデバイス(マウス、タブレット等)、ボタン、タッチパネル等の既存の入力装置を用いて構成される。表示部53は、データを表示する。表示部53は、CRTディスプレイ、液晶ディスプレイ、有機ELディスプレイ等の画像表示装置である。
【0036】
処理部54は、処理部54の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現される。「コンピュータシステム」とは、CPUやOS、周辺機器等のハードウェアを含む。
【0037】
処理部54は、シナリオ編集部541と、シナリオ実行部542と、機能X実行部543とを備える。
【0038】
シナリオ編集部541は、シナリオファイルを編集する。シナリオ編集部541は、シナリオファイルが示すシナリオを表示部53に表示するシナリオ表示部としても機能する。シナリオ編集部541は、シナリオファイル内のノード情報それぞれに対応したノードを表すノードシンボルと、そのノードシンボルが表すノードの実行順を表す実行順シンボルとを表示部53に表示する。シナリオ編集部541は、ノードシンボルに、ノード情報のプロパティ情報に設定されているノード名情報を表示する。シナリオ編集部541は、ノード情報に付箋情報が含まれる場合、ノードシンボルに付箋情報を対応付けて表示する。また、シナリオ編集部541は、実行順情報が階層化された実行順を表す場合、親の階層のノード情報に対応したノードシンボル内に、その親の階層に含まれる子の階層のノード情報に対応したノードシンボルを含めて表示する。シナリオ編集部541は、表示部53に表示しているシナリオに対して、ユーザーが入力部52により入力した情報に基づいてシナリオファイルを変更する。
【0039】
シナリオ実行部542は、シナリオファイルから実行順にノード情報を読み出し、ノード情報が示す操作を行うよう入力部52を制御する。機能X実行部543は、入力部52を用いた操作に従って機能Xを実行する。機能Xは、シナリオの実行に使用され得る機能であり、任意の機能とすることができる。機能Xは任意であるが、一例として、表計算、文書編集、図形描画、ウェブブラウザ、メール送受信などのアプリケーションにより実現される機能や、アプリケーションの起動、クリップボードなどのOSにより実現される機能がある。
図4では、機能Xを実行する機能X実行部543(X=A、B、C)を、機能A実行部543a、機能B実行部543b、機能C実行部543cと記載している。
【0040】
なお、処理部14又は処理部54のプログラムを記憶した上記の「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、処理部14又は処理部54の機能の一部を実現するためのものであってもよく、さらに処理部14又は処理部54の機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0041】
シナリオ生成装置1が、シナリオ実行装置5と一体の装置である場合、記憶部51、入力部52、表示部53はそれぞれ、記憶部13、入力部11、表示部12に対応し、処理部54は処理部14の機能を有する。また、シナリオ生成装置1の処理部14が、シナリオ実行装置5のシナリオ編集部541の機能を有してもよい。この場合、シナリオ実行装置5は、シナリオ編集部541を有してもよく、有さなくてもよい。また、シナリオ生成装置1及びシナリオ実行装置5と異なる装置が、シナリオ編集部541を有してもよい。
【0042】
シナリオ生成装置1及びシナリオ実行装置5はそれぞれ、複数台のコンピュータ装置により実現されてもよい。この場合、シナリオ生成装置1が備える各機能部及びシナリオ実行装置5が備える各機能部はそれぞれ、複数のコンピュータ装置に分散して実装されてもよい。シナリオ生成装置1が備える各機能部及びシナリオ実行装置5が備える各機能部を、いずれのコンピュータ装置により実装するかは任意とすることができる。また、同一の機能部を複数のコンピュータ装置により実現してもよい。
【0043】
図5は、操作手順データの例を示す図である。操作手順データは、例えば、汎用的に使用されている表計算アプリケーションなどにより編集可能なデータである。操作手順データは、ヘッダ行と1以上の操作データとを含む。ヘッダ行は、操作データに含まれる各情報の種類を識別するためカラム名を示している。一つの操作データは、シナリオにおける一つノードに対応し、1行に記述される。操作データは、ヘッダ行に記述されている「No」、「ノード名」、「コメント」、「付箋」、「イベント」、「アプリケーション」、「ウィンドウタイトル」、「付加情報1」~「付加情報N」(Nは正数)をカラム名とする情報からなる。
図5では、「付加情報3」~「付加情報N」を省略している。
【0044】
カラム名「No」の情報は、実行順情報である。実行順情報は、階層化された実行順を示し、各階層の番号は「-」により結合される。M個(Mは2以上の整数)の数字が「-」で結合される場合、m番目(mは1以上M以下の整数)の数字は、1~(m-1)番目までの階層の番号が同じ親のグループにおける実行順を表す。例えば、3つの操作データそれぞれの実行順情報に「1」、「1-1」、「1-2」が設定されている場合、実行順情報「1」が設定されている操作データは親のノードに対応し、実行順情報「1-1」又は「1-2」が設定されている操作データはその親のノードの子ノードに対応する。実行順情報「1-1」の子ノードの後に、実行順情報「1-2」の子ノードが実行される。
【0045】
カラム名「ノード名」の情報は、ノード名情報である。操作データのノード名情報は、プロパティ情報のノード名情報にマッピングされる。カラム名「コメント」の情報は、コメント情報である。コメント情報は、補足情報の一つである。操作データのコメント情報は、プロパティ情報のコメント情報にマッピングされる。カラム名「付箋」の情報は、付箋情報である。付箋情報は、補足情報の一つである。付箋情報は、ノードシンボルに付加して表示される。カラム名「イベント」の情報は、イベント情報である。イベント情報は、グループ、又は、操作の種類を示す。操作の種類は、例えば、起動、開く、クリップボード、コピー、貼り付け、選択、キー入力などである。イベント情報に値が設定されていない場合、グループが設定されているものとする。カラム名「アプリケーション」の情報は、対象アプリケーション情報である。対象アプリケーション情報は、操作対象がアプリケーションである場合の操作対象情報である。カラム名「ウィンドウタイトル」の情報は、対象ウィンドウ情報である。対象ウィンドウ情報は、操作対象が表示ウィンドウである場合の操作対象情報である。カラム名「付加情報n」(n=1、2、…N)の情報は、操作の実行の際に用いられる付加情報である。対象アプリケーション情報、対象ウィンドウ情報、及び、付加情報nは、プロパティ情報のパラメータにマッピングされる。
【0046】
カラム名には予め決められた(予約された)名前が使用される。ヘッダ行に記述のカラム名によって、操作データの各列に設定されている情報の種類を識別可能である。よって、「No」、「ノード名」、「コメント」、「付箋」、「イベント」、「アプリケーション」、「ウィンドウタイトル」、「付加情報1」~「付加情報N」の記載順を任意に変更可能である。また、同一の情報に対して、予め決められた別名のカラム名が使用されてもよい。例えば、ノード名情報のカラム名として、「ノード名」、「名前」、「node-name」、「name」などが使用されてもよい。また、イベント情報のカラム名として「イベント」、「イベント種別」、「操作種別」、「アクション」、「event-type」、「event」、「action」などが使用されてもよい。よって、とり得る複数のカラム名の中からユーザーが個々に理解しやすいカラム名を選択して用いることが可能となる。
【0047】
また、操作手順データは、予め決められたカラム名以外のカラム名の情報を含んでもよい。これらの情報はシナリオ生成には使用されない。このような情報を設定可能とすることにより、例えば、BPRツール、BPMツール、又は、ユーザーにより使用され、かつ、シナリオ生成には使用されない情報を操作手順データに設定できる。
【0048】
図6は、RPAシステム100の処理を示すフロー図である。まず、シナリオ生成装置1の取得部141は、操作手順データを取得する(ステップS110)。例えば、取得部141は、外部の装置から操作手順データを受信してもよく、ユーザーが入力部11により入力した指示に応じて記録媒体から操作手順データを読み出してもよい。取得部141は、取得した操作手順データを記憶部13に書き込む。
【0049】
ユーザーが入力部11により操作手順データの読み込み指示を入力した場合、データ編集部142は、記憶部13から指示された操作手順データを読み出して、表示部12に表示する。このとき、データ編集部142は、操作手順データの各操作データの正常性を確認し、正常であると判断した操作データを抽出して表示部12に表示してもよい。また、データ編集部142は、エラーと判断した操作データのログを出力してもよい。正常性確認の項目は、例えば、必須の情報が設定されているか、同一のカラム種別を表すカラム名が複数含まれていないか、実行順情報が示す実行順が連番になっているか、各情報について予め許容された文字が使用されているか、などである。データ編集部142は、ユーザーが入力部11により入力した情報に従って、操作手順データの編集を行う(ステップS120)。データ編集部142は、編集された操作手順データを記憶部13に書き込む。なお、シナリオ生成装置1は、操作手順データの編集を行わなくてもよい。
【0050】
シナリオ生成部143は、ユーザーが入力部11によりシナリオの生成指示を入力した場合、記憶部13からデータ編集部142により編集された操作手順データを読み出す。シナリオ生成部143は、読み出した操作手順データに基づくシナリオを記述したシナリオファイルを生成する(ステップS130)。シナリオファイル生成の詳細な処理は、
図8を用いて後述する。シナリオ生成部143は、生成したシナリオファイルを記憶部13に書き込む。シナリオファイルを修正する場合、シナリオ生成装置1は、ユーザーが入力した情報に従って操作手順データを編集するステップS120からの処理を繰り返す。記憶部13に記憶されたシナリオファイルは、シナリオ実行装置5に出力される。出力はネットワークを介した送信でもよく、シナリオ実行装置5が読み取り可能な記録媒体への記録でもよい。シナリオ実行装置5は、シナリオ生成装置1が生成したシナリオファイルを取得し、記憶部51に記憶する。
【0051】
ユーザーが、シナリオ実行装置5の入力部52によりシナリオの表示指示を入力した場合、シナリオ編集部541は、記憶部51からシナリオファイルを読み出し、シナリオファイルが示すシナリオを表示部53に表示する(ステップS140)。シナリオ表示の詳細な処理は、
図10を用いて後述する。シナリオ編集部541は、ユーザーが入力部52により入力した指示に従って、シナリオを編集する(ステップS150)。シナリオ編集部541は、編集されたシナリオのシナリオファイルを生成し、記憶部51に書き込む。なお、シナリオの編集が不要であれば、シナリオ実行装置5は、ステップS150の処理を行わなくてもよい。
【0052】
ユーザーがシナリオ実行装置5の入力部52によりシナリオファイルのファイル名と、シナリオ実行指示と、シナリオ実行タイミングとを入力する。シナリオ実行部542は、シナリオ実行タイミングにおいて記憶部51からシナリオファイルを読み出し、読み出したシナリオファイルに記述されたシナリオを実行する(ステップS160)。
【0053】
図7は、操作手順データ編集画面を示す図である。ユーザーがシナリオ生成装置1の入力部11により、ファイル名入力フィールドF1に操作手順データのファイル名を設定し、読込ボタンB1を選択すると、データ編集部142は、指定されたファイル名の操作手順データを読み出す。データ編集部142は、操作手順データの各操作データの正常性を確認し、正常と判断された操作データを並べてデータ表示領域A1に表示する。ユーザーは、入力部11により、データ表示領域A1における編集対象のセルを選択し、選択したセルに対して情報の入力や削除などの編集を行う。ユーザーが入力部11により保存ボタンB2を選択することにより、データ編集部142は、編集された操作手順データを記憶部13に記憶する。ユーザーが入力部11によりシナリオ生成ボタンB3を選択することにより、シナリオ生成部143は、編集された操作手順データを用いてシナリオファイルを生成する。
【0054】
図8は、シナリオ生成装置1によるシナリオファイル生成処理を示すフロー図である。
図8は、
図6のステップS130の詳細な処理を示す。まず、シナリオ生成部143は、変数iに初期値1を設定する(ステップS210)。シナリオ生成部143は、操作手順データからi行目の操作データを読み出す(ステップS220)。読み出したi行目の操作データを、操作データ(i)と記載する。シナリオ生成部143は、操作データ(i)が空白行であるか否かを判定する(ステップS230)。シナリオ生成部143は、空白行ではないと判定した場合、操作データ(i)に必須カラムの情報が設定されているか否かを判断する(ステップS240)。必須カラムの情報は、実行順情報及びノード名情報である。
【0055】
シナリオ生成部143は、必須カラムの情報が設定されていると判断した場合(ステップS240:YES)、操作データ(i)に対応したノード情報を生成し、シナリオファイルに追加する。操作データ(i)に対応して追加するノード情報を追加ノード情報(i)と記載する。シナリオ生成部143は、操作データ(i)から実行順情報を読み出し、追加ノード情報(i)に設定する(ステップS250)。
【0056】
シナリオ生成部143は、操作データ(i)に含まれるイベント、又は、イベントと詳細情報の少なくとも一部の情報との組み合わせに応じてノード種別を判断する(ステップS260)。シナリオ生成部143は、判断したノード種別を追加ノード情報(i)に設定する。シナリオ生成部143は、ノード種別に基づいて、プロパティ情報に含まれるパラメータの種類を決定する(ステップS270)。なお、全てのプロパティ情報には、ノード名情報とコメント情報が含まれる。
【0057】
シナリオ生成部143は、操作データ(i)からノード名情報を読み出し、追加ノード情報(i)に含まれるプロパティ情報に設定する(ステップS280)。さらに、シナリオ生成部143は、操作データ(i)に付加情報が設定されている場合、付加情報を追加ノード情報(i)に設定する(ステップS290)。すなわち、シナリオ生成部143は、操作データ(i)に付箋情報が設定されている場合、付箋情報を追加ノード情報(i)に設定する。また、シナリオ生成部143は、操作データ(i)にコメント情報が設定されている場合、追加ノード情報(i)に含まれるプロパティ情報にコメント情報を設定する。
【0058】
シナリオ生成部143は、追加ノード情報(i)に含まれるプロパティ情報の各パラメータに、操作データ(i)の詳細情報から得られるパラメータ値を設定する(ステップS300)。プロパティ情報に含まれる各パラメータの種類と、操作データ(i)の詳細情報とのマッピングは、ノード種別に応じて予め決められている。なお、プロパティ情報のパラメータに対応した情報が操作データ(i)に設定されていない場合、シナリオ生成部143は、そのパラメータに値を設定しないか、空白を設定する。操作データ(i)に、プロパティ情報のパラメータにマッピングされない情報が含まれていてもよい。
【0059】
シナリオ生成部143は、操作データ(i)に必須カラムの情報が一部又は全て設定されていないと判断した場合(ステップS240:NO)、または、ステップS300の処理の後、変数iに1を加算する(ステップS310)。シナリオ生成部143は、ステップS220からの処理を繰り返す。そして、シナリオ生成部143は、操作データ(i)が空白行であると判断した場合(ステップS230:YES)、実行順情報が示す実行順に並べた追加ノード情報を含むシナリオファイルを生成する(ステップS320)。
【0060】
図8のステップS260及びステップS270の処理の詳細を説明する。シナリオ生成部143は、イベント情報の設定内容によって、又は、イベント情報の設定内容と対象アプリケーション情報、対象ウィンドウ情報、付加情報1~付加情報Nのうち一以上の設定の有無又は設定内容との組み合わせによって、ノード種別を決定する。シナリオ生成部143は、決定したノード種別によって、対象アプリケーション情報、対象ウィンドウ情報、付加情報1~付加情報Nそれぞれをとり得るか否か、また、とり得る場合は対応するプロパティ情報のパラメータを決定する。以下にこの例を説明する。
【0061】
シナリオ生成部143は、操作データのイベント情報がグループを示す場合、ノード種別をグループノードと判定する。シナリオ生成部143は、イベント情報がグループの場合、対象アプリケーション情報、対象ウィンドウ情報、付加情報1~付加情報Nを使用しないと判断する。シナリオ生成部143は、ノード名情報及びコメント情報を含み、パラメータを含まないプロパティ情報を使用すると判定する。
【0062】
シナリオ生成部143は、イベント情報に「起動」が設定されている場合、ノード種別を起動ノードと判定する。起動ノードは、付加情報1に設定されている実行ファイル名の実行ファイルを、付加情報2以降に設定されている引数を用いて起動する操作を行う。シナリオ生成部143は、付加情報1に設定されている実行ファイル名と、付加情報2、付加情報3、…に設定されている引数とを設定する各パラメータを含んだプロパティ情報を使用すると判定する。なお、付加情報2以降は省略可能である。
【0063】
シナリオ生成部143は、イベント情報に「開く」が設定されている場合、ノード種別を開くノードと判定する。開くノードは、付加情報1に設定されているファイル名のファイルを開く操作を行う。シナリオ生成部143は、付加情報1に設定されているファイル名を設定するパラメータを含んだプロパティ情報を使用すると判定する。
【0064】
シナリオ生成部143は、イベント情報に「クリップボード」が設定されている場合、ノード種別をクリップボードノードと判定する。クリップボードノードは、付加情報1に設定されている文字列をクリップボードにコピーする操作である。シナリオ生成部143は、付加情報1に設定されている文字列を設定するパラメータを含んだプロパティ情報を使用すると判定する。
【0065】
シナリオ生成部143は、イベント情報に「コピー」が設定され、対象アプリケーション情報に特定のアプリケーションのアプリ識別情報が設定されている場合、ノード種別をスクリプトコピーノードと判定する。アプリ識別情報は、アプリケーションを特定する情報である。スクリプトコピーノードは、アプリ識別情報により特定されるアプリケーションを実行するシナリオ実行装置5の機能X実行部543が表示部53に表示している画面内の情報を、スクリプト言語などによりコピーする操作を行う。付加情報1~付加情報nには、画面内においてコピーを行う対象の位置を示す情報が設定される。例えば、表計算アプリケーションの場合、付加情報1はファイル名を示し、付加情報2はファイル中のシート名を示し、付加情報3はシート内のセルの位置を示す。付加情報1~付加情報nが省略された場合は、スクリプトコピーノードの前にアクティブな位置が引き継がれる。シナリオ生成部143は、付加情報1~nのそれぞれの値を設定する各パラメータを含んだプロパティ情報を使用すると判定する。
【0066】
シナリオ生成部143は、イベント情報に「コピー」が設定され、対象ウィンドウ情報にウィンドウ識別情報が設定されている場合、ノード種別をエミュレーションコピーノードと判定する。エミュレーションコピーノードは、ウィンドウ識別情報により特定されるウィンドウに対してエミュレーションでコピーを指示するキー操作を行う。シナリオ生成部143は、対象ウィンドウ情報が示すウィンドウ識別情報を設定するパラメータを含んだプロパティ情報を使用すると判定する。
【0067】
シナリオ生成部143は、イベント情報に「貼り付け」が設定され、対象アプリケーション情報に特定のアプリケーションのアプリ識別情報が設定されている場合、ノード種別をスクリプト貼り付けノードと判定する。スクリプト貼り付けノードは、アプリ識別情報により特定されるアプリケーションを実行するシナリオ実行装置5の機能X実行部543が表示部53に表示している画面内に、スクリプト言語などにより貼り付けの操作を行う。付加情報1~付加情報nには、その画面内において貼り付けを行う対象の位置を示す情報が設定される。例えば、表計算アプリケーションの場合、この位置は、上記のスクリプトコピーノードの場合と同様に示される。シナリオ生成部143は、付加情報1~付加情報nそれぞれの値を設定する各パラメータを含んだプロパティ情報を使用すると判定する。
【0068】
シナリオ生成部143は、イベント情報に「貼り付け」が設定され、対象ウィンドウ情報にウィンドウ識別情報が設定されている場合、ノード種別をエミュレーション貼り付けノードと判定する。エミュレーション貼り付けノードは、ウィンドウ識別情報により特定されるウィンドウに対してエミュレーションで貼り付けを指示するキー操作を行う。シナリオ生成部143は、対象ウィンドウ情報が示すウィンドウ識別情報を設定するパラメータを含んだプロパティ情報を使用すると判定する。
【0069】
シナリオ生成部143は、イベント情報に「選択」が設定されている場合、ノード種別を選択ノードと判定する。選択ノードは、特定のアプリケーションが表示部53に表示している画面内において特定の位置を選択する操作を行う。付加情報1~付加情報nには、その画面内において選択する対象の位置を示す情報が設定される。例えば、表計算アプリケーションの場合、この位置は、上記のスクリプトコピーノードの場合と同様に示される。シナリオ生成部143は、付加情報1~付加情報nそれぞれの値を設定する各パラメータを含んだプロパティ情報を使用すると判定する。
【0070】
シナリオ生成部143は、イベント情報に「キー入力」が設定されている場合、ノード種別をキー入力ノードと判定する。キー入力ノードは、対象ウィンドウ情報に設定されているウィンドウ識別情報により特定されるウィンドウに対して、指定されたキーをエミュレーションで入力するキー操作を行う。シナリオ生成部143は、入力するキーが、付加情報1~付加情報nに設定されていると判断する。単独のキー入力の場合は付加情報1に入力するキーを設定し、複合キー入力の場合は付加情報1に加えて、付加情報2~付加情報nを使用する。シナリオ生成部143は、対象ウィンドウ情報と、付加情報1~付加情報nとのそれぞれの値と、画面上の入力位置とを設定する各パラメータを含んだプロパティ情報を使用すると判定する。
【0071】
図9は、
図5の操作手順データに基づき生成されたシナリオの例を示す図である。
シナリオ生成部143は、操作手順データの1行目の操作データを操作データ(1)とする。シナリオ生成部143は、操作データ(1)に実行順情報(No)及びノード名情報が設定されているため、シナリオファイルに追加ノード情報(1)を追加する(
図8のステップS240:YES)。シナリオ生成部143は、操作データ(1)の実行順情報(No)を追加ノード情報(1)に設定する(
図8のステップS250)。シナリオ生成部143は、操作データ(1)のイベント情報にグループが設定されているため、ノード種別をグループノードと判断する(
図8のステップS260)。シナリオ生成部143は、グループノードのプロパティ情報にはパラメータが含まれないと判断する(
図8のステップS270)。シナリオ生成部143は、操作データ(1)のノード名情報及びコメント情報を、追加ノード情報(1)のプロパティ情報に設定し、操作データ(1)の付箋情報を追加ノード情報(1)に設定する(
図8のステップS280、ステップS290)。
【0072】
次に、シナリオ生成部143は、操作手順データの2行目の操作データを操作データ(2)とする。シナリオ生成部143は、操作データ(2)に実行順情報(No)及びノード名情報が設定されているため、シナリオファイルに追加ノード情報(2)を追加する(
図8のステップS240:YES)。シナリオ生成部143は、操作データ(2)の実行順情報(No)を追加ノード情報(2)に設定する(
図8のステップS250)。シナリオ生成部143は、操作データ(2)のイベント情報に「キー入力」が設定されているため、ノード種別をキー入力ノードと判断する(
図8のステップS260)。シナリオ生成部143は、キー入力ノードのプロパティ情報に、ウィンドウ識別名、キー操作1、2、3、…、入力位置のパラメータが含まれると判断する(
図8のステップS270)。シナリオ生成部143は、操作データ(2)のノード名情報及びコメント情報を追加ノード情報(2)のプロパティ情報に設定する(
図8のステップS280、ステップS290)。シナリオ生成部143は、操作データ(2)の対象ウィンドウ情報(ウィンドウタイトル)がプロパティ情報のウィンドウ識別名に対応し、付加情報1のみに値が設定されている場合は操作データ(2)の付加情報1が、プロパティ情報のキー操作1、2に対応するというマッピングルールに従って、操作データ(2)の設定内容を、プロパティ情報の各パラメータの値として設定する(
図8のステップS300)。具体的には、シナリオ生成部143は、操作データ(2)の付加情報1の設定値「Down」に基づき、プロパティ情報のキー操作1に「キーボード[Down]をDown」(「Down」キーを押下する操作を示す値)を設定し、プロパティ情報のキー操作2に「キーボード[Down]をUp」(「Down」キーから指を離す操作を示す値)を設定する。
【0073】
次に、シナリオ生成部143は、操作手順データの3行目の操作データを操作データ(3)とする。シナリオ生成部143は、操作データ(3)に実行順情報(No)及びノード名情報が設定されているため、シナリオファイルに追加ノード情報(3)を追加する(
図8のステップS240:YES)。シナリオ生成部143は、操作データ(3)の実行順情報(No)を追加ノード情報(3)に設定する(
図8のステップS250)。シナリオ生成部143は、操作データ(3)のイベント情報に「コピー」が設定され、対象アプリケーション情報(アプリケーション)に「表計算アプリE」が設定されているため、ノード種別をスクリプトコピーノードと判断する(
図8のステップS260)。シナリオ生成部143は、スクリプトコピーノードのプロパティ情報に、アプリケーション、ウィンドウ識別名、ファイル名、シート、セルのパラメータが含まれると判断する(
図8のステップS270)。シナリオ生成部143は、操作データ(3)のノード名情報及びコメント情報を追加ノード情報(3)のプロパティ情報に設定し、操作データ(3)の付箋情報を追加ノード情報(3)に設定する(
図8のステップS280、ステップS290)。シナリオ生成部143は、操作データ(3)の対象アプリケーション情報(アプリケーション)、対象ウィンドウ情報(ウィンドウタイトル)、付加情報1、付加情報2、付加情報3がそれぞれ、プロパティ情報のアプリケーション、ウィンドウ識別名、ファイル名、シート、セルに対応するというマッピングルールに従って、操作データ(3)の設定内容を、プロパティ情報の各パラメータの値として設定する(
図8のステップS300)。
【0074】
次に、シナリオ生成部143は、操作手順データの4行目の操作データを操作データ(4)とする。シナリオ生成部143は、操作データ(4)に実行順情報(No)及びノード名情報が設定されているため、シナリオファイルに追加ノード情報(4)を追加する(
図8のステップS240:YES)。シナリオ生成部143は、操作データ(4)の実行順情報(No)を追加ノード情報(4)に設定する(
図8のステップS250)。シナリオ生成部143は、操作データ(4)のイベント情報にグループが設定されているため、ノード種別をグループノードと判断する(
図8のステップS260)。シナリオ生成部143は、操作データ(4)のノード名情報及びコメント情報を追加ノード情報(4)のプロパティ情報に設定する(
図8のステップS280、ステップS290)。
【0075】
次に、シナリオ生成部143は、操作手順データの5行目の操作データを操作データ(5)とする。シナリオ生成部143は、操作データ(5)にノード名情報が設定されていないため、ノード情報を生成しないと判断する(
図8のステップS240:NO)。
【0076】
次に、シナリオ生成部143は、操作手順データの6行目の操作データを操作データ(6)とする。シナリオ生成部143は、操作データ(6)に実行順情報(No)及びノード名情報が設定されているため、シナリオファイルに追加ノード情報(6)を追加する(
図8のステップS240:YES)。シナリオ生成部143は、操作データ(6)の実行順情報(No)を追加ノード情報(6)に設定する(
図8のステップS250)。シナリオ生成部143は、操作データ(6)のイベント情報に「貼り付け」が設定され、対象アプリケーション情報(アプリケーション)には特定の「表計算アプリE」ではないアプリケーションが設定されているため、ノード種別をエミュレーション貼り付けノードと判断する(
図8のステップS260)。シナリオ生成部143は、エミュレーション貼り付けノードのプロパティ情報に、ウィンドウ識別名のパラメータが含まれると判断する(
図8のステップS270)。シナリオ生成部143は、操作データ(6)のノード名情報及びコメント情報を追加ノード情報(6)のプロパティ情報に設定する(
図8のステップS280、ステップS290)。シナリオ生成部143は、操作データ(6)の対象ウィンドウ情報(ウィンドウタイトル)を、プロパティ情報のウィンドウ識別名のパラメータの値として設定する(
図8のステップS300)。
【0077】
シナリオ生成部143は、操作手順データの7行目以降の操作データについて、上記と同様の処理を行う。
【0078】
図10は、シナリオ実行装置5によるシナリオ表示画面生成処理を示すフロー図である。
図10は、
図6のステップS140において表示される画面データの生成処理を示す。まず、シナリオ編集部541は、開始ノードのシンボルをシナリオ表示画面の所定位置に配置する(ステップS410)。シナリオ編集部541は、変数jに初期値1を設定する(ステップS420)。シナリオ編集部541は、シナリオからj番目のノード情報を読み出す(ステップS430)。シナリオ編集部541は、ノード情報が読み出されたか否かを判定する(ステップS440)。シナリオ編集部541は、ノード情報が読み出されたと判定した場合(ステップS440:YES)、ステップS450の処理を行う。読み出されたj番目のノード情報を表示ノード情報(j)と記載する。
【0079】
シナリオ編集部541は、表示ノード情報(j)から実行順情報を読み出す(ステップS450)。シナリオ編集部541は、実行順情報が示す階層の一つ上の階層を表すノードシンボル内の最後を、配置位置と決定する(ステップS460)。シナリオ編集部541は、決定した追加位置に、表示ノード情報(j)に含まれるプロパティ情報から読み出したノード名情報を表示するノードシンボルをシナリオ表示画面に配置する(ステップS470)。シナリオ編集部541は、表示ノード情報(j)に設定されているノード種別に対応したデザインのノードシンボルを用いる。追加されたノードシンボルを追加シンボルと記載する。シナリオ編集部541は、表示ノード情報(j)に付箋情報が設定されている場合、追加シンボルに付箋情報を対応付けてシナリオ表示画面に配置する(ステップS480)。
【0080】
シナリオ編集部541は、変数jに1を加算する(ステップS490)。シナリオ編集部541は、ステップS430からの処理を繰り返す。そして、シナリオ編集部541は、ノード情報が読み出されなかったと判断した場合(ステップS440:NO)、シナリオの最後に終了ノードのノードシンボルを配置し、さらに、ノードシンボル間に実行順情報に基づく矢印の表示をシナリオ表示画面に配置する(ステップS500)。シナリオ編集部541は、生成したシナリオ画面を表示する。
【0081】
図11は、
図9に示すシナリオファイルの表示例を示す図である。
図11に示すシナリオ作成画面600は、シナリオ作成領域610と、ライブラリ表示領域620とを有する。シナリオ作成領域610は、ノードの実行順を指定する領域である。ライブラリ表示領域620は、ユーザー指定により利用可能なノードのリストをノード名により表示する領域である。表示ノード情報(j)に対応したノードシンボルをノードシンボルP-jと記載する。
【0082】
シナリオ編集部541は、最上位階層のノードを表すノードシンボルP-0の前に開始ノードシンボルPsを配置する(
図10のステップS410)。表示ノード情報(1)の実行順情報は「1」であり、ノード種別は「グループ」である。シナリオ編集部541は、実行順情報「1」の一つ上の階層は最上位階層であり、最上位階層にはまだノードシンボルが配置されていないため、ノードシンボルP-0の先頭にグループを表すノードシンボルP-1を配置する(
図10のステップS470)。シナリオ編集部541は、ノードシンボルP-1に、表示ノード情報(1)のプロパティ情報に設定されているノード名情報を表示し、表示ノード情報(1)に設定されている付箋情報を、ノードシンボルP-1に対応付けて配置する(
図10のステップS480)。
【0083】
表示ノード情報(2)の実行順情報は「1-1」であり、ノード種別は「キー入力」である。シナリオ編集部541は、実行順情報「1-1」の一つ上の階層は実行順情報「1」であり、実行順情報「1」の表示ノード情報(1)に対応したノードシンボルP-1にはまだノードシンボルが配置されていないため、ノードシンボルP-1内の先頭に操作を表すノードシンボル(2)を配置する(
図10のステップS470)。シナリオ編集部541は、ノードシンボルP-2に、表示ノード情報(2)のプロパティ情報に設定されているノード名情報を表示する。
【0084】
表示ノード情報(3)の実行順情報は「1-2」であり、ノード種別は「スクリプトコピー」である。シナリオ編集部541は、実行順情報「1-2」の一つ上の階層は実行順情報「1」であり、実行順情報「1」の表示ノード情報(1)に対応したノードシンボルP-1にはノードシンボルP-2が配置されているため、ノードシンボルP-1内のノードシンボルP-2の次に、操作を表すノードシンボルP-3を配置する(
図10のステップS470)。シナリオ編集部541は、ノードシンボルP-3に、表示ノード情報(3)のプロパティ情報に設定されているノード名情報を表示し、表示ノード情報(3)に設定されている付箋情報を、ノードシンボルP-3に対応付けて配置する(
図10のステップS480)。
【0085】
表示ノード情報(4)の実行順情報は「2」であり、ノード種別は「グループ」である。シナリオ編集部541は、実行順情報「2」の一つ上の階層は最上位階層であり、最上位階層のノードシンボルP-0にはノードシンボルP-1が配置されているため、ノードシンボルP-1内のノードシンボルP-1の次に、グループを表すノードシンボルP-4を配置する(
図10のステップS470)。シナリオ編集部541は、ノードシンボルP-4に、表示ノード情報(4)のプロパティ情報に設定されているノード名情報を表示する。
【0086】
表示ノード情報(5)の実行順情報は「2-2」であり、ノード種別は「エミュレーション貼り付け」である。シナリオ編集部541は、実行順情報「2-2」の一つ上の階層は実行順情報「2」であり、実行順情報「2」の表示ノード情報(4)に対応したノードシンボルP-4にはまだノードシンボルが含まれていないため、ノードシンボルP-4の先頭に、操作を表すノードシンボルP-5を配置する(
図10のステップS470)。シナリオ編集部541は、ノードシンボルP-5に、表示ノード情報(5)のプロパティ情報に設定されているノード名情報を表示する。
【0087】
シナリオ編集部541は、上記の処理を繰り返す。そして、シナリオ編集部541は、ノード情報が読み出されなかったと判断した場合(
図10のステップS440:NO)、ノードシンボルP-0の次に終了ノードのノードシンボルを配置し、さらに、ノードシンボル間に実行順情報に基づく矢印の表示をシナリオ表示画面に配置する(
図10のステップS500)。シナリオ編集部541は、生成したシナリオ画面を表示する。
【0088】
ユーザーがマウス等の入力部52によりノードのプロパティ入力を指示した場合、シナリオ編集部541は、プロパティ画面を表示部53に表示する。例えば、プロパティ入力の指示は、ノードシンボルの表示上でダブルクリックする操作などである。
【0089】
図12は、プロパティ画面の表示例を示す図である。プロパティ画面により、ノード名情報、コメント情報、操作対象情報、各種パラメータなどを表示及び入力する。
図12は、ノード種別がキー入力である場合のプロパティ画面650の表示例を示している。シナリオ編集部541は、選択されたノードシンボルP-2に対応したノード情報のプロパティ情報に設定されている値をプロパティ画面650にデフォルトで表示する。
図12では、表示フィールド651にノード名情報が表示され、表示フィールド652にコメント情報が表示され、表示フィールド653にウィンドウ識別名が表示され、表示フィールド654にキー操作1、2、3、…が表示される。表示エリア655には、入力位置の値が表示されるが、プロパティ情報の入力位置には値が設定されていないために、
図12ではデフォルト値が表示されている。
【0090】
ユーザーは、必要に応じて入力部52によりプロパティ画面650に設定値を入力する。例えば、ユーザーが入力部52によりボタン661をクリックした後、表示部53に表示されている表示ウィンドウをクリックすることにより、クリックされた表示ウィンドウのウィンドウ識別名に表示フィールド653の内容が更新される。また、ユーザーは、プルダウンメニューによる選択や表示フィールドへの入力により、入力するキーやボタン、画面上の入力位置などを設定する。ユーザーが入力部52によりOKボタンをクリックするなどの保存操作を行うと、シナリオ編集部541は、選択されたノードシンボルに対応したノード情報のプロパティ情報に、プロパティ画面650において入力された設定値を設定する。
【0091】
ユーザーは、ノードを追加する場合、マウス等の入力部52により、ライブラリ表示領域620に表示されるノード名の一覧の中から、追加するノードのノード名を選択し、選択した追加ノードを、シナリオ作成領域610までドラッグする。これにより、シナリオ編集部541は、シナリオ作成領域610におけるドラッグの終了位置に、追加ノードのシンボルを追加表示する。このようにして、シナリオ生成装置1が操作手順データに基づいて生成したシナリオファイルに対してノードを追加することができる。
【0092】
また、ユーザーは、現在表示されているシナリオに他のシナリオを取り込む際には、入力部52により、追加したい他のシナリオのシナリオ名と、シナリオ作成領域610に表示されているシナリオにおける追加位置を入力する。これによりシナリオ編集部541は、指定された他のシナリオを、現在表示されているシナリオの追加位置に追加する。また、シナリオ生成装置1が操作手順データに基づいて生成したシナリオファイルや、そのシナリオファイルが示すシナリオ内の一部を切り出してシナリオファイルとして保存しておくことにより、保存しておいたそれらシナリオファイルをサブルーチンとして他のシナリオファイルに取り込むことができる。
【0093】
以上説明したシナリオ生成装置1によれば、業務分析ツールや可視化ツールが生成した操作手順データを利用して、シナリオを自動生成又は半自動生成することができる。シナリオの半自動生成とは、ユーザーが最初からシナリオを生成する必要なく、情報の一部を補足すればよい程度までにシナリオが生成されることである。
【0094】
BPRツールやBPMツールには、RPAへ業務を置き換える業務改善を提案する機能が備わりつつあるが、置き換え対象の業務のRPAのシナリオは、人手によって作成されていた。また、BPRツールによって、業務改善の提案の記述形式は異なっていた。そこで、本実施形態の操作手順データを利用することにより、BPRツールやBPMツールに依存することなく、従来人手で行っていた業務をRPAに置き換えるためのシナリオ生成を支援することが可能となる。よって、RPAツールのシナリオ作成にかかる人的コストや時間的コストをさらに低減することが可能となる。
【0095】
また、操作手順データを、一般的な表計算アプリケーションにより編集可能なデータ形式とすることにより、シナリオ作成の知識がないユーザーであっても、BPRツールやBPMツールが生成した操作手順データを簡易に編集可能である。シナリオ生成装置1は、編集後の操作手順データからシナリオ生成するため、シナリオ作成にかかるコストをさらに低減することが可能となる。
【0096】
BPMツールやBPRツールの使用者は、業務分析を専門としているが、RPAシナリオ作成には慣れていない場合も多い。本実施形態によれば、BPMツールやBPRツールが分析結果として操作手順データを生成したり、BPMツールやBPRツールの使用者が分析結果に基づいて操作手順データを生成したりすることによって、その操作手順データからRPAのシナリオを生成し、シナリオ作成者に渡すことが可能となる。シナリオ作成者は、最初からシナリオを作成しなくても、業務分析結果に基づいたシナリオを効率的に作成可能となる。
【0097】
操作手順データのタイトル行には、RPAのシナリオにおいて使用されている「ノード名」などのカラム名を、RPAの知識がないユーザーにも理解りやすいようなカラム名にすることも可能である。よって、RPAの知識がないユーザーでも、操作手順データを編集しやすくすることができる。また、操作手順データの一行がRPAのノードとノードに設定するパラメータとの組に対応しているため、BPMツールやBPRツールの利用者でも、操作手順データを理解しやすい。また、実行順情報を階層化することにより、関連操作をグループ化することが可能となる。よって、全体としての業務の流れを把握しやすくなる。また、操作手順データにおいてもグループ化された処理を詳細に確認可能とすることができる。また、BPMツールやBPRツールから出力された一つの業務を複数のノードをグループ化することにより、業務とRPAシナリオとの対比がしやすい。
【0098】
また、シナリオのノードは、OSやアプリケーションに対する一操作に対応するため、プログラミング言語やスクリプト言語でコードを作成するよりも簡単にシナリオが作成可能である。また、操作手順データの各行がノードに変換されるため、シナリオへの変換ミスが起こりにくい。また、付箋情報などの補足情報を用いることにより、シナリオ内のノードが、操作手順データ内のいずれかの操作データに対応するが把握しやすくなる。シナリオの正常性確認や、シナリオの変更を行う場合にも有用である。
【0099】
なお、上記では、一つの操作データが一つの操作に対応する場合について説明したが、一つの操作データが複数の操作に対応してもよい。また、上記では、一つの操作データが一つのノードに対応する場合について説明したが、一つの操作データが複数のノードに対応してもよい。
【0100】
また、操作手順データにより自動化したい部分をいくつかの機能単位に分けてシナリオを生成した後に、複数のシナリオを連結することも可能となる。シナリオのサブルーチン化や、他のシナリオを作成中のシナリオに組み込むインポート機能を使用することで、複数シナリオの連結が可能となるため、大規模な処理を確実に組み上げることができる。
【0101】
以上説明した実施形態によれば、シナリオ生成装置は、取得部と、シナリオ生成部とを有する。取得部は、操作の実行順を示す実行順情報と、ユーザーインタフェースによる操作を表すノードの名称であるノード名とを含む操作データを並べた操作手順データを取得する。シナリオ生成部は、操作手順データに含まれる各操作データに対応するノードであって、対応する操作データに含まれるノード名が付与されたノードを実行順情報の順に並べて表されるシナリオを、シナリオ実行装置において実行可能な記述形式を用いて記述したシナリオファイルを生成する。
【0102】
操作データは、操作の種別を示すイベントを含んでもよい。シナリオ生成部は、操作データに含まれるイベントに応じてノードの種別を判断する。
【0103】
操作データは、イベントが表す操作の対象を示す操作対象情報と、イベントが表す操作をシナリオ実行装置が実行する際に用いられる付加情報との一方又は両方を示す詳細情報をさらに含んでもよい。シナリオ生成部は、操作データに含まれるイベントと詳細情報との組み合わせに応じてノード種別を判断する。
【0104】
シナリオ生成部は、ノードに付加され、当該ノードに関する設定を表すプロパティ情報に詳細情報から得られる情報を設定してもよい。
【0105】
シナリオ生成装置であって、シナリオ表示部をさらに備えてもよい。シナリオ表示部は、例えば、実施形態のシナリオ編集部541である。シナリオ表示部は、操作データに対応して生成されるノードを表すシンボルと、ノードの実行順を表すシンボルとを表示する。
【0106】
操作データは、当該操作データが表す操作の実行には用いられない補足情報を含んでもよい。シナリオ表示部は、操作データに対応して生成されるノードを表すシンボルに、当該操作データに含まれる補足情報を付加して表示する。
【0107】
実行順情報は、階層化された実行順を表してもよい。シナリオ表示部は、上位階層の実行順が同じ操作データに対応して生成されるノードを表すシンボルを、上位階層を表すノードのシンボル内に表示する。
【0108】
シナリオ表示部は、操作データにグループを示す情報が含まれている場合、当該操作データに対応して生成されるノードを表すシンボルに、当該操作データの下位階層の操作データに対応して生成されるノードを表すシンボルを含めて表示してもよい。
【0109】
操作手順データは、操作の実行順を示す実行順情報と、ユーザーインタフェースによる操作を表すノードの名称であるノード名と、操作の実行には用いられない補足情報と、操作の種別を示すイベントと、操作の対象を示す操作対象情報と、操作の実行の際に用いられる付加情報とのそれぞれを設定するための欄を第一の方向に並べた操作データを、第二の方向に一以上並べたデータであってもよい。実施形態においては、第一の方向が横方向、第二の方向が縦方向であるが、第一の方向が縦方向、第二の方向が横方向であってもよい。また、操作手順データは、実行順情報と、ノード名と、補足情報と、イベントと、操作対象情報と、付加情報とのそれぞれの識別するための情報識別名を含んでもよい。情報識別名は予め決められた一以上の情報識別名から任意に選択されてもよい。
【0110】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0111】
1…シナリオ生成装置
5…シナリオ実行装置
11…入力部
12…表示部
13…記憶部
14…処理部
51…記憶部
52…入力部
53…表示部
54…処理部
100…RPAシステム
141…取得部
142…データ編集部
143…シナリオ生成部
541…シナリオ編集部
542…シナリオ実行部
543a…機能A実行部
543b…機能B実行部
543c…機能C実行部