(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024007276
(43)【公開日】2024-01-18
(54)【発明の名称】シナリオ管理装置、シナリオ管理プログラム、記録媒体およびシナリオ管理方法
(51)【国際特許分類】
G06F 3/04847 20220101AFI20240111BHJP
G06F 8/30 20180101ALI20240111BHJP
G06Q 10/10 20230101ALI20240111BHJP
【FI】
G06F3/04847
G06F8/30
G06Q10/10
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022108675
(22)【出願日】2022-07-05
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】100105935
【弁理士】
【氏名又は名称】振角 正一
(74)【代理人】
【識別番号】100136836
【弁理士】
【氏名又は名称】大西 一正
(72)【発明者】
【氏名】須田 雄士
(72)【発明者】
【氏名】木原 一挙
【テーマコード(参考)】
5B376
5E555
5L049
【Fターム(参考)】
5B376BC12
5B376BC13
5B376BC14
5B376BC15
5B376BC24
5B376BC43
5E555AA09
5E555AA79
5E555BA02
5E555BB02
5E555BC04
5E555BC13
5E555BC18
5E555BE10
5E555DD11
5E555EA19
5E555FA00
5L049AA11
(57)【要約】
【課題】ユーザが所望のアクティビティをシナリオから抽出するにあたって、当該アクティビティで使用される変数の把握や変数への設定値の入力を簡単に実行可能とする。
【解決手段】複数のアクティビティA11~A16、A21~A26のうちから抽出対象となるアクティビティA12~A15が指定されると、当該抽出対象となるアクティビティを一括して実行するためのサブシナリオAsがサブシナリオ作成部32によって定義される。この際、サブシナリオAsで使用される変数であってシナリオSmにおいて抽出対象のアクティビティA12~A15より前に実行されるアクティビティA11で宣言される変数が、入力パラメータに決定される。そして、シナリオSmで使用されるサブシナリオAsの入力パラメータarg1に対する設定値の入力を受け付けるメインシナリオ画面Dmがディスプレイ243に表示される。
【選択図】
図4B
【特許請求の範囲】
【請求項1】
他のアプリケーションプログラムに対する操作を自動化するためのシナリオであって、前記操作を示す複数のアクティビティを含むシナリオを管理するシナリオ管理装置であって、
前記複数のアクティビティのうちから抽出対象となるアクティビティを指定する抽出対象指定を受け付ける指定受付部と、
前記指定受付部によって受け付けられた前記抽出対象となるアクティビティを一括して実行するための一括アクティビティを定義する一括アクティビティ作成部と、
前記一括アクティビティで使用される変数であって前記シナリオにおいて前記抽出対象となるアクティビティより前に実行されるアクティビティで宣言される変数を、入力パラメータとして決定するパラメータ決定部と、
前記シナリオで使用される前記一括アクティビティの前記入力パラメータに対する設定値の入力を受け付ける画面を表示するシナリオ表示部と、
を備える、シナリオ管理装置。
【請求項2】
前記アクティビティで宣言される変数は、当該変数の有効な範囲であるスコープを有し、
前記シナリオ表示部は、前記一括アクティビティをスコープに含む変数を、前記入力パラメータに対する前記設定値の候補として示す、請求項1に記載のシナリオ管理装置。
【請求項3】
前記パラメータ決定部は、前記抽出対象となるアクティビティの実行によって実体値が取得される変数であって、前記シナリオにおいて前記抽出対象となるアクティビティより後に実行されるアクティビティで使用される変数を、出力パラメータとして決定し、
前記一括アクティビティに前記出力パラメータとして決定される前記変数の実体値を返す終了アクティビティを追加し、
前記一括アクティビティが実行されると、前記一括アクティビティは、前記出力パラメータの実体値を出力する、請求項1に記載のシナリオ管理装置。
【請求項4】
前記パラメータ決定部は、前記出力パラメータとして決定される前記変数の前記実体値の型を、前記出力パラメータの型として前記実体値の型に決定する、請求項3に記載のシナリオ管理装置。
【請求項5】
前記パラメータ決定部は、前記抽出対象となるアクティビティの実行によって実体値が取得される変数であって、前記シナリオにおいて前記抽出対象となるアクティビティより後に実行されるアクティビティで使用される変数として、第一変数および第二変数が存在する場合、前記第一変数を第一出力パラメータに決定し、前記第二変数を第二出力パラメータに決定し、
前記一括アクティビティが実行されると、前記一括アクティビティは、前記第一出力パラメータの実体値と、前記第二出力パラメータの実体値とを出力し、
前記シナリオ表示部は、前記第一出力パラメータおよび前記第二出力パラメータを互いに独立して表示し、前記第一出力パラメータの編集および前記第二出力パラメータの編集を受け付ける画面を表示する、請求項3に記載のシナリオ管理装置。
【請求項6】
前記指定受付部が受け付けた入力に応じて、前記一括アクティビティ作成部によって定義された前記一括アクティビティを、当該一括アクティビティを定義するときに前記抽出対象として指定されたアクティビティに展開する一括アクティビティ展開部をさらに備える、請求項1に記載のシナリオ管理装置。
【請求項7】
前記指定受付部は、前記シナリオにおける前記抽出対象のアクティビティの存在範囲とは異なる複製範囲への前記一括アクティビティの複製を、当該指定受付部への入力に応じて実行する、請求項1に記載のシナリオ管理装置。
【請求項8】
一括アクティビティ定義部をさらに備え、
前記指定受付部は、前記一括アクティビティに含まれる変数あるいは実体値を前記入力パラメータに指定する入力パラメータ指定を受け付け、
前記一括アクティビティ定義部は、前記入力パラメータ指定に応じて前記一括アクティビティの前記入力パラメータを更新する、請求項1に記載のシナリオ管理装置。
【請求項9】
前記指定受付部において前記入力パラメータ指定で変数が指定されると、前記一括アクティビティ定義部は、前記入力パラメータ指定で指定された変数を前記入力パラメータとして定義する、請求項8に記載のシナリオ管理装置。
【請求項10】
前記指定受付部において前記入力パラメータ指定で実体値が指定されると、前記一括アクティビティ定義部は、前記入力パラメータ指定で指定された実体値に対応する変数として新変数を作成して、前記一括アクティビティにおいて当該実体値を前記新変数に置換するとともに前記新変数を前記入力パラメータとして定義する、請求項8に記載のシナリオ管理装置。
【請求項11】
一括アクティビティ定義部をさらに備え、
前記指定受付部は、前記一括アクティビティに含まれる変数あるいは実体値を前記出力パラメータに指定する出力パラメータ指定を受け付け、
前記一括アクティビティ定義部は、前記出力パラメータ指定に応じて前記一括アクティビティの前記出力パラメータを更新する、請求項3に記載のシナリオ管理装置。
【請求項12】
請求項1に記載のシナリオ管理装置としてコンピュータを機能させるシナリオ管理プログラム。
【請求項13】
請求項12に記載のシナリオ管理プログラムをコンピュータにより読み出し可能に記録する記録媒体。
【請求項14】
他のアプリケーションプログラムに対する操作を自動化するためのシナリオであって、前記操作を示す複数のアクティビティを含むシナリオを管理するシナリオ管理方法であって、
前記複数のアクティビティのうちから抽出対象となるアクティビティを指定する抽出対象指定を指定受付部により受け付ける工程と、
前記指定受付部によって受け付けられた前記抽出対象となるアクティビティを一括して実行するための一括アクティビティを定義する工程と、
前記一括アクティビティで使用される変数であって前記シナリオにおいて前記抽出対象となるアクティビティより前に実行されるアクティビティで宣言される変数を、入力パラメータに決定する工程と、
前記シナリオで使用される前記一括アクティビティの前記入力パラメータに対する設定値の入力を受け付ける画面を表示する工程と、
を備える、シナリオ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ユーザがコンピュータを用いて実行していた作業を自動化することでユーザの作業負担の軽減を図るRPA(Robotic Process Automation)技術に関する。
【背景技術】
【0002】
コンピュータによって動作するアプリケーション等を操作することでユーザが実行する作業を自動化するために、RPAを用いることができる。このRPAは、コンピュータによる処理の実行手順を示すシナリオ(「フロー」と称される場合もある)を実行することで、作業を自動化する。このシナリオは、コンピュータに実行させる処理をそれぞれ示す複数のアクティビティを組み合わせることで作成される。また、このようなシナリオを用いたRPAでは、シナリオを適宜編集したいといったニーズがある。これに対して特許文献1では、シナリオで使用する変数の設定値をカスタマイズすることで、シナリオを編集する技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、シナリオにおいては、シナリオの複数箇所や別のシナリオの任意の箇所で、同様の順序で配列されたアクティビティが実行される場合がある。このような場合には、当該順序で配列されたアクティビティをシナリオのある箇所から抽出してこれをシナリオの別の箇所に流用できると、シナリオを編集するユーザにとって便利である。ただし、抽出対象となるアクティビティがそれより前に宣言される変数を使用するアクティビティであると、ユーザは流用する別の箇所で当該アクティビティが所望の動作を実現するように当該変数を設定する必要がある。つまり、ユーザは、アクティビティを抽出するにあたって当該変数を把握しつつ当該変数に設定値を入力する必要がある。しかしながら、アクティビティで使用される変数の把握や変数への設定値の入力はユーザにとって必ずしも簡単ではなかった。
【0005】
この発明は上記課題に鑑みなされたものであり、ユーザが所望のアクティビティをシナリオから抽出するにあたって、当該アクティビティで使用される変数の把握や変数への設定値の入力を簡単に実行可能とすることを目的とする。
【課題を解決するための手段】
【0006】
本発明に係るシナリオ管理装置は、他のアプリケーションプログラムに対する操作を自動化するためのシナリオであって、操作を示す複数のアクティビティを含むシナリオを管理するシナリオ管理装置であって、複数のアクティビティのうちから抽出対象となるアクティビティを指定する抽出対象指定を受け付ける指定受付部と、指定受付部によって受け付けられた抽出対象となるアクティビティを一括して実行するための一括アクティビティを定義する一括アクティビティ作成部と、一括アクティビティで使用される変数であってシナリオにおいて抽出対象となるアクティビティより前に実行されるアクティビティで宣言される変数を、入力パラメータとして決定するパラメータ決定部と、シナリオで使用される一括アクティビティの入力パラメータに対する設定値の入力を受け付ける画面を表示するシナリオ表示部と、を備える。
【0007】
本発明に係るシナリオ管理プログラムは、上記のシナリオ管理装置としてコンピュータを機能させる。
【0008】
本発明に係る記録媒体は、上記のシナリオ管理プログラムをコンピュータにより読み出し可能に記録する。
【0009】
本発明に係るシナリオ管理方法は、他のアプリケーションプログラムに対する操作を自動化するためのシナリオであって、操作を示す複数のアクティビティを含むシナリオを管理するシナリオ管理方法であって、複数のアクティビティのうちから抽出対象となるアクティビティを指定する抽出対象指定を指定受付部により受け付ける工程と、指定受付部によって受け付けられた抽出対象となるアクティビティを一括して実行するための一括アクティビティを定義する工程と、一括アクティビティで使用される変数であってシナリオにおいて抽出対象となるアクティビティより前に実行されるアクティビティで宣言される変数を、入力パラメータに決定する工程と、シナリオで使用される一括アクティビティの入力パラメータに対する設定値の入力を受け付ける画面を表示する工程と、を備える。
【0010】
このように構成された本発明(シナリオ管理装置、シナリオ管理プログラム、記録媒体およびシナリオ管理方法)では、複数のアクティビティのうちから抽出対象となるアクティビティを指定する抽出対象指定が指定受付部によって受け付けられると、当該抽出対象となるアクティビティを一括して実行するための一括アクティビティが定義される。この際、一括アクティビティで使用される変数であってシナリオにおいて抽出対象となるアクティビティより前に実行されるアクティビティで宣言される変数が、入力パラメータに決定される。そして、シナリオで使用される一括アクティビティの入力パラメータに対する設定値の入力を受け付ける画面が表示される。したがって、ユーザは、表示された画面によって入力パラメータ(変数)を把握でき、さらに入力パラメータ(変数)に対して設定値を入力できる。こうして、ユーザが所望のアクティビティをシナリオから抽出するにあたって、当該アクティビティで使用される変数の把握や変数への設定値の入力を簡単に実行することが可能となる。
【発明の効果】
【0011】
以上のように、本発明によれば、ユーザが所望のアクティビティをシナリオから抽出するにあたって、当該アクティビティで使用される変数の把握や変数への設定値の入力を簡単に実行することが可能となっている。
【図面の簡単な説明】
【0012】
【
図1】本発明に係るシナリオ管理装置を備えたシナリオ管理システムの一例を示すブロック図。
【
図2】サブシナリオを作成するために演算部に構成される各機能部の一例を示すブロック図。
【
図3】サブシナリオの作成方法の一例を示すフローチャート。
【
図4A】
図3のフローチャートに基づき実行される処理の一例を示す図。
【
図4B】
図3のフローチャートに基づき実行される処理の一例を示す図。
【
図4C】
図3のフローチャートに基づき実行される処理の一例を示す図。
【
図4D】
図3のフローチャートに基づき実行される処理の一例を示す図。
【
図4E】
図3のフローチャートに基づき実行される処理の一例を示す図。
【
図5】サブシナリオ名称編集の一例を示すフローチャート。
【
図6A】
図5のフローチャートに基づき実行される処理の一例を示す図。
【
図6B】
図5のフローチャートに基づき実行される処理の一例を示す図。
【
図7】入力パラメータ追加の一例を示すフローチャート。
【
図8A】
図7のフローチャートに基づき実行される処理の一例を示す図。
【
図8B】
図7のフローチャートに基づき実行される処理の一例を示す図。
【
図8C】
図7のフローチャートに基づき実行される処理の一例を示す図。
【
図9A】
図7のフローチャートに基づき実行される処理の一例を示す図。
【
図9B】
図7のフローチャートに基づき実行される処理の一例を示す図。
【
図9C】
図7のフローチャートに基づき実行される処理の一例を示す図。
【
図10】出力パラメータ追加の一例を示すフローチャート。
【
図11A】
図10のフローチャートに基づき実行される処理の一例を示す図。
【
図11B】
図10のフローチャートに基づき実行される処理の一例を示す図。
【
図11C】
図10のフローチャートに基づき実行される処理の一例を示す図。
【
図11D】
図10のフローチャートに基づき実行される処理の一例を示す図。
【
図11E】
図10のフローチャートに基づき実行される処理の一例を示す図。
【
図11F】
図10のフローチャートに基づき実行される処理の一例を示す図。
【
図12】出力パラメータの型の管理の一例を示すフローチャート。
【
図13】
図12のフローチャートに基づき実行される処理の一例を示す図。
【
図14A】メインシナリオ画面およびサブシナリオ定義画面の間で表示する画面を切り換える構成を説明する図。
【
図14B】メインシナリオ画面およびサブシナリオ定義画面の間で表示する画面を切り換える構成を説明する図。
【
図15】ユーザ入力のアシスト動作の一例を示す図。
【発明を実施するための形態】
【0013】
図1は本発明に係るシナリオ管理装置を備えたシナリオ管理システムの一例を示すブロック図である。このシナリオ管理システム1は、サーバ11と、サーバ11のクライアントとして機能する端末装置2とを備える。サーバ11はコンピュータであり、HDD(Hard Disk Drive)あるいはSSD(Solid State Drive)等で構成されたストレージ部111を備え、ストレージ部111には、シナリオ管理プログラム12が保存されている。
【0014】
端末装置2は、RPAで使用されるシナリオを管理するためのコンピュータである。この端末装置2は、演算部21、メモリ部22、ストレージ部23、UI(User Interface)24、通信部25およびバス26を備え、演算部21、メモリ部22、ストレージ部23、UI24および通信部25の間における信号の送受信がバス26を介して実行される。
【0015】
演算部21は、CPU(Central Processing Unit)等のプロセッサであり、メモリ部22、ストレージ部23、UI24および通信部25を制御する。メモリ部22は、メインメモリおよびキャッシュメモリ等を有し、演算部21からの指示に基づきデータを揮発的に記憶し、演算部21は、メモリ部22から読み出したデータを用いて演算を実行する。
【0016】
ストレージ部23は、HDDおよびSSD等を有し、データを不揮発的に記憶する。UI24は、キーボード241およびマウス242等の入力機器と、ディスプレイ243等の出力機器とを有する。したがって、ユーザは、キーボード241およびマウス242を操作することで端末装置2に対する入力操作を実行でき、ディスプレイ243の表示を確認することでメモリ部22やストレージ部23に格納される各種データを確認できる。なお、入力機器と出力機器とを別体で構成する必要はなく、タッチパネルディスプレイによってこれらを一体的に構成してもよい。また、通信部25は、サーバ11との通信を実行する。この通信部25は、サーバ11からシナリオ管理プログラム12をダウンロードし、ストレージ部23は、当該シナリオ管理プログラム12を保存する。また、演算部21がシナリオ管理プログラム12を実行すると、シナリオ管理を実行するための
図2の各機能部が演算部21に構成される。
【0017】
ちなみに、端末装置2へのシナリオ管理プログラム12の提供態様は、サーバ11からのダウンロードに限られない。したがって、DVD(Digital Versatile Disc)といった光ディスクや、USB(Universal Serial Bus)メモリ等の他の記録媒体によって提供されてもよい。端末装置2は、これらの記録媒体から読み出したシナリオ管理プログラム12をストレージ部23に保存することができる。
【0018】
なお、本実施例において端末装置2が管理する、RPAで使用されるシナリオとは、本端末装置2のユーザもしくは他の人間が、シナリオ管理プログラム12以外のアプリケーションプログラムに対して実行する操作を、自動化するためのシナリオである。当該操作は、シナリオ管理プログラム12以外のアプリケーションプログラムから値を取得する操作と、値を処理する操作と、シナリオ管理プログラム12以外のアプリケーションプログラムに値を入力する操作と、を含む。シナリオ管理プログラム12以外のアプリケーションプログラムから値を取得する操作は、人間が、参照する情報をディスプレイ243等の出力機器から出力させるためにシナリオ管理プログラム12以外のアプリケーションプログラムを操作すること、を含む。また、シナリオ管理プログラム12以外のアプリケーションプログラムに値を入力する操作は、人間が、キーボード241やマウス242等の入力機器を用いてシナリオ管理プログラム12以外のアプリケーションプログラムに値が入力されるように操作することを含む。例えば、キーボード241を用いて値を直接入力することや、入力機器を用いてアプリケーションプログラムにより表示される選択肢から入力されるべき値を選択すること、を含む。
【0019】
後述するように、シナリオは複数のアクティビティで構成され、各アクティビティはコンピュータに実行させる動作を規定する。アクティビティの具体例としては、
・CSV(Comma-Separated Values)形式等で記載された表の取得を示すアクティビティ
・当該表の値を所定の条件で絞り込むアクティビティ
・当該表から値を抽出するアクティビティ
・当該値を出力先(表、ウェブページ、メールアドレス等)に出力するアクティビティ
・所定のウェブページにアクセスするアクティビティ
・ウェブページから画像や文章を取得するアクティビティ
等の種々の具体例が挙げられる。そして、ユーザは、UI24によってアクティビティを所望の順序で配列することで、当該アクティビティを当該順序で実行するシナリオを作成することができる。特に本実施例では、シナリオを構成する一部のアクティビティを一括して実行するためのサブシナリオを作成することができる。
【0020】
図2はサブシナリオを作成するために演算部に構成される各機能部の一例を示すブロック図である。上述のように、演算部21、メモリ部22およびUI24は、互いにバス26を介して通信を実行するが、
図2においてバス26は省略されている。メモリ部22にはシナリオSmが格納されており、当該シナリオSmからアクティビティを抽出することでサブシナリオ(具体的には、サブシナリオを定義するサブシナリオ定義情報Ss)が作成される。演算部21には、演算部21によるシナリオ管理プログラム12の実行によって各機能部が構成される。
図2に示すように、各機能部として、演算部21には、指定受付部31、サブシナリオ作成部32、サブシナリオ定義部33およびサブシナリオ管理部34が構成される。
【0021】
指定受付部31は、サブシナリオとして抽出するアクティビティを指定するユーザのUI24に対する入力を受け付ける。さらに、指定受付部31は、作成されたサブシナリオに対してユーザがUI24により行う各種入力を受け付ける。サブシナリオ作成部32は、指定受付部31が受け付けた指定に基づき、サブシナリオを定義するサブシナリオ定義情報Ssを作成して、メモリ部22に格納する。また、サブシナリオ作成部32は、サブシナリオ定義情報Ssを構成するパラメータを決定するパラメータ決定部321を有する。サブシナリオ定義部33は、作成されたサブシナリオ定義情報Ssを管理する。サブシナリオ管理部34は、サブシナリオ定義情報Ssによって定義されるサブシナリオと、当該サブシナリオを利用するシナリオとの関係を管理する。また、サブシナリオ管理部34は、サブシナリオ定義情報Ssによって定義されるサブシナリオを、当該サブシナリオを構成するアクティビティに展開するサブシナリオ展開部341を有する。
【0022】
図3はサブシナリオの作成方法の一例を示すフローチャートであり、
図4Aないし
図4Eは
図3のフローチャートに基づき実行される処理の一例を示す図である。
図3のフローチャートでは、
図4Aに示すメインシナリオ画面Dmがディスプレイ243に表示された状態で開始される。
【0023】
メインシナリオ画面Dmに示されるように、シナリオSmは、実行順序で配列された複数のアクティビティA11~A16、A21~A26によって構成される。メインシナリオ画面Dmにおいて各アクティビティは、当該アクティビティの種類を示すアクティビティ種類情報Cと、当該アクティビティの詳細を定義する定義情報Dと、の組み合わせとして表示される。ユーザは、定義情報Dの値Eを指定することによりアクティビティを編集する。
【0024】
アクティビティA11は、文字列型の変数の作成(換言すれば、宣言)を行うアクティビティであり、当該アクティビティを実行することにより、定義情報D11にしたがって変数V11が作成される。定義情報D11は、作成される変数V11の名称を指定する定義情報D111と、変数V11の実体値として取得される値を指定する定義情報D112とを含む。具体的には、アクティビティA11では、定義情報D111に指定される値E111として、文字列「残業時間ファイル」が入力される。そのため、「残業時間ファイル」との名称を有する変数V11が作成される。また、アクティビティA11では、定義情報D112に指定される値E112として、ファイルのパスである文字列が入力されており、このアクティビティを実行することにより、当該ファイルのパスが変数V11(残業時間ファイル)の実体値として取得される。ここの例では、パスにより特定されるファイルとして、所定の表計算ソフトのファイルが入力されているが、他の表計算ソフトのファイルでもよいし、表計算ソフト以外のソフトウェアで扱われるファイルでもよい。ここの例では、「佐藤氏」の残業時間に関する情報を示す表計算ファイルである「残業時間ファイル_佐藤」のパスを示す文字列が、変数V11の実体値として取得される。なお、定義情報D11においては、実体値である値E112が直接入力されることにより指定されるが、値E112は実体値に限られず、また、指定方法も直接入力に限られない。値E112として宣言済の変数が指定されても良いし、また、選択肢を表示してユーザに選択肢を選択させることにより値E112の指定を受け付けても良い。他のアクティビティについても同様である。
【0025】
アクティビティA12は、定義情報D12により特定されるパスの表計算ファイルを開くアクティビティである。定義情報D12は、表計算ファイルのパスを指定する。この例では、定義情報D12に指定される値E12としてアクティビティA11で宣言される変数V11の名称である「残業時間ファイル」が入力されているため、パスが、アクティビティA11で定義される変数V11で指定される。アクティビティA11の実行により、変数V11の実体値として、値E111の文字列、すなわち「残業時間ファイル_佐藤」のパスを示す文字列が取得されている。このため、アクティビティA12の実行によって、「残業時間ファイル_佐藤」が開かれる。
【0026】
アクティビティA13は、定義情報D13にしたがって、当該アクティビティが実行される時点でアクティブな表計算ファイルの特定のシートをアクティブにするアクティビティである。定義情報D13は、アクティブにするシートを特定する方法を指定する定義情報D131と、シートを特定するためのキーを指定する定義情報D132と、を含む。この例では、アクティビティA13の直前にアクティビティA12が実行されるため、アクティビティA12の実行によって開かれる「残業時間ファイル_佐藤」がアクティブな表計算ファイルである。また、この例では、定義情報D131に指定される値E131として「シート名」が選択されているため、シート名によりシートが特定される。さらに、この例では、定義情報D132に指定される値E132として文字列「残業時間計算」が入力されているため、アクティブにするシートとして、シート名が「残業時間計算」であるシートが特定される。すなわち、アクティビティA13では、アクティビティA12で開かれた「残業時間ファイル_佐藤」に含まれる「残業時間計算」のシートがアクティブにされる。
【0027】
アクティビティA14は、定義情報D14にしたがって変数V14を、アクティビティA15は定義情報D15にしたがって変数V15を、宣言するアクティビティであり、いずれも変数V14、V15の実体値として、当該アクティビティが実行される時点でアクティブなシートから値を取得するアクティビティである。この例では、アクティビティA14、A15は、アクティブなシートの特定のセルの値を実体値として取得するアクティビティであり、当該セルが定義情報D14およびD15によって特定される。この例では、アクティビティA13により「残業時間計算」のシートがアクティブであるため、当該シートのセルの値が実体値として取得される。定義情報D14は、作成される変数V14の名称を指定する定義情報D141と、セルを特定する方法を指定する定義情報D142と、セルを特定するためのキーを指定する定義情報D143と、を含む。アクティビティA14では、定義情報D141に指定される値E141として、文字列「西暦」が入力されるため、宣言される変数V14の変数名が「西暦」と指定される。また、定義情報D142に指定される値E142として、アルファベットで示される列と数字に示される行とによりセルを特定する方法を示す「A1形式指定」が選択され、定義情報D143に指定される値E143として文字列「C10」が入力されているため、特定のセルとして、「残業時間計算」シートのC列かつ10行目に位置するセルC10が特定される。アクティビティA14が実行されると、「西暦」を名称とする変数V14が宣言され、「残業時間計算」シートのセルC10に入力されている値が、実体値として変数V14に入力される。アクティビティA15においても、アクティブなシートは「残業時間計算シート」であり、定義情報D14と同様に、定義情報D15は、定義情報D151、D152、及びD153を含む。アクティビティA15では、定義情報D151に指定される値E151として、宣言される変数V15の変数名が「月度」と指定される。また、定義情報D151に指定される値E152として「A1形式指定」が選択され、定義情報D153に指定される値E153として文字列「B7」が入力されているため、特定のセルとして、「残業時間計算」シートのB列かつ7行目に位置するセルB7が特定される。アクティビティA15が実行されると、「月度」を名称とする変数V15が宣言され、「残業時間計算」シートのセルB7に入力されている値が、実体値として変数V15に入力される。
【0028】
アクティビティA16は、定義情報D16にしたがって、特定の文字列の本文を有するメールを、特定のアドレスに送信するアクティビティである。定義情報D16は、メールの送信先を指定する定義情報D161と、本文を指定する定義情報D162と、を含む。この例では、定義情報D161に指定される値E161として、佐藤氏のアドレスを含む文字列が入力されているため「佐藤氏」にメールを送る。また、この例では、定義情報D162に指定される値E162として、文字列と、変数「西暦」(変数V14)と、変数「月度」(変数V15)と、が、入力されているため、実体値として入力される文字列と、変数「西暦」及び変数「月度」の実体値として取得される文字列とが組み合わされた文字列がメールの本文として特定される。すなわち、アクティビティA14により変数「西暦」(V14)の実体値として「2022」が取得され、アクティビティA15により変数「月度」(V15)の実体値として「5」が取得される場合に、アクティビティA16が実行されると、「2022年5月の残業時間は上限以下です」といった文字列を本文とするメールが、佐藤氏のアドレスに送信される。
【0029】
アクティビティA21はアクティビティA11と同様のアクティビティである。本例では、変数「残業時間ファイル」に代えて、「残業時間ファイル(2)」を名称とする変数V21が宣言され、その実体値として、「鈴木氏」の残業時間に関する情報を示す表計算ファイルである「残業時間ファイル_鈴木」のパスを示す文字列が、変数V21に入力されるよう定義情報D21が指定されている。
【0030】
アクティビティA22はアクティビティA12と同様のアクティビティである。本例では、定義情報D12において、開くファイルを特定するパスが、アクティビティA21で定義される変数V21により指定されるため、アクティビティA22の実行によって、「残業時間ファイル_鈴木」が開かれる。
【0031】
アクティビティA23はアクティビティA13と同様のアクティビティである。本例では、アクティビティA23の直前にアクティビティA22が実行されるため対象のファイルは異なるが、アクティビティA13と同様にシートが指定されるため、アクティビティA13と同様に「残業時間ファイル_鈴木」に含まれる「残業時間計算」のシートがアクティブにされる。
【0032】
アクティビティA24、アクティビティA25は、アクティビティA14と同様のアクティビティである。アクティビティA24の定義情報D24として、アクティビティA24と同様に、変数V24の名称を指定する値E241と、当該変数V24の実体値として取得する値が入力されているセル指定するための値E242、及び値E243が入力されるため、アクティビティA14と同様の実行結果が得られる。
具体的には、アクティビティA24では、「西暦(2)」を名称とする変数V24を宣言し、変数V24の実体値として、アクティビティA23でアクティブにされたシートのセルC10の値が取得される。同様にアクティビティA25は、定義情報D25に指定される値E251、E252、及びE253に基づいて、「月度(2)」を名称とする変数V25を宣言し、変数V25の実体値にセルB7の値が入力される。
【0033】
アクティビティA26はアクティビティA16と同様のアクティビティである。アクティビティA16と同様に、定義情報D26に指定される値により本文の文字列が特定され、かつ、特定のアドレスとして鈴木氏のアドレスが特定される。このため、アクティビティA16と同様に、変数「西暦(2)」(V14)の実体値が2022、変数「月度(2)」(V15)が5のとき、アクティビティA26を実行するとアクティビティA16と同様の本文を有するメールが、鈴木氏のアドレスに送信される。
【0034】
上記に示すシナリオSmでは、「佐藤氏」と「鈴木氏」とに所定のメールを送るために、同様のアクティビティが同様の順序で並べられている。これに対して、
図3のフローチャートによれば、ユーザは、例えば「佐藤氏」に所定のメールを送るためのシナリオから所望のアクティビティを一括して実行するサブシナリオを作成して、当該サブシナリオを複製することができる。複製したサブシナリオは、シナリオSmに含まれるアクティビティをまとめる編集や、シナリオSmを「高橋氏」にも所定のメールを送るシナリオに編集すること、に用いられる。
【0035】
図3のステップS101では、指定受付部31は、シナリオSmを構成する複数のアクティビティA11~A16、A21~A26のうちから一部のアクティビティが抽出対象に指定されたかを、ユーザによるUI24に対する操作に基づき判断する。例えば
図4Bに示すように、ユーザは、一部のアクティビティA12~A15を選択しつつ右クリック等の所定の操作によって開くメニューM1から選択肢M11「サブシナリオに抽出」を選択することで、一部のアクティビティA12~A15を抽出対象に指定することができる(抽出対象指定)。メニューM1として、選択したアクティビティを編集する選択肢や、指定したアクティビティをシナリオ実行時の一時停止アクティビティに設定する選択肢M12「実行時この行で一時停止」が表示される。
【0036】
こうして指定受付部31が抽出対象の指定を受け付けると(ステップS101で「YES」)、サブシナリオ作成部32は、抽出対象に指定されたアクティビティA12~A15を、シナリオSmから抽出する(ステップS102)。
【0037】
ステップS103では、サブシナリオ作成部32のパラメータ決定部321が、抽出対象のアクティビティA12~A15に基づき入力パラメータを決定する。具体的には、パラメータ決定部321は次の入力パラメータ条件、すなわち
・抽出対象のアクティビティにより使用される変数である
・シナリオにおいて当該抽出対象のアクティビティより前に実行されるアクティビティによって宣言される変数である
という条件を満たす変数を入力パラメータに決定する。ここの例では、アクティビティA12~A15が抽出対象のアクティビティであるため、当該抽出対象のアクティビティより前に実行されるアクティビティはアクティビティA11であり、アクティビティA11では「残業時間ファイル」を名称とする変数V11が宣言される。また、変数V11は、アクティビティA12において定義情報D12に指定される値E12として使用される。このため、変数V11が当該入力パラメータ条件を満たす。したがってステップS103では、変数V11が入力パラメータに決定される。
【0038】
ステップS104では、パラメータ決定部321は、抽出対象のアクティビティA12~A15に基づき出力パラメータを決定する。具体的には、パラメータ決定部321は次の出力パラメータ条件、すなわち
・抽出対象のアクティビティの実行によって実体値が取得される変数である
・シナリオにおいて当該アクティビティより後に実行されるアクティビティで使用される変数である
という条件を満たす変数を出力パラメータに決定する。ここの例では、アクティビティA12~A15が抽出対象のアクティビティであり、アクティビティA14において「西暦」との名称の変数14の実体値が、アクティビティA15において「月度」との名称の変数15の実体値が、それぞれ取得される。また、抽出対象のアクティビティより後に実行されるアクティビティはアクティビティA16、A21~A26であり、変数V14(西暦)および変数V15(月度)はいずれも、アクティビティA16において定義情報D16に指定される値E162の一部として使用される。このため、変数V14(西暦)および変数V15(月度)のそれぞれが当該出力パラメータ条件を満たす。したがって、ステップS104では、変数V14(西暦)および変数V15(月度)のそれぞれが出力パラメータに決定される。
【0039】
この例では、出力パラメータ条件を満たす変数として、変数V14、V15の2個の変数が存在する。これに対して、パラメータ決定部321は、変数V14(西暦)およびV15(月度)のそれぞれを個別の出力パラメータに決定する。特にこの例では、変数V14(変数「西暦」)と変数V15(変数「月度」)とが、アクティビティA12~A15を抽出対象とするときの、出力パラメータ条件を満たす全ての変数である。出力パラメータ条件を満たす全ての変数の個数が3以上の時に、すべての変数が出力パラメータとして決定されても良いし、そのうちの少なくとも一つの変数が出力パラメータとして決定されても良い。
【0040】
ステップS105では、サブシナリオ作成部32は、抽出対象のアクティビティA12~A15の後に終了アクティビティAfを追加する。この終了アクティビティAfは、出力パラメータに決定された変数として取得された実体値を結果として返す、すなわち、出力パラメータの実体値を出力するアクティビティである。この例では、変数V14(西暦)と変数15(月度)とが出力パラメータとして決定されるため、アクティビティAfは、変数V14(西暦)として取得された実体値と、変数15(月度)として取得された実体値と、を出力するアクティビティである。こうして作成されるサブシナリオが実行されると、当該サブシナリオに含まれるアクティビティA12~A15、Afがこの順で実行されて、出力パラメータの変数V14(西暦)および変数V15(月度)それぞれの実体値がサブシナリオAsの結果として出力される。
【0041】
こうして、入力パラメータの入力に対して出力パラメータを返すサブシナリオを定義するサブシナリオ定義情報Ssがサブシナリオ作成部32によって作成される。このサブシナリオ定義情報Ssは、サブシナリオを構成するアクティビティA12~A15、Af、入力パラメータIP、出力パラメータOPおよびサブシナリオの名称NSsを少なくとも含む。なお、特に指定のない限り、サブシナリオの名称NSsは「新しいサブシナリオ」に設定される。こうして作成されたサブシナリオ定義情報Ssは、サブシナリオ作成部32によってメモリ部22に格納される(ステップS106)。ユーザが特に指定しないときのサブシナリオの名称NSsとしての「新しいサブシナリオ」はあくまでも一例であり、例えば、「サブシナリオ1」のように数字と組み合わされた名称が設定され、あるサブシナリオが設定されるときに同一の名称が設定されたサブシナリオが既にある場合に、「サブシナリオ2」のように、当該数字がインクリメントされた名称が設定されてもよい。
【0042】
ステップS107では、サブシナリオ管理部34は、抽出対象に指定されたアクティビティA12~A15をシナリオSmにおいてサブシナリオAsに置換する(
図4C)。シナリオSmにおいて、サブシナリオAsを示すアイコンは、当該サブシナリオAsの名称NSsと、出力パラメータOPと、入力パラメータIPとを示す。なお、後述するように、メインシナリオ画面Dmにおいては、サブシナリオAsを複製することができるため、
図4Cでは、他のサブシナリオAsとの区別のために、アクティビティA12~A15が置換されたサブシナリオAsをサブシナリオAs1として図示し、入力パラメータIPを入力パラメータIP1として図示する。また、本実施例において、サブシナリオAs1の出力パラメータは2つあるため、それぞれ、出力パラメータOP1、OP2として図示する。
【0043】
入力パラメータIP1の名称は「arg1」とされており、ステップS107により表示されるメインシナリオ画面Dmにおいて、ユーザは、UI24を操作することで、入力パラメータ「arg1」として扱われる値EIP1を示す定義情報DIP1を編集することができる。本実施例では、ステップS103により入力パラメータに変数「残業時間ファイル」が設定されている。すなわち、残業時間ファイルとの名称の変数V11の実体値として取得される値が、サブシナリオAsの入力パラメータに入力される実体値として扱われることが設定されている。このため、
図4Cの通り、メインシナリオ画面Dmにおいて入力パラメータIP1を指定する定義情報DIP1に指定される値EIP1として、残業時間ファイルとの名称の変数V11が入力されている。なお、本実施例では値EIP1として変数が指定されるため、指定される変数の実体値として取得される値が入力パラメータIP1として扱われるが、値EIP1として実体値が指定されても良い。値EIP1として実体値が指定される場合、当該実体値が入力パラメータIP1として扱われる。また、本実施例においては、入力パラメータの名称に「arg」と言う文字列と数字との組み合わせが用いられるが、ほかの値が入力パラメータIP1の名称として用いられても良い。例えば、入力パラメータに決定される変数の名称が、入力パラメータIP1の名称として用いられても良い。この場合、
図4CのサブシナリオAsを示すアイコンには、「残業時間ファイル=残業時間ファイル」と言う表示がなされる。変数の名称は、ユーザが、当該変数の内容を把握しやすいように設定する物であるため、この名称が入力パラメータの名称に用いられることにより、ユーザが入力パラメータとして設定すべき値を把握しやすくなる。
【0044】
また、ユーザがUI24に定義表示指示を入力すると、サブシナリオ管理部34は、サブシナリオAsを定義するサブシナリオ定義情報Ssを示すサブシナリオ定義画面Ds(
図4D)をディスプレイ243に表示させる。なお、定義表示指示は、例えば、
図4CにおいてサブシナリオAsを示すアイコンの設定ボタンが選択されることで開くメニューから「サブシナリオの定義に移動」を選択することで実行できる。なお、定義表示指示は、サブシナリオAsを示すアイコンを選択しつつ右クリックで開くメニューから「サブシナリオの定義に移動」を選択することで実行されてもよい。
【0045】
図4Dに示すように、サブシナリオ定義情報Ssは、抽出対象となったアクティビティA12~A15と、当該アクティビティA12~A15に続く終了アクティビティAfとを示す。また、サブシナリオ定義情報Ssはヘッダー情報Hを有する。このヘッダー情報Hは、サブシナリオの名称、入力パラメータおよび出力パラメータに関する情報である。上述の通り、サブシナリオ定義情報Ssの作成時には、サブシナリオの名称NSsは「新しいサブシナリオ」となる。さらに、各出力パラメータOP1、OP2の型(ここの例では、いずれの型も「数値」)と、入力パラメータIP1の名称(ここの例では、「残業時間ファイル」)と、入力パラメータIP1の型(ここの例では、「文字列」)とが示される。なお、
図4Dに例示するヘッダー情報Hでは、出力パラメータOP1、OP2の名称は明示されていないが、ユーザは、終了アクティビティAfの内容を確認することで、「月度」および「西暦」が出力パラメータの名称であると確認できる。
【0046】
ユーザは、ディスプレイ243に表示されるサブシナリオ定義画面Dsにおいて、出力パラメータOPとして出力すべき値を編集できる。本実施例ではサブシナリオAsの出力パラメータOP2に変数「西暦」が設定されるため、変数「西暦」が宣言されるアクティビティA14の定義情報D14を編集することにより、出力パラメータOP2として出力すべき値が編集される。具体的には、
図4Dに示されるサブシナリオ定義画面Dsにおいて「C10」という値E143が入力されている定義情報D143に他のセルを特定する値が入力されると、サブシナリオ定義部33は、当該セルの値を、サブシナリオAsの出力パラメータOP2として出力すべき値に設定する。これによれば、アクティビティA14で変数V14(西暦)の実体値として取得される値が編集され、サブシナリオAsは変数V14(西暦)の実体値として取得される値が出力パラメータとして出力すべき値に設定されるため、出力パラメータとして出力すべき値が編集される、と言える。同様に、サブシナリオ定義画面DsにおいてアクティビティA15を示すアイコンの「B7」という値E153が入力されている定義情報D153に他のセルを示すテキストが入力されると、サブシナリオ定義部33は、当該セルの値を、サブシナリオAsの出力パラメータOP1として出力すべき値に設定する。
【0047】
ユーザは、こうして作成されたサブシナリオAsを用いてシナリオSmを編集することができる。
図4Eは、作成したサブシナリオAsを用いて編集されたシナリオSmのメインシナリオ画面Dmを示す。より詳細には、
図4Cのメインシナリオ画面Dmから、
図4Cに示すアクティビティA22~A25が削除され、代わりにサブシナリオAs2が配置され、サブシナリオAs2の入力パラメータIP2(入力パラメータ「Arg1」)の定義情報DIP2に指定される値EIP2として残業時間ファイル (2)との名称の変数V22が設定された状態を示す。ユーザが、アクティビティの削除、配置、及び定義情報の変更をする入力をUI24に対して実行すると、サブシナリオ管理部34が当該入力に応じてシナリオSmを編集する。
図4EのシナリオSmでは、サブシナリオAs1がアクティビティA12~A15と同じ動作を実行し、サブシナリオAs2がアクティビティA22~A25と同じ動作を実行する。なお、本実施例においてサブシナリオAsは、「佐藤氏」と「鈴木氏」とに所定のメールを送るシナリオSmに含まれる複数のアクティビティをまとめる編集のために用いられるが、シナリオSmを、「高橋氏」に「佐藤氏」と同様の所定のメールを送るシナリオに編集するために用いられても良い。また、本実施例では、サブシナリオAs2において出力パラメータOP3、OP4の名称として、「月度」「西暦」が表示されているが、サブシナリオを複製する際に出力パラメータOPの名称が自動で変更されても良い。例えば、サブシナリオAs1における出力パラメータOP1、OP2と区別するために、「月度(1)」「西暦(1)」と言った名称に変更されてもよい。本実施例のようにサブシナリオAsは、シナリオSm中の別の位置で同様の処理をするため、や、異なる入力パラメータIPを入力して同様の処理をするために複製される。したがって、出力パラメータOPの実体値として取得される値は、サブシナリオAs1と複製されたサブシナリオAs2とで異なることがある。サブシナリオAsを複製したときに、出力パラメータOPの名称が自動で変更されると、異なる値を実体値として取得する出力パラメータ同士を、異なる出力パラメータとして扱いやすく、ユーザが容易にシナリオを管理することができる。さらに、本実施例では
図4Cに示すアクティビティA22~A25に代えてサブシナリオAsを配置する編集がなされているが、アクティビティA22~A25を抽出対象として指定され、
図3に示すフローチャートに基づきサブシナリオAsが作成されても良い。この場合、作成されるサブシナリオAsは、アクティビティA12~A15が指定されて作成されるサブシナリオAsと異なるサブシナリオとして扱われるため、異なるサブシナリオ名称が付されることが好ましい。
【0048】
ちなみに、上述のように作成されるサブシナリオAsの名称は、ユーザのUI24への入力に応じて適宜編集できる。
図5はサブシナリオ名称編集の一例を示すフローチャートであり、
図6Aないし
図6Bは
図5のフローチャートに基づき実行される処理の一例を示す図である。
【0049】
図5のステップS201では、指定受付部31は、サブシナリオ定義画面Dsのヘッダー情報Hが示すサブシナリオ名称NSsが編集されたかを、ユーザによるUI24に対する操作に基づき判断する。サブシナリオAsの名称NSsが「新しいサブシナリオ」(
図4D)から「残業時間を取得」に変更されたのを指定受付部31が受け付けると(ステップS201で「YES」)、サブシナリオ定義部33は、サブシナリオ定義情報SsにおいてサブシナリオAsの名称NSsを「新しいサブシナリオ」から「残業時間を取得」に変更する(ステップS202)。
図6Aは、
図4Dから名称NSsが「新しいサブシナリオ」から「残業時間を取得」に変更された状態のサブシナリオ定義画面Dsを示す。また、ステップS203では、サブシナリオ管理部34は、サブシナリオAsを呼び出すシナリオSmにおいて、当該サブシナリオAsを示すアイコンにおけるサブシナリオAsを示す名称を「残業時間を取得」に変更する。
図6Bは、サブシナリオ管理部34により、シナリオSmにおいて、サブシナリオAsを示す名称NSsが「残業時間を取得」に変更された状態を示す。こうして、サブシナリオ定義画面DsにおけるサブシナリオAsの名称変更が、シナリオSmを表示するメインシナリオ画面Dmに反映される。なお、本実施例では、シナリオSmがサブシナリオAsを呼び出すため、シナリオSmを表示するメインシナリオ画面Dmに名称変更が反映されるが、当該サブシナリオAsを呼び出す部分に反映されればよい。例えば、別のサブシナリオがサブシナリオAsを呼び出す場合、サブシナリオAsを呼び出すサブシナリオを表示する画面に、サブシナリオAsの名称変更が反映される。
【0050】
なお、サブシナリオAsと、シナリオSmにおける当該サブシナリオAsとの呼び出し元との関係は、シナリオSmをコンパイルした結果に基づき判断できる。つまり、シナリオSmに対してなにかしらの編集がユーザにより実行される度に、演算部21はシナリオSmをコンパイルする。一方、サブシナリオ定義情報Ssによって定義されるサブシナリオAsと、シナリオSmで呼び出されるサブシナリオAsとの関係は、コンパイル結果を参照することで把握できる。これは、オブジェクト指向のプログラム言語において、クラスとインスタンスとの関係がコンパイル結果から把握できることに類似する。
【0051】
以上に説明する実施例では、複数のアクティビティA11~A16、A21~A26のうちから抽出対象となるアクティビティA12~A15を指定する抽出対象指定が指定受付部31によって受け付けられると(ステップS101)、当該抽出対象となるアクティビティを一括して実行するためのサブシナリオAs(一括アクティビティ)がサブシナリオ作成部32によって定義される(ステップS102~S105)。この際、サブシナリオAs(すなわち、抽出対象のアクティビティA12~A15)で使用される変数であってシナリオSmにおいて抽出対象のアクティビティA12~A15より前に実行されるアクティビティA11で宣言される変数が、入力パラメータIPに決定される(ステップS103)。そして、シナリオSmで使用されるサブシナリオAsの入力パラメータIP(入力パラメータ「arg1」)に対する設定値(残業時間ファイルとの名称の変数V11)の入力を受け付けるメインシナリオ画面Dm(
図4C)がディスプレイ243に表示される。したがって、ユーザは、表示されたメインシナリオ画面DmによってサブシナリオAsの入力パラメータを把握でき、さらに入力パラメータに対して設定値(変数V11(残業時間ファイル)、変数V21(残業時間ファイル(2))等)を指定できる。こうして、ユーザが所望のアクティビティA12~A15をシナリオSmから抽出するにあたって、当該アクティビティA12~A15で使用される入力パラメータの把握や入力パラメータへの設定値の指定を簡単に実行することが可能となる。
【0052】
また、サブシナリオAsは出力パラメータの実体値を出力し、シナリオSmでサブシナリオAsより後に実行されるアクティビティは、サブシナリオAsから出力される出力パラメータの実体値を使用する。これに対して、パラメータ決定部321は、抽出対象となるアクティビティA12~A15の実行によって実体値が取得される変数であって、シナリオSmにおいて抽出対象となるアクティビティA12~A15より後に実行されるアクティビティA16で使用される変数V14(西暦)および変数V15(月度)を出力パラメータに決定する(ステップS104)。かかる構成では、サブシナリオAsを実行した結果であるサブシナリオAsの出力パラメータが自動的に決定され、ユーザの負担軽減が図られている。なお、ステップS104で出力パラメータに決定される変数は、当該変数の実体値をサブシナリオAsの実行結果として、サブシナリオAsより後に実行されるアクティビティに出力されるように、アクティビティAfにより出力される値に設定される。
【0053】
また、パラメータ決定部321は、出力パラメータの型を、当該出力パラメータに決定された変数の実体値の型に決定する(ステップS104)。かかる構成では、出力パラメータOP1、OP2(西暦、月度)の型が自動的に決定され、ユーザの負担軽減が図られている。
【0054】
また、パラメータ決定部321は、抽出対象となるアクティビティA12~A15の実行によって実体値が取得される変数であって、シナリオSmにおいて抽出対象となるアクティビティA12~A15より後に実行されるアクティビティで使用される変数として、変数V14(西暦)および変数V15(月度)といった2個の変数V14、V15(第一および第二変数)が存在する場合、変数V14、V15のそれぞれを出力パラメータに決定する(第一および第二出力パラメータ)。したがって、サブシナリオAsが実行されると、サブシナリオAsは、変数V14(西暦)の実体値と、変数V15(月度)の実体値とを出力する。これに対して、ディスプレイ243(シナリオ表示部)は、2個の出力パラメータOP1、OP2を互いに独立して表示して各々の編集を受け付けるサブシナリオ定義画面Dsを表示する。かかる構成では、ユーザは、サブシナリオAsの実行に伴って出力される2個の出力パラメータOP1、OP2(西暦、月度)を把握して、これらの出力パラメータOP1、OP2(西暦、月度)を編集する作業を簡単に行うことができる。ここで、出力パラメータOP1、OP2を編集する作業とは、例えば出力パラメータOP1、OP2に対する設定値を変更する作業等を示す。なお、本実施例においてサブシナリオAsには複数の出力パラメータOP1、OP2を設定することができる。サブシナリオに対して設定できる出力パラメータが一つの場合と比較して、ユーザは、複数の出力パラメータを、同一の入力パラメータに基づいて得られる値として把握することができる。特に本実施例では、上述の通り、出力すべき値が、その数が2以上であっても、出力パラメータOP1、OP2として設定されるため、ユーザがサブシナリオAsの概要を把握しやすい。
【0055】
また、サブシナリオ管理部34は、シナリオSmにおける抽出対象のアクティビティA12~A15の存在範囲、すなわちアクティビティA11とアクティビティA16との間、とは異なる複製範囲(アクティビティA22~A25の存在範囲)へのサブシナリオAsの複製を、UI24(指定受付部)への入力に応じて実行して、UI24のディスプレイ243に表示する(
図4E)。かかる構成では、サブシナリオAsをシナリオSmにおける複数の範囲で流用することができ、シナリオ編集を行うユーザにとって便利である。
【0056】
ところで、上記のように抽出したサブシナリオAsにおいて、入力パラメータを追加することができる。
図7は入力パラメータ追加の一例を示すフローチャートであり、
図8Aないし
図8Cおよび
図9Aないし
図9Cは
図7のフローチャートに基づき実行される処理の一例を示す図である。
【0057】
図7のステップS301では、指定受付部31は、サブシナリオ定義画面Dsにおいて入力パラメータへの追加対象が選択されたかを、ユーザによるUI24に対する操作に基づき判断する。ユーザは、追加対象をクリックすることで追加対象を選択することができる(ステップS301で「YES」)。
図8Aは、指定受付部31が、アクティビティA15の、定義情報D153に指定される値E153「B7」が選択されたと判断し、ステップS302の指定を受け付けるためのメニューM3が表示された状態を示す。ユーザが追加対象として値E153を選択した状態で、ユーザがメニューM3に表示される選択肢から選択肢M31「入力パラメータに追加」を選択すると、指定受付部31は、当該追加対象を入力パラメータ化する指定を受け付けたと判断する(ステップS302で「YES」)。このように、ステップS301、S302では、サブシナリオAsで使用する変数あるいは実体値のうちから入力パラメータに追加する追加対象が指定される(入力パラメータ指定)。なお、ユーザが、当該メニューから「入力パラメータに追加」以外を選択すると、
図7のフローチャートは終了する。
【0058】
ステップS303では、サブシナリオ定義部33は、追加対象が実体値およびサブシナリオ内で宣言される変数のいずれであるかを判断する。
図8Aの例で追加対象として選択される値「B7」は、変数ではなく実体値である。このため、
図8Aの例では、ステップS303においてサブシナリオ定義部33は、追加対象は実体値であると判断する。
【0059】
そして、サブシナリオ定義部33は、追加対象である値「B7」に対応する新たな変数V31を作成して(ステップS304)、サブシナリオ定義情報Ssにおいて値「B7」を変数V31に置換する(ステップS305)。本実施例において、変数V31の名称は「新しい変数」であり、
図8Bに示すように、サブシナリオ定義情報SsのアクティビティA15において値E153としての値「B7」が変数V31(変数「新しい変数」)に置換される。さらに、サブシナリオ定義部33は、変数V31を入力パラメータIPとして定義する(ステップS306)。これによって、
図8Bに示すように、サブシナリオ定義情報Ssのヘッダー情報Hにおいて、変数V31としての変数「新しい変数」が入力パラメータIPaとして追加される。この入力パラメータIPaの型は、ステップS301、S302で追加対象として選択された値「B7」の型(「文字列」)に自動的に設定される(ステップS307)。
【0060】
ステップS304~S307の実行結果は、サブシナリオ定義部33によって、メモリ部22に格納されるサブシナリオ定義情報Ssに随時更新される(ステップS308)。また、サブシナリオ管理部34は、サブシナリオ定義情報Ssの更新をシナリオSmに反映させる(ステップS309)。その結果、ディスプレイ243に表示されるメインシナリオ画面Dm(
図8C)に示されるように、シナリオSmで呼び出される各サブシナリオAsにおいて、サブシナリオAsの入力パラメータIPとして入力パラメータIPaが追加されるとともに、入力パラメータIPaに対応する値として、ステップS301、S302で追加対象として選択された値「B7」が定義情報DIP2に設定される。具体的には、サブシナリオ定義部33は、入力パラメータIPaに対応する値「B7」を、入力パラメータIPaと関連付けてサブシナリオ定義情報Ssに追加する。そして、サブシナリオ管理部34は、サブシナリオ定義情報Ssを参照することで、入力パラメータIPaに対応する値「B7」を確認して、メインシナリオ画面DmのサブシナリオAsの入力パラメータIPaに対して値「B7」を設定する。これによれば、構成するアクティビティA15の定義情報D153に値「B7」が指定される、すなわち、値「B7」が変数V31に置換される前のサブシナリオAsを、構成するアクティビティA15の定義情報D153に変数V31が指定される、すなわち変数V31に置換された後のサブシナリオAsとで、同様の実行結果が得られる。より詳細には、サブシナリオAsで、実体値「B7」を用いて実行されるアクティビティA15が、実体値として値「B7」を取得する変数V31を用いて実行されるアクティビティに置換されるため、同様の実行結果が得られる。
【0061】
なお、ユーザは、メインシナリオ画面Dmに示されるサブシナリオAsの入力パラメータIPaに入力すべき実体値を適宜変更できる。具体的には、ユーザは、入力パラメータIPaに入力すべき実体値を定義する定義情報DIPaとして値「B7」が入力されている状態から、シートの他のセル指定する文字列を定義情報DIPaとして入力することで、入力パラメータIPaに入力すべき実体値に当該文字列を指定することができ、これにより、サブシナリオAsに入力される実体値が当該文字列に変更される。また、定義情報DIPaとして任意の変数を指定することができ、この場合は、当該変数の実体値として取得される値が、入力パラメータIPaに入力される。
【0062】
一方、
図9Aは、ステップS301により、サブシナリオAsのアクティビティA15において宣言される変数「月度」が選択されてメニューM3が表示された状態が示される。このメニューM3における選択肢M31が選択されることにより、変数「月度」が追加対象に選択される。そのため、ステップS303において、サブシナリオ定義部33は、追加対象は、サブシナリオ内で宣言される変数であると判断する。この場合、サブシナリオ定義部33は、追加対象である変数「月度」を入力パラメータIPaとして定義する(ステップS310)。これによって、
図9Bに示すように、サブシナリオ定義情報Ssのヘッダー情報Hにおいて、変数「月度」が入力パラメータとして追加される。次にサブシナリオ定義部は、
図9Bに示すように、選択された変数「月度」が宣言されるアクティビティA15をサブシナリオ定義情報Ssから削除し、アクティビティA15に相当するアクティビティAaが、シナリオSmにおいてサブシナリオAsが実行されるより前に実行されるように追加される(ステップS311)。そして、サブシナリオ定義情報Ssのヘッダー情報Hにおいて追加された入力パラメータOP2としての「月度」の型は、追加対象として選択された変数としての「月度」の型(「数値」)に自動的に設定される(ステップS307)。
【0063】
ステップS310、S311、S307の実行結果は、サブシナリオ定義部33によって、メモリ部22に格納されるサブシナリオ定義情報Ssに随時更新される(ステップS308)。また、サブシナリオ管理部34は、サブシナリオ定義情報Ssの更新をシナリオSmに反映させる(ステップS309)。その結果、ディスプレイ243に表示されるメインシナリオ画面Dm(
図9C)に示されるように、シナリオSmで呼び出された各サブシナリオAsにおいて、入力パラメータIPaが追加されるとともに、入力パラメータIPaを定義する定義情報DIPaに指定される値として、ステップS301、S302で追加対象として選択された変数「月度」が設定される。さらにこの場合、サブシナリオAsで変数「月度」が使用されるため、サブシナリオAsが実行されるより前に変数「月度」が宣言されるように、変数「月度」を宣言するアクティビティAaが、シナリオSmに追加される。これによれば、サブシナリオAsの入力パラメータIPaに変数「月度」を追加する前、すなわちサブシナリオAsを構成するアクティビティA15の実行結果として変数「月度」の実体値が取得されるのと同様に、サブシナリオAsの入力パラメータIPaに変数「月度」を追加した後にも、変数「月度」の実体値が取得される。
【0064】
なお、ユーザは、メインシナリオ画面Dmに示されるサブシナリオAsの入力パラメータIPaに入力すべき実体値を適宜変更できる。具体的には、ユーザは、入力パラメータIPaに入力すべき実体値を定義する定義情報DIPaとして入力される値に対して他の値を入力することで、入力パラメータIPaに入力される実体値を変更できる。
【0065】
また、本実施例において、サブシナリオAsに含まれる変数のうち、サブシナリオAsより前に宣言される変数は、サブシナリオを作成するときに自動で入力パラメータに決定されるが、ステップS301とステップS302により、入力パラメータとして選択されてもよい。この場合、ステップS310と同様の処理により、当該変数が入力パラメータとして定義される。
【0066】
上記の例では、指定受付部31は、サブシナリオAsに含まれる変数あるいは実体値を入力パラメータに指定する入力パラメータ指定を受け付ける(ステップS301、S302)。これに対して、サブシナリオ定義部33は、ステップS301、S302での入力パラメータ指定に応じてサブシナリオAsの入力パラメータを更新する(ステップS306、S310、S308)。かかる構成では、ユーザはサブシナリオAsに含まれる変数あるいは実体値を入力パラメータとすることができ、シナリオ編集にあたってサブシナリオAsをより汎用的に使用できる。また、ユーザは、サブシナリオAsを構成するアクティビティで実際に変数や実体値が入力されている箇所を指示して、入力パラメータ指定をすることができる。このため、サブシナリオAsにおいて、サブシナリオAsが実行される箇所に応じて対象の値を変更するべきアクティビティから、当該アクティビティに含まれる変数あるいは実体値を指定することができる。
【0067】
また、指定受付部31に対する入力パラメータ指定で変数が指定されると(ステップS303で「変数」)、サブシナリオ定義部33は、当該入力パラメータ指定で指定された変数を入力パラメータとして定義する(ステップS310)。かかる構成では、ユーザはサブシナリオAsに含まれる変数を入力パラメータとすることができ、シナリオ編集にあたってサブシナリオAsをより汎用的に使用できる。
【0068】
また、指定受付部31に対する入力パラメータ指定で実体値が指定されると(ステップS303で「実体値」)、サブシナリオ定義部33は、入力パラメータ指定で指定された実体値に対応する変数として新たな変数を作成する(ステップS304)。さらに、サブシナリオ定義部33は、サブシナリオAsにおいて当該実体値を新変数に置換するとともに(ステップS305)、新たな変数を入力パラメータとして定義する(ステップS306)。かかる構成では、ユーザはサブシナリオAsに含まれる実体値を入力パラメータとすることができ、シナリオ編集にあたってサブシナリオAsをより汎用的に使用できる。
【0069】
作成される新たな変数V31(ステップS304)として取得される実体値は、当該変数V31を入力パラメータIPaとするサブシナリオAsの呼び出し元において、当該入力パラメータIPaがどのように定義されるかに応じて変わる。このため、ステップS304において変数V31を作成するときにユーザにより指定される実体値は、サブシナリオAs呼び出し元において入力パラメータIPaとしてどのような実体値が使用されるか、を示す情報として保持される。また、入力パラメータIPaとしての変数V31は、その実体値がサブシナリオAsの呼び出し元における定義情報DIPaに応じて変わるため、サブシナリオ定義情報Ssと関連付けて保持される場合、当該サブシナリオ定義情報Ssに定義されるサブシナリオAsに含まれる変数の一例として表示されても良い。
【0070】
ところで、サブシナリオAsにおいて、出力パラメータOPを追加することができる。
図10は出力パラメータ追加の一例を示すフローチャートであり、
図11Aないし
図11Dは
図10のフローチャートに基づき実行される処理の一例を示す図である。ここでは、上記の例と異なり、サブシナリオAsの出力パラメータOPとして変数「月度」のみが設定されているとし(
図11A、
図11B)、出力パラメータとして変数「西暦」を追加する例(
図11C~
図11F)を説明する。また、
図11Bおよび
図11Dは、シナリオSmを構成する一部(アクティビティA11およびサブシナリオAs)のみが示されている。
【0071】
図10のステップS401では、指定受付部31は、ユーザによるUI24に対する操作に基づき、出力パラメータを追加することの指示を受け付ける。終了アクティビティAfには終了アクティビティAfに対する操作を受け付けるためのメニュー表示部Af1が設けられ、ユーザはメニュー表示部Af1をクリックすることによりメニューM4を表示させる。
図11Cは、メニューM4が表示された状態を示す。メニューM4は選択肢M41として「出力パラメータを追加」という選択肢を含み、当該選択肢が選ばれることにより、出力パラメータを追加することの指示が受け付けられる。出力パラメータを追加することの指示が受け付けられると、サブシナリオ定義情報の終了アクティビティAfに、追加される出力パラメータOPaを定義する定義情報DOPaを示す値EOPaを指定可能な入力欄Nが追加される(
図11D)。ユーザは、当該入力欄Nに、値を入力することにより出力パラメータOPaとして出力すべき値を指定する(ステップS402)。本実施例では、
図11Eの終了アクティビティAfに示される通り、値EOPaとして変数「西暦」が入力される。このように、ステップS401とステップS402とにより、出力パラメータへの追加対象が選択される。なお、入力欄Nへの入力は、直接入力してもよいし、入力欄Nに表示されるプルダウンメニューから選択することで入力してもよい。後者の場合であって、サブシナリオAsにおいて値を取得する複数のアクティビティが含まれる場合には、例えばこれら複数のアクティビティで取得される値のうち、出力パラメータOPに未設定の値をプルダウンメニューに表示すればよい。
【0072】
ステップS403では、サブシナリオ定義部33は、追加対象である変数「西暦」を出力パラメータとして定義する(ステップS403)。これによって、
図11Eに示すサブシナリオ定義情報Ssのように、ヘッダー情報Hにおいて、出力パラメータOPaが追加される。この出力パラメータOPaの型は、追加対象として選択された値の型と同じ型に自動的に設定される(ステップS404)。本実施例では、数値の型の変数「西暦」が追加対象として選択されるため、出力パラメータOPaの型は数値に設定される。
【0073】
ステップS403~S404の実行結果は、サブシナリオ定義部33によって、メモリ部22に格納されるサブシナリオ定義情報Ssに随時更新される(ステップS405)。また、サブシナリオ管理部34は、サブシナリオ定義情報Ssの更新をシナリオSmに反映させる(ステップS406)。その結果、ディスプレイ243に表示されるメインシナリオ画面Dm(
図11F)に示されるように、シナリオSmで呼び出されたサブシナリオAsにおいて、追加された出力パラメータOPaである「西暦」が追加される。
【0074】
上記の例では、指定受付部31は、サブシナリオAsに含まれる変数を出力パラメータOPに指定する出力パラメータ指定を受け付け(ステップS401、S402)、サブシナリオ定義部33は、出力パラメータ指定に応じてサブシナリオAsの出力パラメータOPを更新する(ステップS403、S405)。かかる構成では、ユーザはサブシナリオAsに含まれる変数を出力パラメータOPとすることができ、シナリオ編集にあたってサブシナリオAsをより汎用的に使用できる。なお、サブシナリオAsの出力パラメータへの追加対象は変数に限られず、サブシナリオAsに含まれる実体値を出力パラメータに追加してもよい。
【0075】
ところで、サブシナリオ定義画面Dsにおいては、出力パラメータOPに係る設定をユーザのUI24への入力に応じて適宜変更できる。例えば
図11Eの例では、出力パラメータOP1の型が「数値」に設定されているが、ユーザはUI24へ入力することにより、出力パラメータOP1の型を「文字列」に変更することができる。また、
図11Eの例では、出力パラメータOPaの型は「数値」に設定されているが、終了アクティビティAfにおいて出力パラメータOPaに対応する値としての変数「西暦」を、「文字列」型の変数に変更することにより、「文字列」型の値を出力パラメータOPaとして出力するように設定を変更することができる。さらに、本実施例では、変数の実体値として取得される値に応じて、当該変数の型が変更される。
図11Eの例では、アクティビティA15において値「B7」が変数「月度」の定義情報D153として設定されている状態から、定義情報D153として設定される値E153を、値「B9」に変更することができる。このような値E153の変更に応じて変数「月度」の型は、セルB9から取得される値の型に応じて変更される。このように、出力パラメータに係る設定を変更する場合、サブシナリオ定義情報Ssで定義されている出力パラメータOPの型と、当該出力パラメータOPに対応付けられる終了アクティビティAfの値の型との間に不整合が生じるおそれがある。そこで、次のようにして出力パラメータの型を管理することができる。
【0076】
図12は出力パラメータの型の管理の一例を示すフローチャートであり、
図13は
図12のフローチャートに基づき実行される処理の一例を示す図である。なお、本例において、アクティビティA15の実行により取得される値が入力されているセルを含むシートにおいて、セルB7には「数値」型の値が、セルB9には「文字列」型の値が入力されているものとする。ステップS501では、指定受付部31は、サブシナリオ定義画面Dsにおいて出力パラメータOPに係る設定が実行されたかを、ユーザによるUI24に対する操作に基づき判断する。例えば
図13に示すように、ユーザは、アクティビティA15における変数「月度」に関する定義情報D153に指定される値を「B7」から「B9」に変更できる。
図13の例では、定義情報D153に指定される値に基づいて取得される変数「月度」の実体値が、出力パラメータOP1として出力されるため、定義情報D153に指定される値の変更は、出力パラメータOP1に係る設定と判断される(ステップS501で「YES」)。サブシナリオ定義情報Ssのヘッダー情報Hでは出力パラメータOP1に係る設定がなされる前の出力パラメータOP1に対応する値の型に応じて、出力パラメータOP1の型が定義されるため、出力パラメータOP1の型は、セルB7から取得される値に対応する型である「数値」に定義されている。セルB7から取得される値の型が「数値」であるのに対して、セルB9に入力されている値の型が「文字列」であるため、変数「月度」の実体値として取得される値の型が「文字列」になる。終了アクティビティAfの通り、変数「月度」は出力パラメータOP1に対応付けられる。したがって、変数「月度」に係る定義情報D153に指定される値が「B7」から「B9」に変更されるとき、出力パラメータOP1の型(「数値」)と、終了アクティビティAfにおいて当該出力パラメータOP1に対応付けられる値の型(「文字列」)と、に不整合が発生したと、サブシナリオ定義部33によって判断される(ステップS502で「YES」)。
【0077】
ステップS502で不整合が発生したと判断された場合、サブシナリオ定義部33は、アラートLを表示する(ステップS503)。この場合、サブシナリオAsを構成するアクティビティ実行結果として返される値、換言すればアクティビティ実行結果が示される終了アクティビティAfに指定される値の型と、シナリオSmにおいてサブシナリオAsから出力される値の型、換言すればサブシナリオAsの出力パラメータの型と、に不整合が生じたこととなる。したがって、終了アクティビティAfにおいて、不整合が生じている値を、他の値と異なる色で表示するなど、アラートLを表示する。なお、終了アクティビティAf以外のアクティビティの設定を変更することによって、出力パラメータと、終了アクティビティAfにおいて当該出力パラメータに対応付けられる値と、に不整合が生じる場合は、不整合を生じさせる設定の変更がなされたアクティビティを示すアラートLを表示しても良い。本実施例においては、アクティビティA15の設定が変更されることにより不整合が生じるため、アクティビティA15にアラートLが表示されても良い。ほかに、ヘッダー情報Hにおいて、不整合が生じている出力パラメータが特定しやすいように、ヘッダー情報HにアラートLを表示してもよい。また、アラートLの表示箇所は1つに限られず、例えば、終了アクティビティAfとヘッダー情報Hとの両方にアラートLが表示される構成であっても良い。
【0078】
サブシナリオ定義部33は、ヘッダー情報Hにおける出力パラメータOP1の型を、終了アクティビティAfで返す値として設定される変数の型と同じ型に変更できるか否かを判断する(ステップS505)。具体的には、サブシナリオAsを呼び出す呼び出し元としてのシナリオSmにおいて、当該出力パラメータが使用される箇所と整合性を保ちながら出力パラメータOP1の型が変更できるか否かを判断する。サブシナリオAsを呼び出す呼び出し元としてのシナリオSmにおいてサブシナリオAsより後に実行され、当該出力パラメータを使用するアクティビティとの整合性を保ちながら出力パラメータの型が変更できるか否かを判断する。例えば、出力パラメータが使用されるアクティビティにおいて当該出力パラメータに求められる型を参照することで、ヘッダー情報Hの出力パラメータOP1の型の変更の可否が判断される。また、例えば、出力パラメータOP1が使用されるアクティビティにおいて当該出力パラメータに求められる型が出力パラメータOP1の変更後の型と異なっていたとしても、当該出力パラメータOP1に求められる型に応じた出力パラメータの型変換が可能である場合、出力パラメータOP1の型の変更は可能、と判断される。サブシナリオAsの出力パラメータは、後続のアクティビティで使用される値であるため、当該後続のアクティビティで使用できるように、型が特定の型に固定されることが多い。このため、予め出力パラメータが型の変更が可能な値であるかを判断することにより、ユーザが選択し得る方法を変更することができる。
【0079】
出力パラメータOP1の型が変更できる場合(ステップS505で「YES」の場合)には、サブシナリオ定義部33は、ヘッダー情報Hの出力パラメータOP1および終了アクティビティAfで当該出力パラメータOP1に対応付けられる値のいずれの型の変更が選択されるかを判断する(ステップS506)。具体的には、型を変更する対象をユーザに選択させる画面をディスプレイ243に表示し、当該表示に対してユーザのUI24に対する操作より、いずれの値の変更が選択されたかを判断する。サブシナリオ定義部33は、ユーザにより出力パラメータの型の変更が選択されたと判断すると(ステップS506で「出力パラメータ」)、サブシナリオ定義部33は、ヘッダー情報Hにおける出力パラメータの型を、終了アクティビティAfで当該出力パラメータに対応付けられる値の型に変更する(ステップS507)。本実施例では、出力パラメータOP1と、出力パラメータOP1に対応付けられる値としての変数「月度」とに不整合があるため、出力パラメータOP1の型を変数「月度」の型に変更する。出力パラメータの型が変更されると、出力パラメータの型と、終了アクティビティAfにおいて当該出力パラメータに対応付けられる値の型と、が整合するため、サブシナリオ定義画面Dsにおいて表示していたアラートLを消す(ステップS508)。
【0080】
一方、ステップS506において、ユーザが終了アクティビティAfで出力パラメータOP1に対応付けられる値の型の変更を選択したと判断すると(ステップS506で「終了アクティビティの値の型」)、サブシナリオ定義部33は、終了アクティビティAfから、出力パラメータOP1に対応付けられる値として、ヘッダー情報Hの出力パラメータOP1の型と同じ型の値が得られるように、終了アクティビティAfを変更する(ステップS510)。本実施例では、ヘッダー情報Hの出力パラメータOP1の型が「数値」であることに対して、終了アクティビティAfで出力パラメータOP1に対応付けられる値である変数「月度」の型が「文字列」である。ステップS510では、終了アクティビティAfに、変数「月度」として取得される実体値を「数値」型に変換する処理が追加されることにより、変数「月度」として取得されて「数値」型に変換された値が、出力パラメータOP1に対応付けられる。このように終了アクティビティAfが変更されることにより、出力パラメータの型と、終了アクティビティAfにおいて当該出力パラメータに対応付けられる値の型と、の不整合が解消されると、サブシナリオ定義部33は、サブシナリオ定義画面DsにおいてアラートLを消す(ステップS508)。
【0081】
また、出力パラメータの型が変更できないと判断された場合(ステップS505で「NO」の場合)、ステップS506において、終了アクティビティAfの値の型の変更が選択されたと判断した場合と同様に、サブシナリオ定義部33は、終了アクティビティAfを、変更して(ステップS510)、サブシナリオ定義画面DsにおいてアラートLを消す(ステップS508)。なお、出力パラメータOPの型や、終了アクティビティの値の型を変更するときに、その変更の可否についてユーザの確認を求める構成にしても良い。
【0082】
このような
図12の出力パラメータOPの管理によって、サブシナリオAsの出力パラメータOPと、サブシナリオAsの出力パラメータOPに対応する値(終了アクティビティAfの値)との間に型の不整合が発生した場合に、適切に対応することができる。
【0083】
ところで、上記の実施例では、ディスプレイ243においてメインシナリオ画面Dmおよびサブシナリオ定義画面Dsが表示される。これらは並列して表示されてもよいし、次に説明するように、メインシナリオ画面Dmおよびサブシナリオ定義画面Dsとの間でディスプレイ243に表示する画面を切り換えられるように構成してもよい。
【0084】
図14Aおよび
図14Bはメインシナリオ画面およびサブシナリオ定義画面の間で表示する画面を切り換える構成を説明する図である。
図14Aでは、メインシナリオ画面Dmが示され、
図14Bでは、サブシナリオ定義画面Dsが示されている。ユーザは、メインシナリオ画面においてサブシナリオAsを選択し、所定の操作をすることで選択したサブシナリオAsに係るサブシナリオ定義画面Dsを表示させることができる。
図14Aは、ユーザが、ディスプレイ243に表示されるメインシナリオ画面Dm内の各サブシナリオAsのうちから一のサブシナリオAsを選択し、所定の操作により、選択されたサブシナリオに係るメニューM4を表示した状態を示す。メニューM4は、選択肢M41としての「サブシナリオの定義に移動」と言う選択肢と、選択肢M42としての「サブシナリオを展開」と言う選択肢とを含む。選択肢M41及びM42はいずれも、シナリオの他のアクティビティに関連しては表示されず、サブシナリオAsが選択された状態で表示されるメニューに含まれる選択肢である。表示されるメニューM4から選択肢M41としての「サブシナリオの定義に移動」が選択されると、選択したサブシナリオAsについて、
図14Bに示すサブシナリオ定義画面Dsがディスプレイ243に表示される。
【0085】
一方、ユーザは、サブシナリオ定義画面Dsから当該サブシナリオ定義画面Dsに示されるサブシナリオ定義情報Ssにより定義されるサブシナリオAsを呼び出す箇所を表示させることができる。
図14Bは、ディスプレイ243にサブシナリオ定義画面Dsが表示されている状態で、所定の操作により、当該サブシナリオ定義画面Dsの関連情報を表示するためのメニューM5を表示した状態を示す。メニューM5は選択肢M51として、「呼び出し元に移動」と言う選択肢を含む。メニューM5から選択肢M51「呼び出し元に移動」が選択されると、当該サブシナリオ定義画面Dsに定義されるサブシナリオAs呼び出し元のうち一つを選択するメニューM52が表示される。
図14Bでは、メニューM52として、選択肢M521(「呼び出し元1」)と、選択肢M522(「呼び出し元2」)とが表示される。ユーザが選択肢M521を選択して「呼び出し元1」を選択すると、「呼び出し元1」に対応するメインシナリオ画面Dmがディスプレイ243に表示されて、当該メインシナリオ画面DmにおいてサブシナリオAsを呼び出している範囲(呼び出し元)が表示される。例えば、多数の呼び出し元がシナリオSmに存在する場合には、選択された一の呼び出し元を含んでこれの周囲がディスプレイ243に表示される。
【0086】
さらに、ユーザは、サブシナリオAsを含む画面で、当該サブシナリオAsに代えて当該サブシナリオAsを構成するアクティビティを配置する操作を指示することができる。
図14Aで、一のサブシナリオAsを選択し、所定の操作により開かれるメニューM4の選択肢M42「サブシナリオを展開」を選択すると、選択肢M421(「このサブシナリオのみ展開」)および選択肢M422(「使用している2ヶ所も展開」)が表示される。選択肢M421を選択した場合には、サブシナリオ管理部34のサブシナリオ展開部341は、メニューM4を表示させる過程で選択されたサブシナリオAsを、当該サブシナリオAsを構成するアクティビティA12~A15に展開する。つまり、サブシナリオAsに代えてアクティビティA12~A15が配置される。また、選択肢M422を選択した場合には、サブシナリオ管理部34のサブシナリオ展開部341は、シナリオSmに含まれる2つのサブシナリオAs(サブシナリオAs1とサブシナリオAs2)を、各サブシナリオAsを構成するアクティビティA12~A15に展開する。
【0087】
このように、サブシナリオ展開部341は、サブシナリオ作成部32によって定義されたサブシナリオAsを、指定受付部31が受け付けた入力に応じて、当該サブシナリオAsを構成するアクティビティA12~A15に展開する。かかる構成では、サブシナリオAsを、当該サブシナリオAsを構成するアクティビティA12~A15に簡単に戻すことができる。
【0088】
以上に説明するように本実施形態では、サーバ11のストレージ部111が本発明の「記録媒体」の一例に相当し、シナリオ管理プログラム12が本発明の「シナリオ管理プログラム」の一例に相当し、端末装置2が本発明の「シナリオ管理装置」および「コンピュータ」の一例に相当し、UI24のディスプレイ243が本発明の「シナリオ表示部」の一例に相当し、指定受付部31が本発明の「指定受付部」の一例に相当し、サブシナリオ作成部32が本発明の「一括アクティビティ作成部」の一例に相当し、パラメータ決定部321が本発明の「パラメータ決定部」の一例に相当し、サブシナリオ定義部33が本発明の「一括アクティビティ定義部」の一例に相当し、サブシナリオ展開部341が本発明の「一括アクティビティ展開部」の一例に相当し、アクティビティA11~A16、A21~A26が本発明の「複数のアクティビティ」の一例に相当し、サブシナリオAsが本発明の「一括アクティビティ」の一例に相当し、シナリオSmが本発明の「シナリオ」の一例に相当し、表計算ソフトが本発明の「他のアプリケーションプログラム」の一例に相当する。
【0089】
なお、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したものに対して種々の変更を加えることが可能である。例えば、上記の実施例では、サブシナリオAsを用いてシナリオSmを編集するにあたって、サブシナリオAsの入力パラメータがユーザによって適宜設定される。例えば
図4Eに示す例では、2番目のサブシナリオAsに対する入力パラメータarg1に対して「残業時間ファイル(2)」が設定される。この際、ユーザの入力を次のようにアシストすることができる。
【0090】
図15はユーザ入力のアシスト動作の一例を示す図である。
図15に示すように、シナリオSmで呼び出す2番目のサブシナリオAsにおいて変数arg1の入力欄をユーザが選択すると、当該入力欄に入力可能な候補がサブシナリオ定義画面Dsにおいて表示される。この候補は、シナリオSmにおいて、サブシナリオAsより前に実行されるアクティビティA11、A21で宣言されて実体値が取得されており、当該サブシナリオAsをスコープ(変数の有効な範囲)に含む変数である。
【0091】
例えば、候補である「残業時間ファイル」および「残業時間ファイル(2)」のうちから、ユーザが「残業時間ファイル(2)」を選択すると、2番目のサブシナリオAsにおいて変数arg1に「残業時間ファイル(2)」が設定される。したがって、当該サブシナリオAsでは、「残業時間ファイル(2)」が取得されることとなる。
【0092】
つまり、シナリオSmで実行されるアクティビティで宣言される変数は、当該変数の有効な範囲であるスコープを有する。これに対して、ディスプレイ243(シナリオ表示部)は、サブシナリオAsをスコープに含む変数を、当該サブシナリオAsの入力パラメータarg1に対する設定値の候補として示す。かかる構成では、ユーザは、入力パラメータarg1への設定値の入力を、当該設定値の候補を参照しつつ実行することができる。その結果、ユーザが入力パラメータarg1への設定値の入力を簡単に行うことができる。
【0093】
また、サブシナリオAsを抽出する処理を実行できる対象は、上記に示すシナリオSmに限られない。つまり、上記のシナリオSmは一つの具体例に過ぎず、種々のシナリオSmに対してサブシナリオAsを抽出する処理を実行できる。
【産業上の利用可能性】
【0094】
この発明は、ユーザがコンピュータを用いて実行していた作業を自動化することでユーザの作業負担の軽減を図るRPA技術全般に適用可能である。
【符号の説明】
【0095】
11…サーバ
111…ストレージ部(記録媒体)
12…シナリオ管理プログラム
2…端末装置(シナリオ管理装置、コンピュータ)
24…UI
243…ディスプレイ(シナリオ表示部)
31…指定受付部(指定受付部)
32…サブシナリオ作成部(一括アクティビティ作成部)
321…パラメータ決定部
33…サブシナリオ定義部(一括アクティビティ定義部)
341…サブシナリオ展開部(一括アクティビティ展開部)
A11~A16、A21~A26…アクティビティ
As…サブシナリオ(一括アクティビティ)
Sm…シナリオ