IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

特開2023-30614情報処理装置、フロー生成方法、及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023030614
(43)【公開日】2023-03-08
(54)【発明の名称】情報処理装置、フロー生成方法、及びプログラム
(51)【国際特許分類】
   G06F 3/0484 20220101AFI20230301BHJP
   G06F 11/34 20060101ALI20230301BHJP
   G06Q 10/10 20230101ALI20230301BHJP
【FI】
G06F3/0484
G06F11/34 138
G06Q10/10 310
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2021135838
(22)【出願日】2021-08-23
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】田附 朋之
(72)【発明者】
【氏名】高野 隆一
(72)【発明者】
【氏名】山田 剛
【テーマコード(参考)】
5B042
5E555
5L049
【Fターム(参考)】
5B042MA08
5B042MA14
5B042MC37
5E555AA04
5E555AA05
5E555AA09
5E555AA44
5E555AA76
5E555BA02
5E555BA03
5E555BA05
5E555BA06
5E555BA20
5E555BB02
5E555BB03
5E555BB05
5E555BB06
5E555BB20
5E555BC04
5E555BC14
5E555CC01
5E555CC03
5E555DA01
5E555DB16
5E555DB25
5E555DC13
5E555DC41
5E555DD12
5E555EA03
5E555EA07
5E555EA08
5E555EA11
5E555EA14
5E555EA20
5E555FA00
5L049AA07
(57)【要約】
【課題】アプリケーションを実行するコンピュータに処理させる条件分岐を含む操作のフローをより効率的に生成できる情報処理装置を提供すること。
【解決手段】アプリケーションを実行するコンピュータに処理させる操作のフローを生成する情報処理装置であって、ユーザから操作を受け付ける一つ以上の画面を表示する表示制御手段と、画面に対する操作に基づき、画面の表示情報から操作に応じた操作項目を特定する操作項目特定手段と、操作項目に応じた条件を対応付けた操作部品を生成する操作部品生成手段と、ユーザの操作順に従って操作部品から操作のフローを生成するフロー生成手段と、生成された複数のフローを比較し、フローを構成する操作部品の差分を抽出する差分抽出手段と、差分のあった操作部品の前に、条件分岐の操作部品を設定する条件分岐設定手段と、を有する情報処理装置により上記課題を解決する。
【選択図】図3
【特許請求の範囲】
【請求項1】
アプリケーションを実行するコンピュータに処理させる操作のフローを生成する情報処理装置であって、
ユーザから操作を受け付ける一つ以上の画面を表示する表示制御手段と、
前記画面に対する操作に基づき、前記画面の表示情報から前記操作に応じた操作項目を特定する操作項目特定手段と、
前記操作項目に応じた条件を対応付けた操作部品を生成する操作部品生成手段と、
前記ユーザの操作順に従って前記操作部品から操作のフローを生成するフロー生成手段と、
生成された複数の前記フローを比較し、前記フローを構成する前記操作部品の差分を抽出する差分抽出手段と、
差分のあった前記操作部品の前に、条件分岐の操作部品を設定する条件分岐設定手段と、
を有する情報処理装置。
【請求項2】
前記条件分岐設定手段は、所定の条件を満たすか否かにより分岐する前記条件分岐の操作部品を設定する
請求項1記載の情報処理装置。
【請求項3】
前記条件分岐設定手段は、所定の条件を満たすか又は満たさない場合の分岐を、差分のあった前記操作部品の後であって、差分のなかった操作部品にスキップするように設定する
請求項2記載の情報処理装置。
【請求項4】
前記フローの操作部品を表示し、前記条件分岐の操作部品に対する編集の操作を、前記ユーザから受け付ける操作部品編集手段、
を更に有する請求項1乃至3の何れか一項に記載の情報処理装置。
【請求項5】
前記操作部品編集手段は、前記フローの操作部品を対話形式で表示する
請求項4記載の情報処理装置。
【請求項6】
前記操作のフローは、ソフトウェアロボットが前記アプリケーションを操作するために利用されること
を特徴とする請求項1乃至5の何れか一項に記載の情報処理装置。
【請求項7】
アプリケーションを実行するコンピュータに処理させる操作のフローを生成する情報処理装置が実行するフロー生成方法であって、
ユーザから操作を受け付ける一つ以上の画面を表示する表示制御ステップと、
前記画面に対する操作に基づき、前記画面の表示情報から前記操作に応じた操作項目を特定する操作項目特定ステップと、
前記操作項目に応じた条件を対応付けた操作部品を生成する操作部品生成ステップと、
前記ユーザの操作順に従って前記操作部品から操作のフローを生成するフロー生成ステップと、
生成された複数の前記フローを比較し、前記フローを構成する前記操作部品の差分を抽出する差分抽出ステップと、
差分のあった前記操作部品の前に、条件分岐の操作部品を設定する条件分岐設定ステップと、
を有するフロー生成方法。
【請求項8】
前記条件分岐設定ステップは、所定の条件を満たすか否かにより分岐する前記条件分岐の操作部品を設定する
請求項7記載のフロー生成方法。
【請求項9】
前記条件分岐設定ステップは、所定の条件を満たすか又は満たさない場合の分岐を、差分のあった前記操作部品の後であって、差分のなかった操作部品にスキップするように設定する
請求項8記載のフロー生成方法。
【請求項10】
前記フローの操作部品を表示し、前記条件分岐の操作部品に対する編集の操作を、前記ユーザから受け付ける操作部品編集ステップ、
を更に有する請求項7乃至9の何れか一項に記載のフロー生成方法。
【請求項11】
前記操作部品編集ステップは、前記フローの操作部品を対話形式で表示する
請求項10記載のフロー生成方法。
【請求項12】
前記操作のフローは、ソフトウェアロボットが前記アプリケーションを操作するために利用されること
を特徴とする請求項7乃至11の何れか一項に記載のフロー生成方法。
【請求項13】
アプリケーションを実行するコンピュータに処理させる操作のフローを生成する情報処理装置を、
ユーザから操作を受け付ける一つ以上の画面を表示する表示制御手段、
前記画面に対する操作に基づき、前記画面の表示情報から前記操作に応じた操作項目を特定する操作項目特定手段、
前記操作項目に応じた条件を対応付けた操作部品を生成する操作部品生成手段、
前記ユーザの操作順に従って前記操作部品から操作のフローを生成するフロー生成手段、
生成された複数の前記フローを比較し、前記フローを構成する前記操作部品の差分を抽出する差分抽出手段、
差分のあった前記操作部品の前に、条件分岐の操作部品を設定する条件分岐設定手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、フロー生成方法、及びプログラムに関する。
【背景技術】
【0002】
近年、業務の生産性向上のために、RPA(Robotic Process Automation)と呼ばれる技術が利用されるようになった。RPAでは、人間がキーボードやマウスを用いて行う定型業務等をソフトウェアロボットに覚えさせ、人間の代わりにソフトウェアロボットがコンピュータ操作を実行することで業務の自動化を実現している。
【0003】
例えば、特許文献1には、ソフトウェアロボットを導入済みのコンピュータに対する操作を記憶部に操作履歴として記録する操作履歴検出記録部と、ソフトウェアロボットによる操作であるか人間による操作であるかを判別する操作元特定部と、人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索する操作内容比較部と、繰り返し何度も類似操作を行っていた場合に、該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理するソフトウェアロボット定義情報生成部と、を備えるソフトウェアロボット定義情報生成システムが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
アプリケーションを実行するコンピュータに処理させる操作のフローは、条件分岐が含まれる場合がある。このような条件分岐を含む操作のフローを生成する情報処理装置では、管理者などのユーザが、より効率的にフローを生成できる仕組みが求められていた。なお、特許文献1は上記の問題について解決するものではない。
【0005】
本発明の一実施形態は、アプリケーションを実行するコンピュータに処理させる条件分岐を含む操作のフローをより効率的に生成できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を達成するため、本発明の一実施形態は、アプリケーションを実行するコンピュータに処理させる操作のフローを生成する情報処理装置であって、ユーザから操作を受け付ける一つ以上の画面を表示する表示制御手段と、前記画面に対する操作に基づき、前記画面の表示情報から前記操作に応じた操作項目を特定する操作項目特定手段と、前記操作項目に応じた条件を対応付けた操作部品を生成する操作部品生成手段と、前記ユーザの操作順に従って前記操作部品から操作のフローを生成するフロー生成手段と、生成された複数の前記フローを比較し、前記フローを構成する前記操作部品の差分を抽出する差分抽出手段と、差分のあった前記操作部品の前に、条件分岐の操作部品を設定する条件分岐設定手段と、を有する情報処理装置である。
【発明の効果】
【0007】
本発明の一実施形態によれば、アプリケーションを実行するコンピュータに処理させる条件分岐を含む操作のフローをより効率的に生成できる。
【図面の簡単な説明】
【0008】
図1】本実施形態に係る情報処理システムの一例の構成図である。
図2】本実施形態に係るコンピュータの一例のハードウェア構成図である。
図3】本実施形態に係る情報処理装置の一例の機能構成図である。
図4】BOTのフローを生成する手順の一例の説明図である。
図5】本実施形態に係るBOTのフローを生成する手順の一例の説明図である。
図6】管理者などのユーザによる画面に対する操作とレコーディング機能によりレコーディングされる操作の一例の説明図である。
図7】記録した一連の操作の流れからコンポーネントを生成する処理の一例の説明図である。
図8】コンポーネントの生成時の解析処理の一例の説明図である。
図9】管理者などのユーザによる画面に対する操作とレコーディング機能によりレコーディングされる操作の一例の説明図である。
図10】条件分岐を生成する処理の一例の説明図である。
図11】編集前のコンポーネントの情報と編集後のコンポーネントの情報とを表した一例の説明図である。
図12】コンポーネントの情報を編集した後のフローの一例の説明図である。
図13】コンポーネントの情報の編集及びフローの再生成後のフローの画面の一例の表示例である。
図14】コンポーネントの情報の編集及びフローの再生成後のフローの画面の一例の表示例である。
図15】コンポーネントの生成のバリエーションについて説明する一例の図である。
図16】コンポーネントの生成のバリエーションについて説明する一例の図である。
図17】コンポーネントの生成のバリエーションについて説明する一例の図である。
図18】管理者などのユーザによる画面に対する操作とレコーディング機能によりレコーディングされる操作の他の例の説明図である。
図19】レコーディング機能の使用時の操作の流れの一例の説明図である。
図20】レコーディング機能により記録されたそれぞれの操作から自動的に生成されたコンポーネントの一例の説明図である。
図21】管理者などのユーザから操作を受け付ける画面の一例のイメージ図である。
図22】レコーディング機能の使用時の操作の流れの一例の説明図である。
図23】レコーディング機能により記録されたそれぞれの操作から自動的に生成されたコンポーネントの一例の説明図である。
図24】条件分岐を生成する処理の一例の説明図である。
図25】編集前のコンポーネントの情報と編集後のコンポーネントの情報とを表した一例の説明図である。
図26】コンポーネントの情報を編集した後のフローの一例の説明図である。
図27】本実施形態により生成したフローの画面を表示してユーザからの操作を受け付ける装置の一例の説明図である。
【発明を実施するための形態】
【0009】
以下、本発明の各実施形態について、添付の図面を参照しながら説明する。
【0010】
[第1の実施形態]
<システム構成>
図1は本実施形態に係る情報処理システムの一例の構成図である。本実施形態に係る情報処理システムは、図1(A)に示すような情報処理装置10、又は図1(B)に示すような情報処理システム1により構成される。図1(A)の情報処理装置10は管理者などのユーザが操作するPC(Personal Computer)などのコンピュータであり、ユーザからの操作を、タッチパネル、コントローラ、マウス、又はキーボード等で受け付けて、操作に応じた情報処理を実行し、実行結果を表示する。
【0011】
また、図1(B)の情報処理システム1は、情報処理装置10とサーバ装置12とがインターネットやLAN(Local Area Network)などのネットワーク18を介して通信可能に接続された構成である。図1(B)の情報処理装置10は、図1(A)の情報処理装置10と同様なコンピュータである。図1(B)のサーバ装置12も図1(A)と同様なコンピュータで実現できる。
【0012】
サーバ装置12は情報処理装置10との間でデータを送受信することで、情報処理装置10が受け付けたユーザの操作に応じた情報処理を実行し、実行結果を情報処理装置10に提供する。情報処理装置10はサーバ装置12から提供された実行結果を表示する。
【0013】
サーバ装置12はクラウドコンピュータにより実現してもよい。なお、図1(B)に示したサーバ装置12の個数は、1つに限定されるものではなく、2つ以上で分散処理してもよい。サーバ装置12は情報処理装置10へのプログラム(アプリケーション)やWEBページなどのダウンロード処理、ユーザのログイン処理、又は各種データベースを管理する処理、などに利用してもよい。なお、図1のシステム構成は一例である。
【0014】
情報処理装置10はユーザが操作するPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、又はウェアラブルPC等である。
【0015】
<ハードウェア構成>
《コンピュータ》
図1の情報処理装置10は例えば図2に示すハードウェア構成のコンピュータ500により実現される。サーバ装置12の構成は情報処理装置10と同様であるため、説明を省略する。図2は本実施形態に係るコンピュータの一例のハードウェア構成図である。
【0016】
コンピュータ500は、CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503、HD504、HDD(Hard Disk Drive)コントローラ505、ディスプレイ506、外部機器接続I/F(Interface)508、ネットワークI/F509、データバス510、キーボード511、ポインティングデバイス512、DVD-RW(Digital Versatile Disk Rewritable)ドライブ514、メディアI/F516を備えている。
【0017】
これらのうち、CPU501は、プログラムに従ってコンピュータ500全体の動作を制御する。ROM502は、IPL等のCPU501の駆動に用いられるプログラムを記憶する。RAM503は、CPU501のワークエリアとして使用される。HD504は、プログラム等の各種データを記憶する。HDDコントローラ505は、CPU501の制御にしたがってHD504に対する各種データの読み出し又は書き込みを制御する。
【0018】
ディスプレイ506は、カーソル、メニュー、ウインドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F508は、各種の外部機器を接続するためのインタフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリ等である。ネットワークI/F509はネットワーク18を利用してデータ通信をするためのインタフェースである。データバス510は、CPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【0019】
キーボード511は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス512は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ514は、着脱可能な記録媒体の一例としてのDVD-RW513に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F516は、フラッシュメモリ等の記録メディア515に対するデータの読み出し又は書き込み(記憶)を制御する。
【0020】
なお、図2に示したハードウェア構成は一例であり、図2に示した構成要素を全て含む必要はなく、または、図2に示した構成要素以外を含むものであってもよい。
【0021】
<機能構成>
以下では、図1(A)の情報処理装置10の場合の機能構成例を説明する。なお、以下の図3に示す機能構成例は一例である。例えば図1(B)の情報処理装置10の場合は図3に示す機能構成の少なくとも一部を図1(B)のサーバ装置12に設け、情報処理装置10とサーバ装置12とが連携して処理を行うようにしてもよい。
【0022】
図3は本実施形態に係る情報処理装置の一例の機能構成図である。なお、図3の機能構成図は本実施形態の説明に不要な構成について適宜省略している。例えば情報処理装置10は、OS及びアプリケーション等のプログラムを実行することにより、図3の機能構成を実現する。
【0023】
図3の情報処理装置10は、アプリ処理部30、表示制御部32、操作受付部34、操作項目特定部40、操作部品生成部42、フロー生成部44、操作項目変更部46、操作部品編集部48、フロー記憶部50、ソフトウェアロボット処理部52、差分抽出部54、及び条件分岐設定部56を有する。
【0024】
アプリ処理部30は、ソフトウェアロボット処理部52が操作する対象のプログラム又はサービスにより実現される機能の一例である。ソフトウェアロボット処理部52が操作する対象のプログラム又はサービスは複数であってもよい。
【0025】
表示制御部32は、アプリ処理部30から受信した画像データにしたがって一つ以上の画面を表示する。表示制御部32はユーザから操作を受け付ける一つ以上の画面の表示制御を行う。また、操作受付部34は表示制御部32が表示した画面に対するユーザの操作を受け付ける。
【0026】
操作項目特定部40は、表示されている画面に関する情報(画面の表示情報)を表示制御部32から受信する。また、操作項目特定部40は表示されている画面に対するユーザの操作に関する情報(操作の位置情報)を操作受付部34から受信する。
【0027】
操作項目特定部40は、受信した画面の表示情報と操作の位置情報に基づき、ユーザから操作を受け付けた操作項目を特定する。操作項目の詳細は後述する。操作項目変更部46は、操作項目特定部40が特定した操作項目を変更する操作をユーザから受け付け、特定した操作項目を変更する。
【0028】
操作部品生成部42は、特定した操作項目に応じた条件を対応付けた後述の操作部品を生成する。操作部品の詳細は後述する。操作部品編集部48は、操作部品生成部42が生成した操作部品を編集する操作をユーザから受け付け、操作部品を編集する。
【0029】
フロー生成部44は、ユーザの操作順に従って、操作部品から後述のようにフローを生成する。フロー記憶部50は生成されたフローを記憶する。差分抽出部54は、フロー記憶部50に記憶された複数のフローを比較し、フローを構成する操作部品の差分を後述のように抽出する。条件分岐設定部56は、差分抽出部54が抽出した操作部品の差分に基づき、条件分岐の操作部品を後述のようにフローに設定(追加)してフロー記憶部50に記憶させる。差分抽出部54及び条件分岐設定部56の処理の詳細は後述する。
【0030】
ソフトウェアロボット処理部52は、フロー記憶部50からフローを読み出す。ソフトウェアロボット処理部52は読み出したフローに従って後述のような画面を表示し、その画面に対するユーザの操作を受け付ける。ソフトウェアロボット処理部52はユーザから受け付けた操作に従って操作受付部34に対する操作を行い、アプリ処理部30に処理を実行させる。
【0031】
<BOTのフロー生成>
本実施形態において、BOT(ボット)とは、フローに従った処理を行うためのユーザの操作を簡易化するソフトウェアの一例である。BOTはソフトウェアロボットと呼ばれることもある。ここではBOTの操作のフロー(以下、単にフローと呼ぶ)を一例として説明する。通常のBOTのフローの生成は例えば図4のように行われる。
【0032】
図4は、BOTのフローを生成する手順の一例の説明図である。BOTのフローはデスクトップアプリケーションの操作を簡易化するフローであってもよいし、クラウドサービスの操作を簡易化するフローであってもよい。
【0033】
図4では、業務プロセス簡易化のためのRPAサービスを一例として説明する。このRPAサービスは、利用頻度の高いフローのひな形がテンプレートとして提供されているものとする。
【0034】
BOTのフローを生成する最初の手順では、管理者などのユーザがテンプレートを選択する。次の手順では、管理者などのユーザがコンポーネントの追加・設定を行う。図4において、コンポーネントの追加・設定は、コンポーネント追加、入力設定、及び出力設定の手順で行われる。図4では、コンポーネントごとに、入力設定及び出力設定を追加している。コンポーネントは、画面に表示される操作部品の一例であって、入力設定や出力設定などの各種定義が可能な部品である。
【0035】
コンポーネントが追加されると、入力する文字列の型などを定義する入力設定、出力する文字列の型などを定義する出力設定を行う。図4では、追加したコンポーネントごとに必要な入力設定、出力設定が行われる。また、コンポーネントの追加・設定を行う手順は必要な対話分、繰り返される。次の手順では、管理者などのユーザがコンポーネントを並び替え、条件等を追加することでフローを生成する。
【0036】
図4のBOTのフローを生成する手順では、必要な対話分、コンポーネントの追加・設定を1つ1つ追加していく必要があった。また、図4のBOTのフローを生成する手順では、管理者などのユーザがコンポーネントを並び替え、条件等を追加することでフローを生成する必要があった。
【0037】
そこで、本実施形態では、図5に示すようにBOTのフローを生成する。図5は、本実施形態に係るBOTのフローを生成する手順の一例の説明図である。図5では例えばマウスやキーボード等を利用したWEBページ等の画面に対するユーザのクリック又は入力等の一連の操作を記録するレコーディング機能を利用する。
【0038】
BOTのフローを生成する最初の手順では、管理者などのユーザがレコーディング機能による記録を開始したあと、WEBページ等の画面に対する操作を行う。レコーディング機能は操作ログなどの操作情報、操作対象箇所などの操作対象情報を記録する。次の手順では、情報処理装置10が、記録した操作情報、及び操作対象情報からコンポーネントを自動生成する。
【0039】
コンポーネントが自動生成されると、情報処理装置10は、入力設定、出力設定、及び処理設定を含むコンポーネント設定を行う。情報処理装置10は、操作情報、及び操作対象情報に基づき、入力設定を生成する。入力設定では、バリデーションチェック、リストなどの情報を継承する。情報処理装置10は、必要に応じて出力設定を行う。また、情報処理装置10はコンポーネントの結合や、入力条件等に処理を追加する処理設定を行う。
【0040】
次の手順では、情報処理装置10は管理者などのユーザの操作順に従って、フローを自動的に生成する。情報処理装置10は、フローの順番の変更、又は条件等の追加などの操作を管理者などのユーザから受け付けるようにしてもよい。
【0041】
図5に示すようにBOTのフローを生成することで、本実施形態では、WEBページ等の画面に対する操作を行うことにより、必要なコンポーネントを自動生成できる。例えば本実施形態ではWEBページ等の入力条件を継承し、入力設定を省力化できる。また、本実施形態では、管理者などのユーザの操作順に従って、コンポーネントからフローを自動的に生成できる。
【0042】
このように、本実施形態では、レコーディング機能を利用することで、WEBページ等の画面に対する管理者などのユーザの操作情報、操作対象情報を記録し、コンポーネントを生成し、管理者などのユーザの操作順に従ってコンポーネントを対応付けてフローを自動生成することができる。
【0043】
<操作とレコーディング機能>
ここでは、管理者などのユーザによる画面に対する操作を例示して説明する。図6は管理者などのユーザによる画面に対する操作とレコーディング機能によりレコーディングされる操作の一例の説明図である。
【0044】
図6(A)は管理者などのユーザから操作を受け付け、遷移する画面1000及び1010の一例のイメージ図である。また、図6(B)は管理者などのユーザが行った図6(A)の画面1000及び1010に対する一連の操作の流れを表した図である。図6(A)及び図6(B)は、管理者などのユーザが図6(A)の左側の画面1000の「一日入力」ボタンをクリックすることで、図6(A)の右側の画面1010に遷移し、画面1010に入力する操作を表している。
【0045】
また、図6(A)及び図6(B)は、管理者などのユーザが図6(A)の画面1010から「始業」「終業」及び「残業理由/備考」の入力フィールドへの入力を行う操作を表している。さらに、図6(A)及び図6(B)は、管理者などのユーザが図6(A)の画面1010から「保存して終了」ボタンをクリックする操作を表している。
【0046】
例えば図6(A)及び図6(B)に示した管理者などのユーザの一連の操作の流れは図6(C)に示すようにレコーディング機能によるレコーディングを開始及び終了することにより、記録できる。
【0047】
図7は記録した一連の操作の流れからコンポーネントを生成する処理の一例の説明図である。図7(A)は図6(C)と同一であり、レコーディング機能により記録した管理者などのユーザの一連の操作の流れである。レコーディング機能により記録されたそれぞれの操作は、操作項目の一例である。図7(B)はレコーディング機能により記録されたそれぞれの操作から自動的に生成されたコンポーネントの例である。
【0048】
管理者などのユーザが図6(A)の画面1000の「一日入力」ボタンをクリックした操作の記録から、情報処理装置10は、例えば「タイトル:一日入力」と「アクション:なし」と「コメント:一日入力」とを情報として含むコンポーネントを生成する。
【0049】
管理者などのユーザが図6(A)の画面1010の「始業」の入力フィールドに時間を入力した操作の記録から、情報処理装置10は「タイトル:始業」と「アクション:リストボックス選択」と「入力値:5-41,5-55」と「コメント:始業」とを情報として含むコンポーネントを生成する。
【0050】
管理者などのユーザが図6(A)の画面1010の「終業」の入力フィールドに時間を入力した操作の記録から、情報処理装置10は「タイトル:終業」と「アクション:リストボックス選択」と「入力値:5-41,5-55」と「コメント:終業」とを情報として含むコンポーネントを生成する。
【0051】
管理者などのユーザが図6(A)の画面1010の「残業理由/備考」の入力フィールドに時間を入力した操作の記録から、情報処理装置10は「タイトル:残業理由/備考」と「アクション:テキスト入力」と「フィールドルール:なし」と「コメント:残業理由/備考」とを情報として含むコンポーネントを生成する。
【0052】
管理者などのユーザが図6(A)の画面1010の「保存して終了」ボタンをクリックした操作の記録から、情報処理装置10は、例えば「タイトル:保存して終了」と「アクション:なし」と「コメント:保存して終了」とを情報として含むコンポーネントを生成する。
【0053】
なお、図7では「始業」及び「終業」の入力フィールドに時間を入力した操作の記録から「入力値」が「5-41,5-55」となった例を示したが、例えば「1-99」などの入力値の入力範囲内の任意の数字であればよい。
【0054】
ここでは、コンポーネントの生成時の解析処理の一例として、図6(A)の画面1010の「始業」の入力フィールドに時間を入力した操作の記録から、コンポーネントを生成するケース(始業のケース)を説明する。また、コンポーネントの生成時の解析処理の一例として、図6(A)の画面1010の「残業理由/備考」の入力フィールドに時間を入力した操作の記録から、コンポーネントを生成するケース(残業理由/備考のケース)を説明する。
【0055】
図8はコンポーネントの生成時の解析処理の一例の説明図である。図8(A)は、始業のケースの一例の説明図である。図8(B)は残業理由/備考のケースの一例の説明図である。
【0056】
例えば始業のケースでは、管理者などのユーザの図6(A)の画面1010に対する操作を検知して、管理者などのユーザにより操作された入力フィールドを例えば次のように解析することで、コンポーネントを作成する。
【0057】
まず、情報処理装置10は始業の入力フィールドの近隣の文字列を探索し、近いものをタイトル候補としてリストアップする。例えば図8の(A)の例では、始業、管理職、自動計算などをタイトル候補としてリストアップする。情報処理装置10はリストアップされたタイトル候補から例えば一番近い「始業」をタイトルとして仮設定できる。
【0058】
なお、近隣の文字列の探索は、既存の方法を利用することができ、例えばWebスクレイピングの技術により抽出した情報から、始業の入力フィールドの近隣に配置された文字列を探索できる。例えばWebページにおいて入力フィールドの近隣の文字列を探索する方法は「http://datajournalismjp.github.io/handbook/getting_data_3.html」などに記載された方法を利用できる。
【0059】
また、入力フィールドの近隣は、図8(A)に矢印で示したように、入力フィールドに近い(所定の範囲内の)位置である。情報処理装置10は「始業」の入力フィールドから所定の範囲内の領域にある文字列を、文字列の位置情報に基づきリストアップすることにより、始業の入力フィールドの近隣に配置された文字列を探索できる。リストアップした文字列は、入力フィールドの右上にある文字列を優先するなど、例えば入力フィールドから見た方向により優先順位を付けてもよい。
【0060】
次に、情報処理装置10は「始業」の入力フィールドを解析する。例えば図8(A)は入力フィールドがリストボックスの例であり、入力値一覧(5~41、0~55)などを取得する。そして、情報処理装置10は「始業」の入力フィールド、その入力フィールドの近隣の文字列、及び入力フィールドの解析結果に基づき、コンポーネントを生成する。
【0061】
例えば残業理由/備考のケースでは、管理者などのユーザの図6(A)の画面1010に対する操作を検知して、管理者などのユーザにより操作された入力フィールドを例えば次のように解析することで、コンポーネントを作成する。
【0062】
情報処理装置10は残業理由/備考の入力フィールドの近隣の文字列を探索し、近いものをタイトル候補としてリストアップする。例えば図8の(B)の例では、残業理由/備考、実勤務時間、7時間30分などをタイトル候補としてリストアップする。情報処理装置10はリストアップされたタイトル候補から例えば一番近い「残業理由/備考」をタイトルとして仮設定できる。
【0063】
次に、情報処理装置10は「残業理由/備考」の入力フィールドを解析する。例えば図8(B)は入力フィールドがテキストボックスの例を示しており、入力フィールドのバリデーションを取得する。入力フィールドのバリデーションは、入力文字列などが仕様や文法などのルールに照らして妥当かどうかを判断するための情報である。情報処理装置10は「残業理由/備考」の入力フィールド、その入力フィールドの近隣の文字列、及び入力フィールドの解析結果に基づいて、コンポーネントを生成する。
【0064】
次に、管理者などのユーザは図9に示すように図6と異なる操作を画面に対して行うことで、図6と異なる条件分岐を発生させる。図9は管理者などのユーザによる画面に対する操作とレコーディング機能によりレコーディングされる操作の一例の説明図である。
【0065】
図9(A)は管理者などのユーザから操作を受け付け、遷移する画面1000及び1010の一例のイメージ図である。また、図9(B)は管理者などのユーザが行った図9(A)の画面1000及び1010に対する一連の操作の流れを表した図である。図9(A)及び図9(B)は、管理者などのユーザが図9(A)の左側の画面1000の「一日入力」ボタンをクリックすることで、図9(A)の右側の画面1010に遷移し、画面1010に入力する操作を表している。
【0066】
また、図9(A)及び図9(B)は、管理者などのユーザが図9(A)の画面1010から「始業」及び「終業」の入力フィールドへの入力を行う操作を表している。さらに、図9(A)及び図9(B)は、管理者などのユーザが図9(A)の画面1010から「保存して終了」ボタンをクリックする操作を表している。
【0067】
例えば図9(A)及び図9(B)に示した管理者などのユーザの一連の操作の流れは図9(C)に示すようにレコーディング機能によるレコーディングを開始及び終了することにより、記録できる。
【0068】
図10は条件分岐を生成する処理の一例の説明図である。図10(A)は図7(B)のコンポーネントを、例えば画面1000及び1010に対する管理者などのユーザの操作順に従って自動生成したフローである。図10(B)は図9(C)のように記録した一連の操作の流れからコンポーネントを自動的に生成し、画面1000及び1010に対する管理者などのユーザの操作順に従って自動生成したフローである。
【0069】
差分抽出部54は、フロー記憶部50に記憶された図10(A)及び図10(B)のフローを比較する。差分抽出部54は図10(A)及び図10(B)のフローを構成する操作部品の差分として図10(C)に示す「タイトル:残業理由/備考」と「アクション:テキスト入力」と「フィールドルール:なし」と「コメント:残業理由/備考」とを情報として含むコンポーネントを抽出する。
【0070】
条件分岐設定部56は、差分抽出部54が抽出した操作部品の差分に基づき、差分の操作部品の前に、条件分岐の操作部品を設定(追加)する。条件分岐の操作部品は「タイトル:条件」と「アクション:選択(True/False)」と「条件:未入力」とを情報として含むコンポーネントである。また、条件分岐設定部56は条件分岐の操作部品の分岐を、差分の操作部品の後ろであって、差分のない操作部品に収束(スキップ)するように設定する。
【0071】
本実施形態に係る情報処理装置10は、自動生成したフローに含まれるコンポーネントの情報を編集する操作をユーザから受け付け、例えば図11に示すようにコンポーネントの情報を編集できる。
【0072】
図11は編集前のコンポーネントの情報と編集後のコンポーネントの情報とを表した一例の説明図である。図11では、左側のコンポーネントの情報が編集前を表し、右側のコンポーネントの情報が編集後を表している。
【0073】
例えば図11では「タイトル:一日入力」と「アクション:なし」と「コメント:一日入力」とを情報として含むコンポーネントが「タイトル:一日入力」と「アクション:選択(はい/いいえ)」と「コメント:一日入力しますか?」とを情報として含むコンポーネントに編集されている。
【0074】
また、図11では「タイトル:始業」と「アクション:リストボックス選択」と「入力値:5-41,5-55」と「コメント:始業」とを情報として含むコンポーネントが「タイトル:始業」と「アクション:リストボックス選択」と「入力値:5-41,5-55」と「出力値:数値,数値」と「コメント:始業は?」とを情報として含むコンポーネントに編集されている。
【0075】
また、図11では「タイトル:終業」と「アクション:リストボックス選択」と「入力値:5-41,5-55」と「コメント:終業」とを情報として含むコンポーネントが「タイトル:終業」と「アクション:リストボックス選択」と「入力値:5-41,5-55」と「出力値:数値,数値」と「コメント:終業は?」とを情報として含むコンポーネントに編集されている。
【0076】
また、図11では「タイトル:条件」と「アクション:選択(True/False)」と「条件:未入力」とを情報として含むコンポーネントが「タイトル:条件」と「アクション:選択(True/False)」と「条件:終業-始業>8.5」とを条件として含むコンポーネントに編集されている。
【0077】
また、図11では「タイトル:残業理由/備考」と「アクション:テキスト入力」と「フィールドルール:なし」と「コメント:残業理由/備考」とを情報として含むコンポーネントが「タイトル:残業理由」と「アクション:テキスト入力」と「フィールドルール:なし」と「出力値:テキスト」と「コメント:残業理由をいれてください。」とを情報として含むコンポーネントに編集されている。
【0078】
また、図11では「タイトル:保存して終了」と「アクション:なし」と「コメント:保存して終了」とを情報として含むコンポーネントが「タイトル:終了確認」と「アクション:確認(入力データ出力)」と「コメント:で登録します。」とを情報として含むコンポーネントに編集されている。
【0079】
図11に示したコンポーネントの情報の編集により、情報処理装置10は図12に示すように、編集前のフローを、始業のコンポーネントの入力値及び終業のコンポーネントの入力値から「8.5」時間を超えるか否かを判定して処理を分岐する編集後のフローに修正できる。
【0080】
図12はコンポーネントの情報を編集した後のフローの一例の説明図である。管理者などのユーザは、例えば図12に示すように、1番目のコンポーネントで「いいえ」が選択された場合の遷移先が最後のコンポーネントとなるように編集できる。また、管理者などのユーザは、4番目のコンポーネントで「終業-始業>8.5」の条件を満たした場合の遷移先が「残業理由」のコンポーネントとなるように編集できる。さらに、管理者などのユーザは、4番目のコンポーネントで「終業-始業>8.5」の条件を満たさなかった場合の遷移先が「終了確認」のコンポーネントとなるように編集できる。
【0081】
図13及び図14はコンポーネントの情報の編集及びフローの再生成後のフローの画面の一例の表示例である。図13及び図14の画面2000は、図11に示したような自動生成したフローに含まれるコンポーネントの情報を編集し、対話らしくブラッシュアップした画面2000の表示例となる。
【0082】
図13の画面2000は4番目のコンポーネントで「終業-始業>8.5」の条件を満たした場合のフローの一例である。また、図14の画面2000は4番目のコンポーネントで「終業-始業>8.5」の条件を満たさなかった場合のフローの一例である。例えばユーザは、情報処理装置10に表示された図13又は図14の画面2000を操作することにより、図12のフローを実行できる。
【0083】
図8に示したコンポーネントの作成時の解析処理は一例であって、例えば図15に示すようなラジオボタンに対する操作を検知して、管理者などのユーザにより操作された入力フィールドを解析することで、コンポーネントを作成してもよい。図15はコンポーネントの生成のバリエーションについて説明する一例の図である。
【0084】
図15(A)及び図15(B)は、ラジオボタンを含む画面1040及び1050の例である。情報処理装置10はラジオボタンの入力フィールドの近隣の文字列を探索し、近いものをタイトル候補として仮設定できる。また、情報処理装置10は入力フィールドのラジオボタンを解析することで、選択肢一覧などを取得できる。このように、情報処理装置10はラジオボタンを含む画面1040及び1050からコンポーネントを作成できる。
【0085】
図16はコンポーネントの生成のバリエーションについて説明する一例の図である。図16(A)~図16(C)は入力フィールドのバリデーションチェックロジックの継承を行う例である。なお、図16(A)は、メールアドレスを入力する入力フィールドを含む画面1060の例である。図16(B)は、姓(ローマ字)、名(ローマ字)を入力する入力フィールドを含む画面1070の例である。図16(C)は、年齢を入力する入力フィールドを含む画面1080の例である。
【0086】
情報処理装置10は、管理者などのユーザの入力操作が半角英数字のメールアドレスの場合に、姓(ローマ字)、名(ローマ字)、及び年齢の入力フィールドに半角英数字のバリデーションチェックのロジックを継承させることができる。
【0087】
図17はコンポーネントの生成のバリエーションについて説明する一例の図である。図17(A)及び図17(B)は、リストボックスを含む画面1090及び1100の例である。情報処理装置10はリストボックスの入力フィールドの近隣の文字列を探索し、近いものをタイトル候補として仮設定できる。また、情報処理装置10は入力フィールドのリストボックスを解析することで、選択肢一覧などを取得できる。このように、情報処理装置10はリストボックスを含む画面1090及び1100からコンポーネントを作成できる。
【0088】
次に、管理者などのユーザによる画面に対する他の操作を例示して説明する。図18は管理者などのユーザによる画面に対する操作とレコーディング機能によりレコーディングされる操作の他の例の説明図である。
【0089】
図18は管理者などのユーザから操作を受け付ける画面の一例のイメージ図である。画面1200は家族カードなしで「カードサービス・お支払いについて」の登録を行う表示例を表している。例えば図18の画面1200に対する管理者などのユーザの一連の操作の流れは図19に示すようにレコーディング機能によるレコーディングを開始及び終了することにより、記録できる。
【0090】
図19は、レコーディング機能の使用時の操作の流れの一例の説明図である。ステップS100において、管理者などのユーザは画面1200から「カードブランド」を選択する操作を行う。ステップS102において、管理者などのユーザは画面1200に「暗証番号」を入力する。ステップS104において、管理者などのユーザは画面1200に「暗証番号(確認)」を入力する。ステップS106において、管理者などのユーザは画面1200から「取引を行う目的」を選択する。ステップS108において、管理者などのユーザは画面1200から「お支払い日」を選択する。ステップS110において、管理者などのユーザは画面1200から「家族カード」を「同意し申し込む」か「申し込まない」を選択する。図19は家族カードを申し込まない例を示している。ステップS112において、管理者などのユーザは画面1200の「次へ」ボタンを選択する。
【0091】
レコーディング機能により記録された図19のそれぞれの操作から情報処理装置10は図20に示すようなコンポーネントを自動的に生成する。図20はレコーディング機能により記録されたそれぞれの操作から自動的に生成されたコンポーネントの一例の説明図である。
【0092】
管理者などのユーザが図18の画面1200の「カードブランド」の入力フィールドからカードブランドを選択した操作の記録から、情報処理装置10は「タイトル:カードブランド」と「コメント:カードブランド」と「アクション:リスト選択」と「入力値:○○○/△△△」とを情報として含むコンポーネントを生成する。
【0093】
また、管理者などのユーザが図18の画面1200の「暗証番号」の入力フィールドに暗証番号を入力した操作の記録から、情報処理装置10は「タイトル:暗証番号」と「コメント:暗証番号」と「アクション:テキスト」と「入力値:数字4桁」とを情報として含むコンポーネントを生成する。以下、同様にして図20に示すようなコンポーネントを生成する。
【0094】
図21は管理者などのユーザから操作を受け付ける画面の一例のイメージ図である。図21の画面1200は家族カードありで「カードサービス・お支払いについて」の登録を行う表示例を表している。例えば図21の画面1200に対する管理者などのユーザの一連の操作の流れは図22に示すようにレコーディング機能によるレコーディングを開始及び終了することにより、記録できる。
【0095】
図22は、レコーディング機能の使用時の操作の流れの一例の説明図である。ステップS200~S208は図19のステップS100~S108と同様である。ステップS210において、管理者などのユーザは画面1200から「家族カード」を「同意し申し込む」か「申し込まない」を選択する。図22は家族カードを申し込む例を示している。ステップS212~S232において、管理者などのユーザは図21の画面1200から家族カードを申し込むための操作を行っている。ステップS234において、管理者などのユーザは画面1200の「次へ」ボタンを選択する。
【0096】
レコーディング機能により記録された図22のそれぞれの操作から情報処理装置10は図23に示すようなコンポーネントを自動的に生成する。図23はレコーディング機能により記録されたそれぞれの操作から自動的に生成されたコンポーネントの一例の説明図である。
【0097】
管理者などのユーザが図21の画面1200の「カードブランド」の入力フィールドからカードブランドを選択した操作の記録から、情報処理装置10は「タイトル:カードブランド」と「コメント:カードブランド」と「アクション:リスト選択」と「入力値:○○○/△△△」とを情報として含むコンポーネントを生成する。
【0098】
また、管理者などのユーザが図21の画面1200の「暗証番号」の入力フィールドに暗証番号を入力した操作の記録から、情報処理装置10は「タイトル:暗証番号」と「コメント:暗証番号」と「アクション:テキスト」と「入力値:数字4桁」とを情報として含むコンポーネントを生成する。以下、同様にして図23に示すようなコンポーネントを生成する。
【0099】
図24は、条件分岐を生成する処理の一例の説明図である。図24(A)は図18の画面1200に対する管理者などのユーザの操作に従って自動生成したフローである。図24(B)は図21の画面1200に対する管理者などのユーザの操作に従って自動生成したフローである。
【0100】
差分抽出部54は、フロー記憶部50に記憶された図24(A)及び図24(B)のフローを比較する。差分抽出部54は図24(A)及び図24(B)のフローを構成する操作部品の差分を抽出する。
【0101】
条件分岐設定部56は、差分抽出部54が抽出した操作部品の差分に基づき、差分の操作部品の前に、条件分岐の操作部品を設定(追加)する。条件分岐の操作部品は「タイトル:条件」と「アクション:選択(True/False)」と「条件:未入力」とを情報として含むコンポーネントである。また、条件分岐設定部56は条件分岐の操作部品の分岐を、差分の操作部品の後ろであって、差分のない操作部品に収束(スキップ)するように設定する。
【0102】
本実施形態に係る情報処理装置10は、自動生成したフローに含まれるコンポーネントの情報を編集する操作をユーザから受け付け、例えば図25に示すように条件分岐の操作部品のコンポーネントの情報を編集できる。
【0103】
図25は編集前のコンポーネントの情報と編集後のコンポーネントの情報とを表した一例の説明図である。図25では、上側のコンポーネントの情報が編集前を表し、下側のコンポーネントの情報が編集後を表している。また、図25は自動生成したフローに含まれるコンポーネントのうち、条件分岐の操作部品のコンポーネントを示し、他のコンポーネントの図示を省略している。
【0104】
例えば図25では「タイトル:条件」と「アクション:選択(True/False)」と「条件:未入力」とを情報として含むコンポーネントが「タイトル:条件」と「アクション:選択(True/False)」と「条件:家族カード=同意し申し込む」とを条件として含むコンポーネントに編集されている。
【0105】
図25に示したコンポーネントの情報の編集の他、対話らしくブラッシュアップした画面を表示するための編集により、情報処理装置10は図26に示すように、図20及び図23の編集前のフローを、家族カードを同意して申し込むか、申し込まないか、を判定して処理を分岐する編集後のフローに修正できる。
【0106】
図26はコンポーネントの情報を編集した後のフローの一例の説明図である。管理者などのユーザは、例えば図26に示すように、7番目のコンポーネントで「家族カード=同意し申し込む」の条件を満たした場合の遷移先が8番目のコンポーネントとなるように編集できる。さらに、管理者などのユーザは、7番目のコンポーネントで「家族カード=同意し申し込む」の条件を満たさなかった場合の遷移先が「次へ」のコンポーネントとなるように編集できる。
【0107】
情報処理装置10は画面1200に対する管理者などのユーザの操作順に従って、例えば図26に示すようなフローを自動生成する。このように、本実施形態ではレコーディング機能を利用して、管理者などのユーザによる画面1200に対する操作を記録することにより、BOTに処理させるフローの画面を自動生成できる。
【0108】
また、管理者などのユーザは、自動生成されたコンポーネントの情報の編集及び自動生成されたフローの編集を行うことで対話らしくブラッシュアップした画面を生成することができる。例えばユーザは、情報処理装置10に表示された対話らしくブラッシュアップされた画面を操作して、図26のフローを実行できる。
【0109】
生成されたフローは、例えば図27に示す各種装置の画面に表示して、ユーザから操作を受け付けることができる。図27は本実施形態により生成したフローの画面を表示してユーザからの操作を受け付ける装置の一例の説明図である。
【0110】
図27は、本実施形態により生成したフローの画面を表示してユーザからの操作を受け付ける装置例として、デスクトップPC3000、電子黒板3002、インクジェットプリンタ3004、スマートフォン3006、ノートPC3008、全天球撮影装置3010、ビデオ会議端末3012、プロジェクタ3014、及びMFPなどの画像形成装置3016を表示している。
【0111】
以上、本実施形態によれば、ソフトウェアロボットに処理させるフローをより効率的に生成できる。
【0112】
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0113】
実施例に記載された装置群は本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。本実施形態によって本発明が限定されるものではなく、本実施形態における構成要素には、当業者が容易に想到できるもの、実質的に同一のもの、及び、いわゆる均等の範囲のものが含まれる。さらに、本実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換、変更および組み合わせを行うことができる。
【符号の説明】
【0114】
1 情報処理システム
10 情報処理装置
12 サーバ装置
18 ネットワーク
30 アプリ処理部
32 表示制御部
34 操作受付部
40 操作項目特定部
42 操作部品生成部
44 フロー生成部
46 操作項目変更部
48 操作部品編集部
50 フロー記憶部
52 ソフトウェアロボット処理部
54 差分抽出部
56 条件分岐設定部
1000、1010、1200、2000 画面
【先行技術文献】
【特許文献】
【0115】
【特許文献1】特開2019-169044号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27