以下、図面を参照しながら本発明の実施形態を詳細に説明する。
図1は、本発明の一実施形態によるシナリオ実行システム100の構成図である。シナリオ実行システム100は、RPAを利用するユーザーのシナリオ実行装置1及び端末装置3と、事業者の変換装置5とを備える。RPAは、自動化ツールの一例である。ユーザーの例は、企業、学校、団体などであるが、これらに限らない。同図では、シナリオ実行装置1及び端末装置3をそれぞれ1台のみ示しているが、ユーザーの数と、各ユーザーが使用するシナリオ実行装置1及び端末装置3の数は任意である。変換装置5を保有する事業者は、RPAサービスを提供する事業者でもよく、他の事業者でもよい。シナリオ実行装置1、端末装置3及び変換装置5は、ネットワーク9に無線又は有線により接続される。ネットワーク9は、例えば、インターネットや携帯電話網などの公衆網であるが、LAN(Local Area Network)などの私設網でもよく、公衆網と私設網の組み合わせでもよい。ネットワーク9には、ネットワーク9を用いたコミュニケーションサービスを提供する事業者のサービス提供装置7が接続される。ネットワーク9に接続されるサービス提供装置7の数は任意である。ユーザーが変換装置5やサービス提供装置7を有してもよい。
シナリオ実行装置1は、PCなどの情報処理装置であり、RPAのシナリオを実行する。シナリオは、ユーザーインタフェースによりシナリオ実行装置1に行われる操作と、その操作の実行順とを示す。端末装置3は、例えば、スマートフォン、タブレット端末、PC、携帯電話などである。変換装置5は、例えば、サーバコンピュータなどの情報処理装置で実現される。変換装置5は、シナリオ実行中のシナリオ実行装置1から受信した端末装置3宛ての通知を、サービス提供装置7が提供するネットワークサービスに応じたデータ形式に変換し、サービス提供装置7に送信する。また、変換装置5は、送信した通知に対応して端末装置3が返送した応答をサービス提供装置7から受信する。変換装置5は、受信した応答のデータ形式をシナリオ実行装置1が受信可能なデータ形式に変換し、シナリオ実行装置1に送信する。シナリオ実行装置1は、応答が示すユーザーの指示に従ってシナリオの実行を継続又は終了したり、他のシナリオを実行したりする。サービス提供装置7が提供するコミュニケーションサービスは、SNS(Social Networking Service)等を用いたメッセンジャーサービス、電子メール、SMS(ショートメッセージサービス)、電話などである。メッセンジャーサービスの例は、LINE(登録商標)、Slack(登録商標)、TEAMS(登録商標)などのチャットツールである。
図2は、本発明の一実施形態によるシナリオ実行装置1の構成を示す機能ブロック図であり、本実施形態と関係する機能ブロックのみを抽出して示してある。シナリオ実行装置1は、通信部11と、記憶部12と、入力部13と、表示部14と、処理部15とを備える。通信部11は、ネットワーク9を介して他の装置と通信する。記憶部12は、シナリオファイルを記憶する。シナリオファイルは、シナリオが記述されたファイルである。シナリオは、処理モジュールと、処理モジュールの実行順とを示す。処理モジュールには、ユーザー操作モジュールと、ユーザーインタフェースモジュールとがある。ユーザー操作モジュールは、ユーザーインタフェースを用いたユーザー操作を表す。ユーザー操作の対象は、例えば、シナリオ実行装置1において実行されているアプリケーションプログラム(以下、アプリとも記載する。)やOS(Operation System)などである。ユーザーインタフェースモジュールは、ユーザーへの通知、及び、通知に対するユーザーからの応答の受信を行うインタフェースの利用を表す。ユーザーへの通知、及び、通知に対する応答の受信は、例えば、ネットワーク9を介して行われる。ユーザーインタフェースモジュールは、ユーザーへの通知のみを行ってもよい。ユーザーインタフェースモジュールには、ユーザーへの通知の内容と、通知に対応して受信した応答別の後続処理情報とが付加される。後続処理情報は、応答に応じて行う処理を示す。例えば、後続処理情報は、実行中のシナリオファイルの実行継続、実行中のシナリオファイルの実行終了、実行中のシナリオファイルとは異なる他のシナリオファイルの実行開始などである。
入力部13は、キーボード、ポインティングデバイス(マウス、タブレット等)、ボタン、タッチパネル等の既存の入力装置を用いて構成される。入力部13は、ユーザーの指示をシナリオ実行装置1に入力する際にユーザーによって操作されるユーザーインタフェースである。表示部14は、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の画像表示装置である。
処理部15は、シナリオ作成部16と、シナリオ実行管理部17と、シナリオ実行部18と、機能X実行部19とを有する。
シナリオ作成部16は、作成情報受信部161と、画面表示制御部162と、シナリオ登録部163とを備える。作成情報受信部161は、入力部13によりユーザーが入力した、シナリオの作成に関する情報を受ける。画面表示制御部162は、シナリオ作成画面を表示部14に表示する。シナリオ作成画面は、シナリオ作成に使用可能な処理モジュールのリストと、作成中のシナリオを構成する処理モジュール及びその実行順の情報を表示する。シナリオ登録部163は、ユーザーがシナリオ作成画面を用いて行った処理モジュールの選択及び選択された処理モジュールの実行順の指定に基づいて作成したシナリオが記述されたシナリオファイルを生成する。処理モジュールには、入力部13によりユーザーが入力したプロパティ情報の値が付加される。プロパティ情報は、処理モジュールに関する設定を表す変数とその値とを含む。シナリオ登録部163は、生成したシナリオファイルを記憶部12に登録する。
シナリオ実行管理部17は、シナリオの実行を管理する。シナリオ実行管理部17は、ユーザーが入力部13により入力した指示に従って、シナリオの実行スケジュールを記憶部12に記憶してもよい。シナリオ実行管理部17は、記憶された実行スケジュールに従ってシナリオの実行をシナリオ実行部18に指示する。
シナリオ実行部18は、読出部181と、判断部182と、操作制御部183と、通知部184と、実行制御部185とを備える。読出部181は、シナリオ実行管理部17により実行が指示されたシナリオが記述されたシナリオファイルから実行順に処理モジュールを読み出す。判断部182は、読出部181が読み出した処理モジュールがユーザー操作モジュールであるかユーザーインタフェースモジュールであるかを判断する。操作制御部183は、判断部182がユーザー操作モジュールであると判断した場合、当該ユーザー操作モジュールにより示されるユーザー操作を行うよう入力部13を制御する。
通知部184は、判断部182がユーザーインタフェースモジュールであると判断した場合、当該ユーザーインタフェースモジュールにより示されるユーザーへの通知を変換装置5に送信する。実行制御部185は、通知部184による通知に対応して端末装置3が送信した応答を変換装置5から受信する。実行制御部185は、受信した応答に対応してユーザーインタフェースモジュールに設定されている後続処理情報に従って、シナリオファイルの実行の継続又は中断、あるいは、他のシナリオファイルの実行を行う。シナリオファイルの実行の継続の場合、ユーザーが入力した変数の設定値が応答に含まれ得る。実行制御部185は、シナリオファイルの実行により通知の送信前に得られた変数の値を、応答に含まれる当該変数の設定値に更新し、更新された設定値の変数を用いてシナリオファイルの実行を継続する。また、シナリオファイルの実行の継続の場合、プロパティ情報の設定値が応答に含まれ得る。実行制御部185は、継続してシナリオファイルを実行する際に、応答に含まれるプロパティ情報の設定値を用いて、シナリオファイルに含まれる処理モジュールを実行する。
機能X実行部19は、入力部13を用いた操作に従って機能Xを実行する。機能Xは、シナリオの実行に使用され得る機能であり、任意の機能とすることができる。機能Xは、CPUがアプリケーションプログラムを実行することによって実現されてもよい。例えば、機能Xは、表計算、文書編集、ウェブブラウザ、はがき作成、図形描画等、PCに実装される任意の機能とすることができる。同図では、機能Xを実行する機能X実行部19(X=A、B、C)を、機能A実行部19a、機能B実行部19b、機能C実行部19cと記載している。
図3は、端末装置3の構成を示す機能ブロック図であり、本実施形態と関係する機能ブロックのみを抽出して示してある。端末装置3は、通信部31と、制御部32と、表示部33と、入力部34とを備える。通信部31は、ネットワーク9を介して他の装置と通信する。制御部32は、通信部31を介して受信したデータを表示部33へ表示する処理や、入力部34により入力された指示に従って、通信部31を介して情報を送受信する処理を行う。表示部33は、CRTディスプレイ、液晶ディスプレイ、有機ELディスプレイ等の画像表示装置である。入力部34は、キーボード、ポインティングデバイス、ボタン、タッチパネル等の既存の入力装置を用いて構成される。端末装置3がスマートフォンや携帯電話である場合、端末装置3は、通話のための受話部及び送話部をさらに備える。
図4は、変換装置5の構成を示す機能ブロック図であり、本実施形態と関係する機能ブロックのみを抽出して示してある。変換装置5は、通信部51と、記憶部52と、変換部53とを有する。通信部51は、ネットワーク9を介して他の装置と通信する。記憶部52は、ネットワークサービス毎のデータ形式の変換ルールを記憶する。変換部53は、シナリオ実行装置1から受信した端末装置3宛ての通知を、記憶部52に記憶される変換ルールに従って、サービス提供装置7が提供するネットワークサービスに応じたデータ形式に変換して出力する。また、変換部53は、端末装置3からシナリオ実行装置1に返送された応答をサービス提供装置7から受信し、記憶部52に記憶される変換ルールに従って、受信した応答のデータ形式をシナリオ実行装置1が受信可能なデータ形式に変換して出力する。チャットを利用して端末装置3と通信を行う場合、変換部53は、チャットボットの機能を有してもよい。また例えば、電話を利用して端末装置3と通信を行う場合、変換部53は、テキストを音声に変換して出力する音声合成装置と、入力した音声をテキストに変換する音声認識装置とを有する。
図5〜図10は、シナリオ実行装置1における画面表示例を示す図である。図5に示すシナリオ作成画面200aは、ライブラリ表示領域201及びシナリオ作成領域202を有する。ライブラリ表示領域201は、利用可能な処理モジュールのリストをモジュール名により表示する領域である。モジュール名は、処理モジュールの名称である。処理モジュールのリストには、ユーザー操作モジュール及びユーザーインタフェースモジュールが含まれる。シナリオ作成領域202は、処理モジュールの実行順を指定する領域である。
ここでは、ユーザーインタフェースモジュールとして、ユーザー通知モジュールと、プロパティ設定モジュールとがある場合について説明する。ユーザー通知モジュールは、ユーザーへの通知のみを行うか、ユーザーへの通知とユーザーからの応答受信を行い、応答に設定されたユーザー指示に応じて後続処理を決定する。プロパティ設定モジュールは、ユーザーへの通知とユーザーからの応答受信を行い、応答に設定されたプロパティ情報の設定値をシナリオ内の処理モジュールのプロパティ情報に設定して、シナリオの実行を継続する。
ユーザーは、マウス等の入力部13により、ライブラリ表示領域201に表示される処理モジュールの一覧の中から、追加する処理モジュールのモジュール名を選択する。追加する処理モジュールを追加処理モジュールと記載する。同図では、追加処理モジュールがユーザー通知モジュールである場合を例に示している。「ユーザー通知」は、ユーザー通知モジュールのモジュール名である。ユーザーは、マウスにより、選択した追加処理モジュールを、シナリオ作成領域202までドラッグする(ドラッグアンドドロップ)。これにより、図6に示すシナリオ作成画面200bが表示される。
シナリオ実行装置1は、図6に示すシナリオ作成画面200bのシナリオ作成領域202におけるドラッグの終了位置に、追加処理モジュールのモジュール名を表示する処理シンボル212−1を追加表示する。終了位置は、シナリオの開始を表すノード211−1と、シナリオの終了を表すノード211−2との間である。ユーザーが、マウス等の入力部13により処理シンボル212−1のプロパティ入力を指示した場合、シナリオ実行装置1は、図7に示すプロパティ入力画面220を表示する。処理シンボル212−1のプロパティ入力の指示は、例えば、処理シンボル212−1の表示上でダブルクリックする操作などとすることができる。
プロパティ入力画面220は、対象アプリケーション入力フィールド221と、接続設定入力フィールド222と、発話の種類の選択ボタン223a、223bと、発話設定領域224とを含む。対象アプリケーション入力フィールド221は、ユーザーの端末装置3への通知に用いるネットワークサービスのアプリケーションを指定する。指定されるアプリケーションは、各種のメッセンジャーサービス、電子メール、独自UI(ユーザーインタフェース)、ユーザーのロカールアプリケーション、電話などである。接続設定入力フィールド222には、対象アプリケーション入力フィールド221において選択されたアプリケーションを用いた通知の送信先をテキストにより入力する。チャットなどのメッセンジャーサービスの場合、そのメッセンジャーサービスにおいて宛先として用いられるユーザーのIDや名前が設定される。電子メールの場合、メールアドレスが設定される。また、電話の場合、電話番号が設定される。選択ボタン223a、223bはそれぞれ、発話の種類が通知のみであるか、又は、ユーザー応答有りかを選択する。ユーザー応答有とは、通知を行い、さらに、その通知に対するユーザーの応答を受信することをいう。
発話設定領域224は、発話の種類が通知のみかユーザー応答有りかによって異なる。発話設定が通知のみの場合、発話設定領域224は、通知メッセージ入力フィールド225及び通知変数入力フィールド226を有する。発話設定がユーザー応答有りの場合、発話設定領域224は、通知メッセージ入力フィールド225及び通知変数入力フィールド226に加え、ユーザー応答用ボタン設定領域227及び通知間隔選択ボタン228を有する。
通知メッセージ入力フィールド225には、ユーザーに通知するメッセージがテキストにより入力される。通知変数入力フィールド226には、シナリオの実行によって得られた変数のうち、ユーザーに値を通知する変数を入力する。変数はプルダウンメニューにより選択され、通知を行うときに用いる変数名をテキストにより入力される。プルダウンメニューには、シナリオ内で使用されている変数がメニュー表示される。
ユーザー応答用ボタン設定領域227では、通知を受信した端末装置3においてユーザーが応答を行うためのボタンを設定する。ユーザー応答用ボタン設定領域227は、ボタン表示名入力フィールド2271と、ボタンが選択された場合のアクション(動作)を選択するアクション選択フィールド2272と、ユーザーが値を設定する変数を選択する変数選択フィールド2273とを含む。
ボタン表示名入力フィールド2271には、ユーザーが応答を入力するためのボタンに表示する文字列を入力する。アクション選択フィールド2272に設定されるアクション及び変数選択フィールド2273に設定される変数は、後続処理情報として用いられる。アクションは、シナリオ内の指定の処理モジュールを実行(シナリオの実行継続)、変数に値を設定してシナリオ内の指定の処理モジュールを実行(シナリオの実行継続)、シナリオの実行終了、指定のシナリオの実行、保留などである。同図に示すアクション選択フィールド2272では、プルダウンメニューによりアクションを選択可能である。シナリオの実行継続である場合、ユーザーは、次に実行する処理モジュールを選択する。例えば、ユーザー通知モジュールに後続する処理モジュールのモジュール名をプルダウンメニューに含めて表示し、後続する処理モジュールをユーザーに選択させる。なお、ユーザー通知モジュールに後続する処理モジュールが一つの場合は、モジュール名の指定を省略してもよい。変数に値を設定してシナリオ内の指定の処理モジュールを実行の場合、変数選択フィールド2273にシナリオ内に用いられている変数をプルダウンメニューにより表示し、値を設定する変数をユーザーに選択させる。指定のシナリオの実行の場合、アクション選択フィールド2272にシナリオファイル名をプルダウンメニューに含めて表示し、実行させるシナリオのシナリオファイル名をユーザーに選択させる。通知間隔選択ボタン228は、ユーザーへ通知した応答が受信できなかった場合、又は、アクションが保留である場合に、通知の再送を行う時間間隔を選択するためのボタンである。
ユーザーが入力部13によりプロパティ入力画面220のOKボタン229をクリックするなど保存操作を行うと、シナリオ実行装置1は、処理シンボル212−1が表すユーザー通知モジュールと対応付けて、プロパティ入力画面220に入力された設定値のプロパティ情報を記憶する。
図7には、端末装置3の表示部33に表示される通知画面400の例がさらに示されている。端末装置3は、実装しているメッセンジャーサービスのアプリを用いて変換装置5から通知を受信し、通知画面400を表示する。通知内容は、プロパティ入力画面220に設定された内容に基づいており、変換装置5はこの設定内容をシナリオ実行装置1から受信する。テキスト401は、通知メッセージ入力フィールド225に入力されたテキストの表示である。テキスト402は、通知変数入力フィールド226において入力された変数名と、その変数名が設定された変数の値との表示である。ボタン403a、403b、403c、403dは、ボタン表示名入力フィールド2271に入力されたボタン表示名を表示する。ユーザーがいずれかのボタン403a、403b、403c、403dを選択すると、端末装置3は、選択されたボタンの識別情報を指示内容として設定した応答を送信する。
図8は、シナリオ完成後のシナリオ作成画面200cを示している。シナリオ作成領域202には、ユーザーが入力部13により選択した処理モジュールのモジュール名が記述された矩形の処理シンボル212−1〜212−4が表示されている。矢印213−1〜213−6は、処理モジュールの実行順を表す。開始を表すノード211−1からの矢印213−1は、シナリオ開始後に、矢印の先の処理シンボル212−2が表す処理モジュール実行することを示す。矢印213−2は、矢印の根元の処理シンボル212−2が表す処理モジュールを実行した後に、矢印の先の処理シンボル212−1が表す処理モジュールを実行することを表す。矢印213−3は、矢印の根元の処理シンボル212−1が表す処理モジュールを実行した後に、矢印の先の処理シンボル212−3が表す処理モジュールを実行することを表す。矢印213−4は、矢印の根元の処理シンボル212−1が表す処理モジュールを実行した後に、矢印の先の処理シンボル212−4が表す処理モジュールを実行することを表す。処理シンボル212−1のユーザー通知モジュールを実行した後、処理シンボル212−3と処理シンボル212−4とのいずれが表す処理モジュールを実行するかは、プロパティ入力画面220のユーザー応答用ボタン設定領域227に設定された内容及びユーザーからの応答に従う。
図9は、プロパティ設定モジュールを用いてシナリオを作成したシナリオ作成画面200dを示している。シナリオ作成領域202には、ユーザーが入力部13により選択した処理モジュールのモジュール名が記述された矩形の処理シンボル215−1〜215−3が表示されている。矢印216−1〜216−4は、処理モジュールの実行順が、処理シンボル215−1、215−2、215−3であることを表す。処理シンボル215−1及び215−3は、ユーザー操作モジュールを表し、処理シンボル215−2は、プロパティ設定モジュールを表す。
ユーザーが、マウス等の入力部13により処理シンボル215−1の表示上でダブルクリックするなど、処理シンボル215−1のプロパティ入力を指示した場合、シナリオ実行装置1は、処理Aのユーザー操作モジュールのプロパティ入力画面を表示する。ユーザーは、入力部13により、プロパティ入力画面に、処理Aのプロパティ情報の設定値を入力する。ユーザーが、入力部13によりプロパティ情報の保存操作を行うと、シナリオ実行装置1は、処理シンボル215−1が表す処理Aのユーザー操作モジュールと対応付けて、プロパティ入力画面に入力された処理Aのプロパティ情報を記憶する。
同様に、ユーザーが、入力部13により処理シンボル215−3のプロパティ入力を指示した場合、シナリオ実行装置1は、処理Bのユーザー操作モジュールのプロパティ入力画面を表示する。ユーザーは、入力部13により、プロパティ入力画面に、処理Bのプロパティ情報の設定値を入力する。ユーザーが、入力部13によりプロパティ情報の保存操作を行うと、シナリオ実行装置1は、処理シンボル215−3が表す処理Bのユーザー操作モジュールと対応付けて、プロパティ入力画面に入力された処理Bのプロパティ情報を記憶する。
本実施形態のプロパティ情報は、1以上の変数それぞれの識別情報と、各変数の値と、変数の説明との情報を含む。変数の識別情報として、例えば、変数が属するグループ名と、変数名との組み合わせを用いる。プロパティ情報はさらに、変数のデータ形式の情報を含んでもよい。なお、複数のユーザー操作モジュールのプロパティ情報に、同じ変数を使用し得る。例えば、処理Aのユーザー操作モジュールのプロパティ情報に用いられる変数を、処理Bのユーザー操作モジュールのプロパティ情報で用いてもよい。
ユーザーが、入力部13により処理シンボル215−2のプロパティ入力を指示した場合、シナリオ実行装置1は表示部14に、図10に示すプロパティ入力画面250を表示する。プロパティ入力画面250は、対象アプリケーション入力フィールド251と、接続設定入力フィールド252と、発話設定領域253とを含む。対象アプリケーション入力フィールド251は、対象アプリケーション入力フィールド221(図7)と同様に、ユーザーの端末装置3への通知に用いるネットワークサービスのアプリケーションを指定する。接続設定入力フィールド252には、接続設定入力フィールド222(図7)と同様に、対象アプリケーション入力フィールド251において選択されたアプリケーションを用いた通知の送信先をテキストにより入力する。
発話設定領域253は、ウェルカムメッセージ入力フィールド254と、クローズメッセージ入力フィールド255と、設定プロパティ情報入力領域256と、通知間隔選択ボタン257とを有する。ウェルカムメッセージ入力フィールド254には、ウェルカムメッセージをテキストで記述する。ウェルカムメッセージは、プロパティ設定モジュールの開始により最初にユーザーに通知するメッセージである。クローズメッセージ入力フィールド255には、クローズメッセージをテキストで記述する。クローズメッセージは、ユーザーから指示の受信を終了する際に通知するメッセージである。
設定プロパティ情報入力領域256には、プロパティ情報の変数のうち、ユーザーに値の設定を要求する変数の識別情報と、その変数の設定値の回答方式とを入力する。設定プロパティ情報入力領域256は、グループ名入力フィールド2561、変数名入力フィールド2562、説明入力フィールド2563、種別入力フィールド2564及び表示入力フィールド2565を含む。グループ名入力フィールド2561、変数名入力フィールド2562、説明入力フィールド2563にはそれぞれ、シナリオ内の1以上の処理モジュールのプロパティ情報に用いられている変数のグループ名、変数名、説明が設定される。なお、シナリオ実行装置1は、シナリオ内の各処理モジュールのプロパティ情報に使用されている全ての変数を一覧表示し、その表示の中からユーザーが入力部13により変数を選択してもよい。シナリオ実行装置1は、選択された変数のグループ名、変数名、説明をそれぞれ、グループ名入力フィールド2561、変数名入力フィールド2562、説明入力フィールド2563に入力する。
種別入力フィールド2564は、設定値の回答方式の種別をプルダウンメニューの中から選択する。種別は、例えば、日付、ボタン、テキスト、数値などである。表示入力フィールド2565は、種別がボタンである場合に、ボタンに表示する表示名を設定する。この表示名は、変数の設定値として用いられる。通知間隔選択ボタン257は、ユーザーへ通知した応答が受信できなかった場合に、通知の再送を行う時間間隔を選択するためのボタンである。
ユーザーが入力部13によりプロパティ入力画面250のOKボタン258をクリックするなど保存操作を行うと、シナリオ実行装置1は、処理シンボル215−2が表すプロパティ設定モジュールと対応付けて、プロパティ入力画面250に入力された設定値のプロパティ情報を記憶する。なお、シナリオ実行装置1は、プロパティ設定モジュールのプロパティ情報に、ユーザー応答有を示す発話の種類、又は、通知及びプロパティ設定を示す発話の種類を設定してもよい。また、シナリオ実行装置1は、プロパティ情報に、応答受信と対応付けて、プロパティ情報を更新してシナリオ実行継続を示す後続処理情報を設定してもよい。すなわち、応答受信後に実行する処理モジュールとして、プロパティ設定モジュールの次の処理モジュールが指定される。
図11は、端末装置3の表示部33に表示される通知画面410の例を示す図である。端末装置3は、実装しているメッセンジャーサービスのアプリを用いて変換装置5から通知を受信し、通知画面410を表示する。通知内容は、プロパティ入力画面250に設定された内容に基づいており、変換装置5はこの設定内容をシナリオ実行装置1から受信する。最初に変換装置5から送信されたメッセージ421は、ウェルカムメッセージ入力フィールド254に入力されたウェルカムメッセージの表示である。
メッセージ422〜428は、設定プロパティ情報入力領域256に入力された内容に基づく。変換装置5から送信されたメッセージ422は、設定プロパティ情報の1番目に入力された変数名「開始日」の設定値を要求するメッセージである。端末装置3から送信されたメッセージ423は、ユーザーが端末装置3に入力した開始日の設定値である。変換装置5から送信されたメッセージ424は、設定プロパティ情報の2番目に入力された変数名「終了日」の設定値を要求するメッセージである。端末装置3から送信されたメッセージ425は、ユーザーが端末装置3に入力した終了日の設定値である。
変換装置5から送信されたメッセージ426は、設定プロパティ情報の3番目に入力された変数名「カテゴリ」の設定値を要求するメッセージである。変数名「カテゴリ」の変数の種別入力フィールド2564には「ボタン」が設定されているため、変換装置5は、設定値を選択するためのボタン427−1〜427−4を表示するための表示データを端末装置3に送信する。ボタン427−1〜427−4はそれぞれ、表示入力フィールド2565に設定された「青果」、「鮮魚」、「精肉」、「すべて」をボタン名として表示する。ユーザーが、端末装置3に表示されたボタン427−1〜427−4のいずれかを選択すると、端末装置3は、選択されたボタンのボタン名をメッセージ428として変換装置5に送信する。
変換装置5は、設定プロパティ情報入力領域256に設定された全変数の設定値を受信すると、各変数の設定値を表示して設定内容が正しいかの確認を要求するメッセージ429と、設定内容が正しいか否かの応答を入力するためのボタン430−1、430−2を表示するための表示データを送信する。ユーザーが、端末装置3に表示されたボタン430−1、430−2のいずれかを選択すると、端末装置3は、選択されたボタンのボタン名をメッセージ431として変換装置5に送信する。変換装置5は、設定内容が正しいことが設定された応答を受信し、メッセージ432を端末装置3に送信する。メッセージ432は、クローズメッセージ入力フィールド255に入力されたクローズメッセージの表示である。
なお、上記では、ユーザーインタフェースモジュールとしてユーザー通知モジュールとプロパティ設定モジュールの2種類を用いたが、ユーザー通知モジュールとプロパティ設定モジュールとを一つのユーザーインタフェースモジュールとしてもよい。この場合、ユーザーインタフェースモジュールのプロパティ入力画面は、図7に示すプロパティ入力画面220に対し、発話の種類として、例えば、通知及びプロパティ設定を選択するボタンを追加したものを使用することができる。ユーザーが通知及びプロパティ設定を選択した場合、シナリオ実行装置1は、プロパティ入力画面220の発話設定領域224に代えて、発話設定領域253を表示する。
図12は、シナリオ実行装置1におけるシナリオ生成処理を示すフロー図である。シナリオ実行装置1の作成情報受信部161は、処理モジュールの追加が入力されたか否かを判定する(ステップS110)。例えば、ユーザーは、マウス等の入力部13により、シナリオ作成画面のライブラリ表示領域201に表示される処理モジュールの一覧の中から、追加処理モジュールを選択し、シナリオ作成領域202までドラッグする。この場合、作成情報受信部161は、選択された追加処理モジュールの情報と、ドラッグの終了位置の情報とを入力部13から受信し、処理モジュールの追加が入力されたと判定する(ステップS110:YES)。画面表示制御部162は、ドラッグの終了位置に、追加処理モジュールの処理モジュール名を表示する処理シンボルを追加表示する(ステップS115)。シナリオ作成部16は、ステップS110の処理に戻る。
一方、作成情報受信部161は、処理モジュールの追加が入力されなかったと判定した場合(ステップS110:NO)、プロパティ設定指示が入力されたか否かを判定する(ステップS120)。例えば、ユーザーは、入力部13により、プロパティ設定対象の処理モジュールを表す処理シンボルをダブルクリックする。プロパティ設定対象の処理モジュールを、設定対象処理モジュールと記載する。作成情報受信部161は、プロパティ設定指示の操作が行われた処理シンボルの情報を入力部13から受信し、プロパティ設定指示が入力されたと判定する(ステップS120:YES)。画面表示制御部162は、プロパティ設定指示が行われた処理シンボルが表す設定対象処理モジュールのプロパティ入力画面を表示する(ステップS125)。ユーザーは、プロパティ入力画面に設定対象処理モジュールのプロパティ情報に用いられる各種変数の設定値を入力し、OKボタンを操作する(ステップS130)。作成情報受信部161は、設定対象処理モジュールと、入力された各種変数の設定値を含むプロパティ情報とを対応付けて記憶する。シナリオ作成部16は、ステップS110の処理に戻る。
作成情報受信部161は、ステップS120においてプロパティ設定指示が入力されなかったと判定した場合(ステップS120:NO)、シナリオ作成終了が入力されたか否かを判定する(ステップS135)。作成情報受信部161は、シナリオ作成終了が入力されなかったと判定した場合(ステップS135:NO)、ユーザー操作に応じた処理を行って(ステップS140)、ステップS110の処理に戻る。一方、作成情報受信部161は、シナリオ作成終了が入力されたと判定した場合(ステップS135:YES)、シナリオ登録部163に処理を指示する。シナリオ登録部163は、作成されたシナリオを記述したシナリオファイルを生成して記憶部12に書き込み、シナリオ生成フローを終了する(ステップS145)。
なお、上記においては、ライブラリ表示領域201に表示される処理モジュールの一覧の中から、追加処理モジュールを選択したが、ユーザー操作モジュールを任意に生成することも可能である。例えば、作成情報受信部161は、ユーザーが入力部13により操作記録開始指示を入力してから操作記録終了指示を入力するまでに入力部13により行った指示を記録し、記録した内容を実行する処理モジュールを生成する。ユーザーは、この生成された処理モジュールを、追加処理モジュールとして選択可能である。
図13及び図14は、シナリオ実行装置1におけるシナリオ実行処理を示すフロー図である。シナリオ実行装置1のシナリオ実行管理部17は、入力部13により実行対象のシナリオの情報と、実行開始とが入力されたことを検出する(ステップS210)。あるいは、シナリオ実行管理部17は、予め登録していた実行スケジュールが示す実行対象のシナリオの実行タイミングになったことを検出する。読出部181は、実行対象のシナリオが記述されたシナリオファイルを記憶部12から読み出す(ステップS215)。読出部181は、シナリオファイルに記述されている最初の処理モジュールを実行対象モジュールとする(ステップS220)。
読出部181は、シナリオファイルから実行対象モジュールの情報を読み出す(ステップS225)。実行対象モジュールの情報は、実行対象モジュールの種別と、実行対象モジュールのプロパティ情報の各変数の設定値と、実行対象モジュールの次の実行順の処理モジュールとを含む。判断部182は、処理対象モジュールの種別がユーザー操作モジュールであるかユーザーインタフェースモジュールであるかを判断する(ステップS230)。
判断部182は、処理対象モジュールの種別がユーザー操作モジュールであると判断した場合(ステップS230:ユーザー操作モジュール)、操作制御部183に処理を指示する。操作制御部183は、処理対象モジュールにより示されるユーザー操作を行うよう入力部13を制御する(ステップS235)。
読出部181は、処理対象モジュールの次の実行順が終了ノードか否かを判定する(ステップS240)。読出部181は、次の実行順が終了ノードであると判断した場合(ステップS240:YES)、シナリオの実行を終了する(ステップS245)。一方、読出部181は、次の実行順が終了ノードではないと判断した場合(ステップS240:NO)、次の実行順の処理モジュールを新たな実行対象モジュールとし(ステップS250)、ステップS225からの処理を繰り返す。
ステップS230において判断部182は、処理対象モジュールの種別がユーザーインタフェースモジュールであると判断した場合(ステップS230:ユーザーインタフェースモジュール)、通知部184に処理を指示する。通知部184は、実行対象モジュールのプロパティ情報が示す設定値に従ってユーザーへの通知を設定した通知送信要求を生成する(ステップS255)。通知部184は、生成した通知送信要求を変換装置5に送信する(ステップS260)。通知部184は、ユーザーインタフェースモジュールのプロパティ情報に通知のみが設定されているか否かを判定する(ステップS265)。通知部184は、通知のみが設定されていると判定した場合(ステップS265:YES)、ステップS240の処理に進む。ステップS240において、読出部181は、次の実行順が終了ノードか否かを判定する。
一方、通知部184は、プロパティ情報にユーザー応答有、又は、通知及びプロパティ設定が設定されている、あるいは、処理対象モジュールがプロパティ設定モジュールである場合、通知のみが設定されていないと判定する(ステップS265:NO)。この場合、通知部184は、プロパティ情報に設定されている通知間隔が示す時間のタイマを起動する(ステップS270)。通知部184は、応答を受信しない場合(ステップS275:NO)、タイマが満了を検出したか否かを判定する(ステップS280)。通知部184が、タイマの満了を検出していないと判定した場合(ステップS280:NO)、ステップS275からの処理を繰り返す。
通知部184は、応答を受信した場合(ステップS275:YES)、図14の処理を実行する。通知部184は、タイマをリセットし、応答を実行制御部185に出力する(ステップS310)。実行制御部185は、受信した応答が示す指示内容に対応する後続処理情報を、処理対象モジュールであるユーザーインタフェースモジュールのプロパティ情報から読み出す。実行制御部185は、読み出した後続処理情報の種別を判定する(ステップS315)。
実行制御部185は、後続処理情報の種別が保留であると判定した場合、通知部184に処理を指示する。通知部184は、図13のステップS270からの処理を行う。実行制御部185は、後続処理情報の種別が指定の処理モジュールの実行であると判定した場合、指定の処理モジュールを次の実行順の処理モジュールとする(ステップS320)。読出部181は、ステップS225からの処理を行う。
実行制御部185は、後続処理情報の種別が変数に値を設定して指定の処理モジュールの実行であると判定した場合、シナリオの実行により得られた変数の値を、応答に設定されている当該変数の値に更新した後(ステップS325)、ステップS320の処理を行う。
実行制御部185は、後続処理情報の種別が指定のシナリオの実行を示す場合、現在実行中のシナリオの実行を終了し(ステップS330)、指定のシナリオの開始指示をシナリオ実行管理部17に出力する(ステップS335)。シナリオ実行管理部17は、指定のシナリオについて新たに、図13及び図14に示すシナリオ実行処理を開始する。
実行制御部185は、後続処理情報の種別がシナリオの実行終了を示す場合、現在実行中のシナリオの実行を終了する(ステップS340)。
実行制御部185は、後続処理情報の種別がプロパティ情報を更新してシナリオ実行継続を示す場合、ステップS345の処理を行う。なお、実行制御部185は、処理対象モジュールがプロパティ設定モジュールであることを、プロパティ情報を更新してシナリオ実行継続を示す後続処理情報であるとみなしてもよい。実行制御部185は、応答に設定されているプロパティ情報の変数の設定値により、シナリオ内の処理モジュールに対応付けられたプロパティ情報に含まれる当該変数の設定値を更新する(ステップS345)。実行制御部185は、図13のステップS240(又はステップS250)からの処理を行う。
なお、通知部184がステップS280においてタイマの満了を検出したと判定した場合(ステップS280:YES)、通知送信要求の送信回数が予め定められた上限に達した場合、あるいは、最初の通知送信要求の送信から所定時間が経過した場合は、シナリオを終了するなど、任意のエラー処理を行ってもよい。
図15は、ユーザーインタフェースモジュール実行時のシナリオ実行システム100のシーケンス図である。まず、ユーザー通知モジュール実行時の処理を説明する。シナリオ実行装置1の通知部184はユーザー通知モジュールのプロパティ情報に設定された値に従って通知送信要求を生成する(ステップS410)。通知送信要求には、対象アプリケーションと、通知の送信先と、発話の種類と、ユーザーに通知するメッセージと、ユーザーに通知する変数の変数名及び値と、ユーザー応答用ボタンのボタン番号及びボタン表示名と、ユーザーが設定する変数の変数名とが設定される。例えば、ボタン番号は、ボタン表示名の入力順に付与される。ユーザーに通知するメッセージと、ユーザーに通知する変数の変数名及び値と、ユーザー応答用ボタンのボタン番号及びボタン表示名と、ユーザーが設定する変数の変数名とのうち一部が通知送信要求に設定されてもよい。通知部184は、通知送信要求の送信元に、自装置のアドレス情報を設定する。通信部11は、通知部184が生成した通知送信要求を、変換装置5に送信する(ステップS415)。
変換装置5の通信部51は、受信した通知送信要求を変換部53に出力する。変換部53は、対象アプリケーションが表すネットワークサービスに対応した変換ルールを記憶部52から読み出す。変換部53は、シナリオ実行装置1から受信した通知送信要求を、読み出した変換ルールに従って変換し、端末装置3宛てのユーザー通知を生成する(ステップS420)。ユーザー通知には、通知の送信先と、ユーザーに通知するメッセージと、ユーザーに通知する変数の変数名及び値と、各ボタン表示名のボタンの表示させるためのボタン表示用データと、ユーザーが設定する変数の変数名とが含まれる。なお、ネットワークサービスが電子メールの場合、ボタン表示用データに代えて、ボタン番号とボタン表示名とを対応付けたテキストをユーザー通知に設定する。変換装置5の通信部51は、生成したユーザー通知をサービス提供装置7に送信する(ステップS425)。
サービス提供装置7は、受信したユーザー通知を、通知の送信先が示す端末装置3に送信する(ステップS430)。ユーザーの端末装置3の制御部32は、通信部31が受信したユーザー通知を表示部33に表示する(ステップS435)。例えば、端末装置3は、図7に示す通知画面400を表示する。ユーザーは、表示させる内容を確認し、応答が必要な場合には、表示されるボタンのいずれかを入力部34により選択する(ステップS440)。制御部32は、選択されたボタンのボタン番号又はボタン表示名を指示内容として設定した応答を、サービス提供装置7に送信する(ステップS445)。変数の値の設定が必要な場合、制御部32は、さらに、ユーザーが入力部34により入力した変数の値を設定した応答を送信する。サービス提供装置7は、端末装置3から受信した応答を、変換装置5へ送信する(ステップS450)。なお、電子メールの場合、ユーザーは、ボタン番号や変数の値を指示内容として本文又は件名に記述した電子メールを返信する。サービス提供装置7は、端末装置3から返送された電子メールを、通知に対する応答として変換装置5へ送信する。
変換装置5の通信部51は、サービス提供装置7から応答を受信する。変換装置5の変換部53は、通知送信要求の発話種別が通知のみを示す場合、応答を破棄する。変換装置5の変換部53は、通知送信要求の発話種別が通知及びユーザー応答を示す場合、受信した応答に用いられているネットワークサービスの種別に応じた変換ルールを記憶部52から読み出す。変換部53は、変換ルールに従って応答のデータ形式を変換し(ステップS455)、変換後の応答をシナリオ実行装置1に送信する(ステップS460)。シナリオ実行装置1の通知部184は、通信部31が受信した応答から指示内容を取得する(ステップS465)。
上記により、例えば、変換装置5は、シナリオ実行装置1から受信した通知送信要求を元に、チャットインターフェースにより端末装置3に通知を送信する。端末装置3は、チャットインターフェースにより受信した通知を表示し、ユーザーは表示を確認して指示を応答する。チャットインターフェースにより送信された指示内容は、変換装置5宛てに返送され、変換装置5は、指示内容をシナリオ実行装置1に送信する。シナリオ実行装置1は、受信した指示内容に応じた後続処理を実行する。
なお、対象アプリケーションとして電話が選択された場合、変換装置5の変換部53は、音声合成装置及び音声認識装置とを用いて変換を行う。変換部53は、変換ルールに従って、通知送信要求に設定されているメッセージと、ユーザーに通知する変数の変数名及び値と、各ボタン番号又はボタン表示名とを、定型文の所定の位置に埋め込んだテキストメッセージを生成する。例えば、ボタン番号「1」のボタン表示名が「シナリオBを実行」、ボタン番号「2」のボタン表示名が「シナリオAを終了」であるとする。変換部53は、「<シナリオBを実行>のときには<1>を、<シナリオAを終了>のときには<2>を押すか話してください。」のように、定型文にボタン番号及びボタン表示名を<>で囲まれた位置に埋め込んでテキストデータを生成する。
変換部53は、通知送信要求に設定されている端末装置3の電話番号に電話をかける。端末装置3が応答し、変換装置5と端末装置3とが通話状態になると、変換部53は、テキストメッセージを音声合成して出力する。ユーザーはメッセージを聞くと、端末装置3により指示内容を発話するか、指示内容を表す数字ボタンを押す。変換装置5の変換部53は、ユーザーの発話内容又はプッシュボタン音を音声認識してテキストの指示内容に変換するか、押されたボタンの番号を信号で受信する。
なお、図15のステップS420〜ステップS435までの処理S1と、ステップS440〜ステップS450までの処理S2とは必要に応じて繰り返されてもよい。例えば、通知画面400の内容を、複数回に分けて送信してもよい。
次に、プロパティ設定モジュール実行時の処理を説明する。なお、ユーザー通知モジュール実行時と同様に、シナリオ実行装置1は通信部11を介して変換装置5とデータを送受信し、変換装置5は通信部51を介してシナリオ実行装置1及びサービス提供装置7とデータを送受信し、端末装置3は通信部31を介してサービス提供装置7とデータを送受信するが、以下ではこれらの処理の記載を省略する。
シナリオ実行装置1の通知部184はプロパティ設定モジュールのプロパティ情報を設定した通知送信要求を生成する(ステップS410)。通知送信要求には、対象アプリケーションと、通知の送信先と、通知及びプロパティ設定を示す発話の種類と、ウェルカムメッセージ及びクローズメッセージと、設定プロパティ情報入力領域256に入力された各変数の番号、変数名、種別及び表示とが設定される。番号は、設定プロパティ情報入力領域256への入力順に付与される。通知部184は、通知送信要求の送信元に、自装置のアドレス情報を設定し、変換装置5に送信する(ステップS415)。
変換装置5の変換部53は、シナリオ実行装置1から受信した通知送信要求から対象アプリケーションを読み出し、読み出した対象アプリケーションが表すネットワークサービスに対応した変換ルールを記憶部52から読み出す。変換部53は、シナリオ実行装置1から受信した通知送信要求を、読み出した変換ルールに従って変換し、端末装置3宛てのユーザー通知を生成する(ステップS420)。まず、変換部53は、ウェルカムメッセージを設定した端末装置3宛てのユーザー通知を生成し、サービス提供装置7に送信する(ステップS425)。サービス提供装置7は、受信したユーザー通知を、ユーザー通知の送信先が示す端末装置3に送信する(ステップS430)。端末装置3の制御部32は、サービス提供装置7から受信したユーザー通知を表示部33に表示する(ステップS435)。例えば、表示部33に、メッセージ421(図11)が表示される。
次に、変換装置5の変換部53は、番号1の変数の変数名を表示し、その変数の設定値の送信を要求するメッセージを設定した端末装置3宛てのユーザー通知を生成し(ステップS420)、サービス提供装置7に送信する(ステップS425)。サービス提供装置7は、受信したユーザー通知を、ユーザー通知の送信先が示す端末装置3に送信する(ステップS430)。端末装置3の制御部32は、サービス提供装置7から受信したユーザー通知を表示部33に表示する(ステップS435)。例えば、表示部33に、メッセージ422(図11)が表示される。
ユーザーは、表示部33に表示された内容に従い設定値を入力し、送信操作を行う(ステップS440)。制御部32は、入力された設定値を設定した応答を送信する(ステップS445)。サービス提供装置7は、端末装置3から受信した応答を、変換装置5へ送信する(ステップS450)。
変換装置5の変換部53は、応答を受信すると、通知送信要求に含まれる設定対象の変数のうち、設定値を受信していない変数があるか否かを判断する。変換部53は、設定値を受信していない変数があると判断した場合、次の番号の変数について、番号1の変数と同様のユーザー通知を生成し(ステップS420)、サービス提供装置7に送信する(ステップS425)。
なお、変換部53は、変数にボタンを示す種別及び表示が付加されている場合、各表示が示すテキストをボタン名としてボタンを表示するためのボタン表示用データを生成する。変換部53は、ユーザー通知に生成したボタン表示用データを付加して送信する。これにより、例えば、端末装置3の制御部32は、メッセージ426及びボタン427−1〜427−4(図11)を表示部33に表示する。ユーザーがいずれかのボタンを選択すると(ステップS440)、制御部32は、選択されたボタンの表示名又はそのボタンの識別情報を設定した応答を送信する(ステップS445)。
変換装置5の変換部53は、サービス提供装置7から応答を受信し、通知送信要求に含まれる全ての設定対象の変数の設定値を受信したと判断した場合、設定値の確認のためのユーザー通知を生成する(ステップS420)。例えば、変換部53は、受信した各変数の設定値を表示し、設定内容が正しいかの確認を要求するメッセージを含んだ端末装置3宛てのユーザー通知を生成し、サービス提供装置7へ送信する(ステップS425)。なお、変換部53は、ユーザー通知に、設定内容が正しいか否かの応答を入力するためのボタンを表示するためのボタン表示用データを付加して送信してもよい。サービス提供装置7は、受信したユーザー通知を、通知の送信先が示す端末装置3に送信する(ステップS430)。ユーザーの端末装置3の制御部32は、サービス提供装置7から受信したユーザー通知を表示部33に表示する(ステップS435)。例えば、表示部33に、メッセージ424及びボタン430−1、430−2(図11)が表示される。
ユーザーは、表示部33に表示された内容に従い、端末装置3に確認結果を入力する(ステップS440)。制御部32は、入力された確認結果を設定した応答を送信する(ステップS445)。例えば、確認結果は、ユーザーが選択したボタンを特定する情報である。サービス提供装置7は、端末装置3から受信した応答を、変換装置5へ送信する(ステップS450)。
変換装置5の変換部53は、設定値が正しいことを示す確認結果が設定された応答を受信すると、クローズメッセージを設定した端末装置3宛てのユーザー通知を生成し(ステップS420)、サービス提供装置7に送信する(ステップS425)。サービス提供装置7は、受信したユーザー通知を、通知の送信先が示す端末装置3に送信する(ステップS430)。ユーザーの端末装置3の制御部32は、サービス提供装置7から受信したユーザー通知を表示部33に表示する(ステップS435)。例えば、表示部33に、メッセージ432(図11)が表示される。
さらに、変換装置5の変換部53は、変換ルールに従ってデータ形式を変換することにより、サービス提供装置7から受信した応答から取得した各変数の設定値が設定された応答を生成し(ステップS455)、シナリオ実行装置1に送信する(ステップS460)。シナリオ実行装置1の通知部184は、受信した応答から指示内容として各変数の設定値を取得する(ステップS465)。
上記により、例えば、変換装置5は、シナリオ実行装置1から受信した通知送信要求を元に、チャットインターフェースにより端末装置3からプロパティ情報の設定値を受信する。変換装置5は、端末装置3から受信したプロパティ情報の設定値をシナリオ実行装置1に送信する。シナリオ実行装置1は、受信したプロパティ情報の設定値を用いて、シナリオを実行する。
なお、電子メールの場合、変換装置5の変換部53は、通知送信要求から読み出したウェルカムメッセージと、各変数の変数名の一覧と、変数名にボタン及び表示が付けられている場合にはその表示とを含んだ電子メールをユーザー通知として設定する。ユーザーは、端末装置3から各変数の値を記述した電子メールを返信する。サービス提供装置7は、端末装置3から返送された電子メールを、通知に対する応答として変換装置5へ送信する。
また、対象アプリケーションとして電話が選択された場合、変換装置5の変換部53は、通知送信要求に設定されている端末装置3の電話番号に電話をかける。端末装置3が応答し、変換装置5と端末装置3とが通話状態になると、変換部53は、上述したユーザー通知の内容を音声合成して出力する。ユーザーはメッセージを聞くと、端末装置3により上述した設定値を発話する。変換装置5の変換部53は、ユーザーの発話内容を音声認識して設定値を得る。
なお、シナリオ実行システム100は、シナリオ実行装置1がユーザー通知モジュールを実行することにより、ユーザーの端末装置3から変数の設定値を受信するための処理を、シナリオ実行装置1がプロパティ設定モジュールを実行することにより、プロパティ情報の各変数の設定値を受信するときの処理と同様に行ってもよい。
また、シナリオ実行装置1と端末装置3とが同一の装置であってもよい。シナリオ実行装置1と端末装置3とが同一の装置の場合、シナリオ実行装置1が、ネットワーク9を介した装置間のデータの送受信の機能を除き、チャットサービスに関する変換装置5の機能及びサービス提供装置7の機能を有してもよい。この場合、シナリオ実行装置1は、ネットワーク9を介することなく、ユーザーのへの通知及び通知に対するユーザーからの応答の受信を行うことができる。また、シナリオ実行装置1と端末装置3とが同一の装置であり、かつ、シナリオ実行装置1が音声合成装置及び音声認識装置を利用した変換装置5の変換部53の機能を有する場合、シナリオ実行装置1は、ネットワーク9を介することなく、ユーザーのへの音声による通知及びユーザーの発話による応答の受信を行うことができる。
以上説明した実施形態によれば、シナリオ実行装置が自動化ツールのシナリオの実行途中においてシナリオの実行に関するユーザーの指示を受け、指示に従って後続の処理を行うことができる。
例えば、ユーザー通知モジュールの実行順をシナリオの終了ノードの直前としたり、シナリオにおいてエラーが発生したときのルートにユーザー通知モジュールを配置したりすることで、シナリオの実行完了や、エラーの発生をユーザーに通知することができる。例えば、ユーザーは、別の場所で業務を行っている間や、出張などで外出している間に、シナリオ実行装置にシナリオを実行させることで、効率的に業務を遂行することができる。しかし、従来、次のシナリオを実行させるために現在実行中のシナリオの実行が終了したことや、シナリオの実行が何らかの原因により中断したことを知るためには、実際にユーザーがシナリオ実行装置を確認する必要があった。そのため、別の場所で業務を行っているユーザーが頻繁にシナリオ実行装置を確認しに行ったり、シナリオ実行装置の前で監視を行ったりしていた。また、ユーザーは、出張前に実行を指示したシナリオがエラー発生によって中断したことを帰社するまで知ることができないこともあった。
本実施形態のシナリオ実行装置によれば、シナリオ実行が完了したことや、シナリオの実行中に何等かの原因により中断したことなどを、ユーザーに通知することが可能になる。よって、ユーザーは、シナリオ実行装置のシナリオ実行状態を頻繁に確認するような監視を行う必要ない。また、通知を受けたユーザーは、遠隔でシナリオ実行装置に作業の指示を行うことにより、シナリオ実行装置の動作を制御することが可能になる。従って、ユーザーは、時間と場所に縛られることなく自身の業務を行いながら、シナリオ実行装置に自動で作業を行わるせることができるため、従来よりも効果的に業務の効率化を図ることが可能となる。
また、ユーザーは、同じシナリオであっても、プロパティ情報を変更してからシナリオ実行装置に実行させる場合がある。従来は、シナリオ実行装置が表示するプロパティ入力画面に直接プロパティ情報の設定値を入力するか、シナリオ実行時にテキストファイルなどに入力した設定値をシナリオ実行装置が読み取っていた。この場合、ユーザーは、意識してプロパティ情報の設定を変更する必要があり、直感的にプロパティ情報を変更し、シナリオを実行させることは困難であった。本実施形態のシナリオ実行装置によれば、シナリオの冒頭にプロパティ設定モジュールを配置することにより、シナリオ実行時に、ローカル環境であるユーザーの端末装置にチャットウィンドを表示し、対話形式で確認しながらプロパティ情報の設定内容を変更することも可能となる。このように、ユーザー対話形式で確認を行いながらプロパティ情報を設定することができるため、RPAに関するスキルが高くないユーザーであっても、直感的にプロパティ情報を設定し、設定誤りを低減してシナリオを実行させることが可能になる。
上記においては、ユーザーは、シナリオ実行装置1を用いてシナリオを生成しているが、シナリオ実行装置1とは異なるPCなどのシナリオ作成装置(情報処理装置)を用いてシナリオを作成してもよい。この場合、シナリオ作成装置は、入力部13、表示部14、シナリオ作成部16を備え、さらに通信部11及びシナリオ実行管理部17等の他の機能部を備えてもよい。
上述した実施形態におけるシナリオ実行装置1、端末装置3、変換装置5及びサービス提供装置7の機能をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
以上説明した実施形態によれば、シナリオ実行装置は、入力部と、機能実行部と、記憶部と、読出部と、判断部と、操作制御部と、通知部と、実行制御部とを備える。入力部は、ユーザー操作を入力する。機能実行部は、入力部によるユーザー操作に従って所定の機能を実行する。機能実行部は、例えば、機能A実行部19a、機能B実行部19b、機能C実行部19cである。記憶部は、ユーザー操作モジュール又はユーザーインタフェースモジュールである1以上の処理モジュールと、それら処理モジュールの実行順とを示すシナリオファイルを記憶する。ユーザー操作モジュールは、機能実行部に対するユーザー操作を表す。ユーザーインタフェースモジュールは、ユーザーへの通知及びユーザーからの応答の受信を行うインタフェースの利用を表す。読出部は、実行対象のシナリオファイルから実行順に処理モジュールを読み出す。判断部は、読出部が読み出した処理モジュールがユーザー操作モジュールであるかユーザーインタフェースモジュールであるかを判断する。操作制御部は、判断部がユーザー操作モジュールであると判断した場合、当該ユーザー操作モジュールにより示されるユーザー操作を行うよう入力部を制御する。通知部は、判断部がユーザーインタフェースモジュールであると判断した場合、ユーザーインタフェースモジュールにより示されるユーザーへの通知を行う。通知は、実行対象のシナリオファイルの実行により当該通知の送信前に得られた変数の値を含んでもよい。実行制御部は、通知部による通知に対応して受信した応答に基づいてシナリオファイルの実行の継続又は終了あるいは他のシナリオファイルの実行を行う。
ユーザーインタフェースモジュールは、指示内容と、シナリオファイルの実行の継続又は終了あるいは他のシナリオファイルの実行を表す後続処理情報とを対応付けた情報を含んでもよい。実行制御部は、受信した応答が示す指示内容に対応してユーザーインタフェースモジュールに設定されている後続処理情報に従って、シナリオファイルの実行の継続又は終了あるいは他のシナリオファイルの実行を行う。後続処理情報は、シナリオファイルの実行の継続の場合は次に実行する処理モジュールの情報を含んでもよい。
実行制御部は、ユーザーインタフェースモジュールに通知のみなど、応答を受信しない旨の情報が設定されている場合、通知部が通知を行った後、シナリオファイルの実行を継続する。
応答は、変数の設定値を含んでもよい。実行制御部は、シナリオファイルの実行により通知の送信前に得られた変数の値を、受信した応答に含まれる当該変数の設定値に更新し、更新された当該変数を用いて実行対象のシナリオファイルの実行を継続する。
また、応答は、処理モジュールに関する設定を表すプロパティ情報の設定値を含んでもよい。実行制御部は、実行対象のシナリオファイルの実行を継続する場合、受信した応答に含まれるプロパティ情報の設定値を用いてシナリオファイルに含まれる処理モジュールを実行する。
通知部による通知は、変換装置によってデータ形式が変換された後に、ユーザーの端末装置に送信される。実行制御部は、端末装置から返送され、変換装置によってデータ形式が変換された応答を受信する。変換装置は、例えば、チャット、電子メール、又は、電話により端末装置への通知の送信と端末装置からの応答の受信とを行う。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。