(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024054196
(43)【公開日】2024-04-16
(54)【発明の名称】画面ショット撮影装置、画面ショット撮影方法およびプログラム
(51)【国際特許分類】
G06F 11/34 20060101AFI20240409BHJP
G06F 11/30 20060101ALI20240409BHJP
G06F 3/04842 20220101ALI20240409BHJP
G06F 3/0485 20220101ALI20240409BHJP
【FI】
G06F11/34 166
G06F11/30 140D
G06F3/04842
G06F3/0485
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2024015325
(22)【出願日】2024-02-05
(62)【分割の表示】P 2020106369の分割
【原出願日】2020-06-19
(71)【出願人】
【識別番号】398040527
【氏名又は名称】株式会社オービック
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】山本 啓介
(72)【発明者】
【氏名】河合 優佑
(72)【発明者】
【氏名】廣木 健人
(72)【発明者】
【氏名】上野 剛光
(57)【要約】
【課題】操作対象画面同士が重なって隠れてしまっている領域も含めて画面ショットを撮影することができる画面ショット撮影装置、画面ショット撮影方法およびプログラムを提供することを課題とする。
【解決手段】本実施形態では、操作対象プログラムの実行IDを取得し、取得した実行IDで特定される操作対象プログラムにより提供される全ての画面の画面IDを取得し、取得した全ての画面IDのそれぞれで特定される画面の画面ショットを撮影し、撮影された全ての画面ショットを、記憶部に保存する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
操作の対象とされるアプリケーションプログラムである対象プログラムにより提供される複数の全ての画面の画面ショットを撮影する、制御部を備える画面ショット撮影装置であって、
前記制御部は、
操作実行中の対象プログラムの実行識別子を取得する実行識別子取得手段と、
前記実行識別子取得手段で取得した実行識別子で特定される対象プログラムにより提供される全ての画面の画面識別子を取得する画面識別子取得手段と、
前記画面識別子取得手段で取得した全ての画面識別子のそれぞれで特定される画面の画面ショットを撮影する撮影手段と、
前記撮影手段で撮影された全ての画面ショットを、記憶部に保存する保存実行手段と、を備え、
前記撮影手段は、画面を一意に特定可能な情報に基づいて、最下層の画面から順に、他の画面との重なりのない各層毎の画面ショットを撮影すること、
を特徴とする画面ショット撮影装置。
【請求項2】
画面識別子と、縦スクロールまたは横スクロールの1つまたは複数のコントロール識別子および/またはページ移動のコントロール識別子とが紐付けて格納されているマスタデータにアクセス可能であり、
前記撮影手段は、前記画面識別子取得手段で取得した全ての画面識別子に対し、以下の(1)から(3)の処理を実行すること、
(1)マスタデータから、画面識別子に紐付くコントロール識別子を取得する:
(2)コントロール識別子が取得できなかった場合は、画面識別子で特定される画面の画面ショットを撮影する:
(3)コントロール識別子が取得できた場合は、(31)各コントロール識別子からスクロールの情報またはページ移動の情報を取得し、(32)当該取得した各情報に応じて、画面識別子で特定される画面におけるスクロールおよび/またはページ移動の状態を初期状態に設定して、画面ショットを撮影し、(33)画面識別子で特定される画面に対し、当該取得した各情報に応じたスクロールおよび/またはページ移動の処理を実行しながら、当該処理が実行できなくなるまで、画面ショットを撮影する:
を特徴とする請求項1に記載の画面ショット撮影装置。
【請求項3】
前記撮影手段は、前記(33)の処理において、スクロールの処理、ページ移動の処理の順に各処理を実行しながら、画面ショットを撮影すること、
を特徴とする請求項2に記載の画面ショット撮影装置。
【請求項4】
前記撮影手段は、前記(33)の処理において、前記スクロールの処理を、縦スクロール、横スクロールの順に実行すること、
を特徴とする請求項3に記載の画面ショット撮影装置。
【請求項5】
前記スクロールの処理は、スクロールボックスの大きさを、スクロールボックスの移動の単位とするものであること、
を特徴とする請求項2から4のいずれか1つに記載の画面ショット撮影装置。
【請求項6】
前記保存実行手段は、画面ショット撮影時に保存したスクロールの情報および/またはページ移動の情報を基に、画面ショットを1つのシートに並べて保存すること、
を特徴とする請求項2から5のいずれか1つに記載の画面ショット撮影装置。
【請求項7】
前記保存実行手段は、画面ショットに撮影順を示す番号を付与して画面ショットを保存すること、
を特徴とする請求項1から6のいずれか1つに記載の画面ショット撮影装置。
【請求項8】
前記アプリケーションプログラムは、業務アプリケーションプログラムであること、
を特徴とする請求項1から7のいずれか1つに記載の画面ショット撮影装置。
【請求項9】
前記操作は、RPA(Robotic Process Automation)ツールによる自動操作またはユーザによる画面ショットの撮影に関する操作であること、
を特徴とする請求項1から8のいずれか1つに記載の画面ショット撮影装置。
【請求項10】
前記実行識別子は、前記対象プログラムのプロセスであり、
前記画面識別子は、前記画面のウィンドウハンドルであり、
前記撮影手段は、撮影対象画面のウィンドウハンドルを指定して、画面ショットを、最下層の画面から順に撮影すること、
を特徴とする請求項1から9のいずれか1つに記載の画面ショット撮影装置。
【請求項11】
制御部を備える情報処理装置で実行される、操作の対象とされるアプリケーションプログラムである対象プログラムにより提供される複数の全ての画面の画面ショットを撮影する画面ショット撮影方法であって、
前記制御部で実行される、
操作実行中の対象プログラムの実行識別子を取得するステップと、
前記取得した実行識別子で特定される対象プログラムにより提供される全ての画面の画面識別子を取得するステップと、
前記取得した全ての画面識別子のそれぞれで特定される画面の画面ショットを撮影するステップと、
前記撮影された全ての画面ショットを、記憶部に保存するステップと、を含み、
前記撮影するステップでは、画面を一意に特定可能な情報に基づいて、最下層の画面から順に、他の画面との重なりのない各層毎の画面ショットを撮影すること、
を特徴とする画面ショット撮影方法。
【請求項12】
制御部を備える情報処理装置に実行させるための、操作の対象とされるアプリケーションプログラムである対象プログラムにより提供される複数の全ての画面の画面ショットを撮影するプログラムであって、
前記制御部に実行させるための、
操作実行中の対象プログラムの実行識別子を取得するステップと、
前記取得した実行識別子で特定される対象プログラムにより提供される全ての画面の画面識別子を取得するステップと、
前記取得した全ての画面識別子のそれぞれで特定される画面の画面ショットを撮影するステップと、
前記撮影された全ての画面ショットを、記憶部に保存するステップと、を含み、
前記撮影するステップでは、画面を一意に特定可能な情報に基づいて、最下層の画面から順に、他の画面との重なりのない各層毎の画面ショットを撮影すること、
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画面ショット撮影装置、画面ショット撮影方法およびプログラムに関する。
【背景技術】
【0002】
RPA(Robotic Process Automation)ツールによる業務システム(アプリケーションプログラム)の自動操作が各企業に取り入れられるようになってきているなか、業務システムで提供される画面に対する自動操作の実行状況(換言すると、RPAツール実行中の様々な場面)を、エビデンス採取を目的として把握したいというニーズが高まっている。しかし、自動操作の実行スピードは速いため、実行状況を人が目視で確認するのは困難であり、しかも、確認する人が自動操作実行時に居なければならないというのでは、そもそもRPAツールを取り入れたことの意義が形骸化される虞がある。また、実行状況が記述されたテキストログを人が見て確認することで実行状況を把握することは可能だが、テキストログだけでは人が直感的に実行状況を理解しづらい。そこで、人による直観的な実行状況の理解を支援するため、自動操作の対象とされる画面の画面ショットが撮影されている。
【0003】
特許文献1には、スクリーンが所定距離スクロールするごとに、スクリーンショット参照領域の画像変化状況に基づきスクリーンショットを1回行い、複数回スクリーンショットした画像と初期スクリーンショット画像に基づき最終スクリーンショット画像を取得する端末のスクリーンショット方法について記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、これまでは、自動操作の対象とされる画面(操作対象画面)の画面ショットが、操作対象画面の状態を考慮せずに撮影されていた。そのため、アプリケーションプログラムが複数起動していた場合に、操作対象画面同士が重なり合った状態で画面ショットが撮影され、結果、隠れてしまった画面項目を確認することができない、という問題があった。
【0006】
本発明は、上記に鑑みてなされたものであって、操作対象画面同士が重なって隠れてしまっている領域も含めて画面ショットを撮影することができる画面ショット撮影装置、画面ショット撮影方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本発明に係る画面ショット撮影装置は、操作の対象とされるアプリケーションプログラムである対象プログラムにより提供される複数の全ての画面の画面ショットを撮影する、制御部を備える画面ショット撮影装置であって、前記制御部は、操作実行中の対象プログラムの実行識別子を取得する実行識別子取得手段と、前記実行識別子取得手段で取得した実行識別子で特定される対象プログラムにより提供される全ての画面の画面識別子を取得する画面識別子取得手段と、前記画面識別子取得手段で取得した全ての画面識別子のそれぞれで特定される画面の画面ショットを撮影する撮影手段と、前記撮影手段で撮影された全ての画面ショットを、記憶部に保存する保存実行手段と、を備え、前記撮影手段は、画面を一意に特定可能な情報に基づいて、最下層の画面から順に、他の画面との重なりのない各層毎の画面ショットを撮影すること、を特徴とする。
【0008】
また、本発明に係る画面ショット撮影装置において、前記対象プログラムにより提供される画面は、複数であること、を特徴とする。
【0009】
また、本発明に係る画面ショット撮影装置は、画面識別子と、縦スクロールまたは横スクロールの1つまたは複数のコントロール識別子および/またはページ移動のコントロール識別子とが紐付けて格納されているマスタデータにアクセス可能であり、本発明に係る画面ショット撮影装置において、前記撮影手段は、前記画面識別子取得手段で取得した全ての画面識別子に対し、以下の(1)から(3)の処理を実行すること、を特徴とする。
(1)マスタデータから、画面識別子に紐付くコントロール識別子を取得する。
(2)コントロール識別子が取得できなかった場合は、画面識別子で特定される画面の画面ショットを撮影する。
(3)コントロール識別子が取得できた場合は、(31)各コントロール識別子からスクロールの情報またはページ移動の情報を取得し、(32)当該取得した各情報に応じて、画面識別子で特定される画面におけるスクロールおよび/またはページ移動の状態を初期状態に設定して、画面ショットを撮影し、(33)画面識別子で特定される画面に対し、当該取得した各情報に応じたスクロールおよび/またはページ移動の処理を実行しながら、当該処理が実行できなくなるまで、画面ショットを撮影する。
【0010】
また、本発明に係る画面ショット撮影装置において、前記撮影手段は、前記(33)の処理において、スクロールの処理、ページ移動の処理の順に各処理を実行しながら、画面ショットを撮影すること、を特徴とする。
【0011】
また、本発明に係る画面ショット撮影装置において、前記撮影手段は、前記(33)の処理において、前記スクロールの処理を、縦スクロール、横スクロールの順に実行すること、を特徴とする。
【0012】
また、本発明に係る画面ショット撮影装置において、前記スクロールの処理は、スクロールボックスの大きさを、スクロールボックスの移動の単位とするものであること、を特徴とする。
【0013】
また、本発明に係る画面ショット撮影装置において、前記保存実行手段は、画面ショット撮影時に保存したスクロールの情報および/またはページ移動の情報を基に、画面ショットを1つのシートに並べて保存すること、を特徴とする。
【0014】
また、本発明に係る画面ショット撮影装置において、前記撮影手段は、最下層の画面から順に画面ショットを撮影すること、を特徴とする。
【0015】
また、本発明に係る画面ショット撮影装置において、前記保存実行手段は、画面ショットに撮影順を示す番号を付与して画面ショットを保存すること、を特徴とする。
【0016】
また、本発明に係る画面ショット撮影装置において、前記アプリケーションプログラムは、業務アプリケーションプログラムであること、を特徴とする。
【0017】
また、本発明に係る画面ショット撮影装置において、前記操作は、RPA(Robotic Process Automation)ツールによる自動操作またはユーザによる画面ショットの撮影に関する操作であること、を特徴とする。
【0018】
また、本発明に係る画面ショット撮影装置において、前記実行識別子は、前記対象プログラムのプロセスであり、前記画面識別子は、前記画面のウィンドウハンドルであり、前記撮影手段は、撮影対象画面のウィンドウハンドルを指定して、画面ショットを、最下層の画面から順に撮影すること、を特徴とする。
【0019】
また、本発明に係る画面ショット撮影方法は、制御部を備える情報処理装置で実行される、操作の対象とされるアプリケーションプログラムである対象プログラムにより提供される複数の全ての画面の画面ショットを撮影する画面ショット撮影方法であって、前記制御部で実行される、操作実行中の対象プログラムの実行識別子を取得するステップと、前記取得した実行識別子で特定される対象プログラムにより提供される全ての画面の画面識別子を取得するステップと、前記取得した全ての画面識別子のそれぞれで特定される画面の画面ショットを撮影するステップと、前記撮影された全ての画面ショットを、記憶部に保存するステップと、を含み、前記撮影するステップでは、画面を一意に特定可能な情報に基づいて、最下層の画面から順に、他の画面との重なりのない各層毎の画面ショットを撮影すること、を特徴とする。
【0020】
また、本発明に係るプログラムは、制御部を備える情報処理装置に実行させるための、操作の対象とされるアプリケーションプログラムである対象プログラムにより提供される複数の全ての画面の画面ショットを撮影するプログラムであって、前記制御部に実行させるための、操作実行中の対象プログラムの実行識別子を取得するステップと、前記取得した実行識別子で特定される対象プログラムにより提供される全ての画面の画面識別子を取得するステップと、前記取得した全ての画面識別子のそれぞれで特定される画面の画面ショットを撮影するステップと、前記撮影された全ての画面ショットを、記憶部に保存するステップと、を含み、前記撮影するステップでは、画面を一意に特定可能な情報に基づいて、最下層の画面から順に、他の画面との重なりのない各層毎の画面ショットを撮影すること、を特徴とする。
【発明の効果】
【0021】
本発明によれば、操作対象画面同士が重なって隠れてしまっている領域も含めて画面ショットを撮影することができる、という効果を奏する。
【図面の簡単な説明】
【0022】
【
図1】
図1は、操作対象画面の画面ショットを撮影する際に生じる課題の一例を示す図である。
【
図2】
図2は、自動操作対象に関連した画面のみを分割して全て撮影する仕組みを示す図である。
【
図3】
図3は、縦横スクロールを考慮して操作対象画面を全て撮影する仕組みを示す図である。
【
図4】
図4は、スクロールやページ移動を考慮して操作対象画面を全て撮影する仕組みを示す図である。
【
図5】
図5は、画面ショット撮影装置100の構成の一例を示す図である。
【
図6】
図6は、自動操作対象に関連した画面のみを分割して全て撮影する際に画面ショット撮影装置100で実行される画面ショット撮影処理に関するフローチャートの一例を示す図である。
【
図7】
図7は、自動操作対象に関連した画面のみを分割して全て撮影する際に、OSがWindows10(登録商標)の画面ショット撮影装置100で実行される画面ショット撮影処理に関するフローチャートの一例を示す図である。
【
図8】
図8は、画面のスクロールやページ移動を考慮し、画面を分割して全て撮影する際に画面ショット撮影装置100で実行される画面ショット撮影処理に関するフローチャートの一例を示す図である。
【
図9】
図9は、画面のスクロールやページ移動を考慮し、画面を分割して全て撮影する際の画面ショット保存イメージの一例を示す図である。
【発明を実施するための形態】
【0023】
以下に、本発明に係る画面ショット撮影装置、画面ショット撮影方法およびプログラムの実施形態を、図面に基づいて詳細に説明する。なお、本実施形態により本発明が限定されるものではない。
【0024】
[1.概要]
ここでは、本実施形態の概要について、
図1から
図4等を参照して説明する。
【0025】
RPA実行中、画面ショットを撮影しておきたい様々な場面がある。この場面の一例として、「操作対象画面中の重要項目への入力後」(場面例1)、「操作対象画面中の全項目への入力後で確定処理直前」(場面例2)、「操作対象画面中の全項目への入力後で確定処理直後」(場面例3)、「操作対象画面の遷移後」(場面例4)および「エラーにより自動操作が停止する直前」(場面例5)などが挙げられる。なお、場面例1で画面ショットを撮影することの目的は、例えば、重要項目への値入力が誤っていないか確認することである。また、場面例2で画面ショットを撮影することの目的は、例えば、全ての入力情報が誤っていないか確認することである。また、場面例3で画面ショットを撮影することの目的は、例えば、確定処理が適切に行われたか確認することである。また、場面例4で画面ショットを撮影することの目的は、例えば、適切に画面が切り替わったか確認することである。また、場面例5で画面ショットを撮影することの目的は、例えば、動作が停止した原因を特定することである。
【0026】
しかし、これまでは、操作対象画面の画面ショットが、操作対象画面の状態を考慮せずに撮影されていた。その結果、
図1に示すように、例えば、「メッセージダイアログや他の画面が重なってしまい、確認したい入力項目が画面ショットから確認できない」といった課題(課題例1)や、「スクロールや画面内のページ移動により画面項目が隠れてしまうことがあり、確認したい入力項目が画面ショットから確認できない」といった課題(課題例2)が発生していた。つまり、確認したい画面項目を画面ショットから確認できないことがあった。
図1は、操作対象画面の画面ショットを撮影する際に生じる課題の一例を示す図である。
【0027】
そこで、
図2に示すように、「操作対象画面とその関連画面のみを特定し、1枚ずつ分割して画面ショットを撮影する仕組み」を開発した。この仕組みでは、操作対象画面に関連しない画面は撮影されないので、余計な画面ショットが撮影されることはない。また、この仕組みでは、重なりが一番下の画面から順番に画面ショットを撮影するので、画面の前後関係も理解できる。
図2は、自動操作対象に関連した画面のみを分割して全て撮影する仕組みを示す図である。
【0028】
また、
図3に示すように、前記仕組みをベースとした、「操作対象画面の縦横スクロールバーを認識して画面をスクロールさせながら、1枚ずつ分割して画面ショットを撮影する仕組み」も開発した。この仕組みでは、縦横スクロールを考慮して画面ショットを並び替えて表示するので、それぞれの画面ショットの位置関係が一目で理解できる。
図3は、縦横スクロールを考慮して操作対象画面を分割して全て撮影する仕組みを示す図である。
【0029】
さらに、
図4に示すように、前記仕組みをベースとした、「操作対象画面のスクロールバーとページ移動ボタンを認識し、画面を自動で変えながら、1枚ずつ分割して画面ショットを撮影する仕組み」も開発した。この仕組みでは、スクロールとページ移動を考慮して画面ショットを並び替えて表示するので、項目情報が一目で理解できる。
図4は、スクロールとページ移動を考慮して操作対象画面を分割して全て撮影する仕組みを示す図である。
【0030】
[2.構成]
ここでは、本実施形態に係る画面ショット撮影装置100の構成の一例について、
図5等を参照して説明する。
【0031】
図5は、画面ショット撮影装置100の構成の一例を示すブロック図である。画面ショット撮影装置100は、操作(例えばRPAツールによる自動操作またはユーザによる画面ショットの撮影に関する操作など)の対象とされるアプリケーションプログラム(例えば業務アプリケーションプログラムなど)である対象プログラムにより提供される全ての画面(対象プログラムにより提供される画面は、単一でも複数でもよい。)の画面ショットを撮影するものであり、例えば、RPAツールによる自動操作の対象とされる業務アプリケーションプログラムおよびRPAツールが導入されたものである。
【0032】
画面ショット撮影装置100は、市販のデスクトップ型パーソナルコンピュータである。なお、画面ショット撮影装置100は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
【0033】
画面ショット撮影装置100は、制御部102と通信インターフェース部104と記憶部106と入出力インターフェース部108と、を備えている。画面ショット撮影装置100が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0034】
通信インターフェース部104は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、情報処理装置100をネットワーク300に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク300は、画面ショット撮影装置100とサーバ200とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。なお、記憶部106に格納されるデータは、例えばサーバ装置200に格納されてもよい。
【0035】
入出力インターフェース部108には、入力装置112および出力装置114が接続されている。出力装置114には、モニタ(家庭用テレビを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、及びマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114をモニタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。
【0036】
記憶部106には、各種のデータベース、テーブルおよびファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部106として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。
【0037】
記憶部106には、例えば、マスタデータ106a、および、撮影された画面ショットが格納される画面ショット記憶部106bなどが含まれる。マスタデータ106aには、画面識別子(例:画面ID)と、縦スクロールまたは横スクロールの1つまたは複数のコントロール識別子(例:コントロールID)および/またはページ移動のコントロール識別子(例:コントロールID)とが紐付けて格納されている。
【0038】
図5に戻り、制御部102は、画面ショット撮影装置100を統括的に制御するCPU等である。制御部102は、OS(例えばWindows(登録商標)、macOS(登録商標)、UNIX(登録商標)(Linux(登録商標)などを含む)、Android(登録商標)、iOS(登録商標)など)等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。
【0039】
制御部102は、機能概念的に、実行識別子取得部102a、画面識別子取得部102b、撮影部102cおよび保存実行部102dなどを備える。
【0040】
実行識別子取得部102aは、操作実行中の対象プログラムの実行識別子(例:実行ID)を取得する。例えばOSがWindows10(登録商標)の場合、実行識別子取得部102aは、操作実行中の対象プログラムのプロセス(プログラムの実行を一意に特定できるID)を取得する。
【0041】
画面識別子取得部102bは、実行識別子取得部102aで取得した実行識別子で特定される対象プログラムにより提供される全ての画面の画面識別子(例:画面ID)を取得する。例えばOSがWindows10(登録商標)の場合、画面識別子取得部102bは、実行識別子取得部102aで取得したプロセスで特定される対象プログラムにより提供される全ての画面のウィンドウハンドル(画面やコントロールを認識するための、画面を一意に特定できるID)を取得する。
【0042】
撮影部102cは、画面識別子取得部102bで取得した全ての画面識別子のそれぞれで特定される画面の画面ショットを撮影する。なお、撮影部102cは、最下層の画面から順に画面ショットを撮影してもよい。例えばOSがWindows10(登録商標)の場合、撮影対象画面のウィンドウハンドルを指定して、画面ショットを、最下層の画面から順に撮影する。
【0043】
また、撮影部102cは、画面識別子取得部102bで取得した全ての画面識別子に対し、以下の(1)から(3)の処理を実行してもよい。
(1)マスタデータ106aから、画面識別子に紐付くコントロール識別子(例:コントロールID)を取得する。
(2)コントロール識別子が取得できなかった場合は、画面識別子で特定される画面の画面ショットを撮影する。
(3)コントロール識別子が取得できた場合は、(31)各コントロール識別子からスクロールの情報またはページ移動の情報を取得し、(32)当該取得した各情報に応じて、画面識別子で特定される画面におけるスクロールおよび/またはページ移動の状態を初期状態に設定して、画面ショットを撮影し、(33)画面識別子で特定される画面に対し、当該取得した各情報に応じたスクロールおよび/またはページ移動の処理を実行しながら、当該処理が実行できなくなるまで、画面ショットを撮影する。
【0044】
また、撮影部102cは、(33)の処理において、スクロールの処理、ページ移動の処理の順に各処理を実行しながら、画面ショットを撮影してもよい。また、撮影部102cは、(33)の処理において、スクロールの処理を、縦スクロール、横スクロールの順に実行してもよい。また、スクロールの処理は、スクロールボックスの大きさを、スクロールボックスの移動の単位とするものでもよい。
【0045】
保存実行部102dは、撮影部102cで撮影された全ての画面ショットを、画面ショット記憶部106bに保存する。
【0046】
なお、保存実行部102dは、画面ショットに撮影順を示す番号を付与して画面ショットを保存してもよい。
【0047】
また、保存実行部102dは、画面ショット撮影時に保存したスクロールの情報および/またはページ移動の情報を基に、画面ショットを1つのシートに並べて保存してもよい。
【0048】
[3.処理の具体例]
ここでは、画面ショット撮影装置100で実行される処理の具体例について、
図6から
図9等を参照して説明する。
【0049】
[3-1.具体例その1]
図6は、自動操作対象に関連した画面のみを分割して全て撮影する際に画面ショット撮影装置100で実行される画面ショット撮影処理に関するフローチャートの一例を示す図である。
【0050】
まず、実行識別子取得部102aは、操作対象プログラムの実行IDを取得する(ステップSA1)。
【0051】
つぎに、画面識別子取得部102bは、ステップSA1で取得した実行IDで特定されるプログラムの画面IDを全て取得する(ステップSA2)。
【0052】
つぎに、撮影部102cは、ステップSA2で取得した全ての画面IDを基に、画面IDの昇順に、画面IDで特定される画面の画面ショットを撮影する(ステップSA3)。
【0053】
つぎに、保存実行部102dは、ステップSA3で撮影された全ての画面ショットのファイル名に撮影順を付与し、当該付与後の画面ショットを画面ショット記憶部106bに保存する(ステップSA4)。
【0054】
[3-2.具体例その2]
図7は、自動操作対象に関連した画面のみを分割して全て撮影する際に、OSがWindows10(登録商標)の画面ショット撮影装置100で実行される画面ショット撮影処理に関するフローチャートの一例を示す図である。
【0055】
まず、実行識別子取得部102aは、操作対象プログラムのプロセスを取得する(ステップSB1)。
【0056】
つぎに、画面識別子取得部102bは、ステップSB1で取得したプロセスで特定されるプログラムの操作対象画面のウィンドウハンドルを全て取得する(ステップSB2)。
【0057】
つぎに、撮影部102cは、ステップSB2で取得したウィンドウハンドルの内、撮影対象画面のウィンドウハンドルを指定する(ステップSB3)。
【0058】
つぎに、撮影部102cは、ステップSB3で指定したウィンドウハンドルを基に、最下層から順番に撮影対象画面の画面ショットを撮影する(ステップSB4)。
【0059】
つぎに、保存実行部102dは、ステップSB4で撮影された全ての画面ショットのファイル名に撮影順を付与し、当該付与後の画面ショットを画面ショット記憶部106bに保存する(ステップSB5)。
【0060】
[3-3.具体例その3]
図8は、画面のスクロールやページ移動を考慮し、画面を分割して全て撮影する際に画面ショット撮影装置100で実行される画面ショット撮影処理に関するフローチャートの一例を示す図である。なお、このフローチャートは、
図6に示すフローチャートのステップSA3の具体例であるため、
図6に示すステップSA1とステップSA2に相当する処理については、説明を省略する。
【0061】
まず、撮影部102cは、マスタデータ106aから、取得した画面IDに紐付くコントロールIDを取得する(ステップSC1)。
【0062】
つぎに、撮影部102cは、ステップSC1で取得したコントロールIDから、操作対象画面のスクロールおよびページ移動の情報を取得する(ステップSC2)。
【0063】
つぎに、撮影部102cは、スクロールおよびページ移動を初期位置へ移動し、移動後の画面ショットを撮影する(ステップSC3)。
【0064】
つぎに、撮影部102cは、操作対象画面に対しページ移動が可能かどうか判定する(ステップSC4)。
【0065】
つぎに、撮影部102cは、ページ移動が可能であれば、操作対象画面に対し横スクロールが可能かどうか判定する(ステップSC5)。具体的には、撮影部102cは、スクロールエリアの大きさとスクロールボックスの大きさから、横スクロールが可能かどうか判定する。
【0066】
つぎに、撮影部102cは、横スクロールが可能であれば、操作対象画面に対し縦スクロールが可能かどうか判定する(ステップSC6)。具体的には、撮影部102cは、スクロールエリアの大きさとスクロールボックスの大きさから、縦スクロールが可能かどうか判定する。
【0067】
つぎに、撮影部102cは、縦スクロールが可能であれば、縦スクロール処理を実行し、操作対象画面の画面ショットを撮影する(ステップSC7)。具体的には、撮影部102cは、縦スクロールボックスの大きさ分、スクロール位置を移動させ、操作対象画面の画面ショットを撮影する。撮影後、処理は、ステップSC6に戻る。
【0068】
ステップSC6とステップSC7は、縦スクロールができなくなるまで、繰り返される。具体的には、縦スクロールボックスのスクロール位置が最終位置に移動するまで、繰り返される。これにより、ページと横スクロールを固定して縦スクロールだけ実行しながら撮影した画面ショット(具体的には、
図9に示す(0,0,z)に対応する各画面ショット(z=0,1,・・・))が得られる。
【0069】
つぎに、撮影部102cは、横スクロール処理を実行し、操作対象画面の画面ショットを撮影する(ステップSC8)。具体的には、撮影部102cは、横スクロールボックスの大きさ分、スクロール位置を移動させ、操作対象画面の画面ショットを撮影する。撮影後、処理は、ステップSC5に戻る。
【0070】
ステップSC5からステップSC8は、横スクロールができなくなるまで、繰り返される。具体的には、横スクロールボックスのスクロール位置が最終位置に移動するまで、繰り返される。これにより、ページを固定して横スクロールもさらに実行しながら撮影した画面ショットが得られる(具体的には、
図9に示す(0,y,z)に対応する各画面ショット(y=0,1,2,・・・;z=0,1,・・・))。また、ステップSC5からステップSC8は、スクロールバーの数だけ、行われる。
【0071】
つぎに、撮影部102cは、ページ移動処理を実行し、操作対象画面の画面ショットを撮影する(ステップSC9)。具体的には、撮影部102cは、ページを1ページだけ移動させ、操作対象画面の画面ショットを撮影する。撮影後、処理は、ステップSC4に戻る。
【0072】
ステップSC4からステップSC9は、ページ移動ができなくなるまで、繰り返される。具体的には、ページが最終ページに移動するまで、繰り返される。これにより、ページ移動もさらに実行しながら撮影した画面ショット(具体的には、
図9に示す(x,y,z)に対応する各画面ショット(x=0,1,・・・;y=0,1,2,・・・;z=0,1,・・・)が得られる。
【0073】
そして、保存実行部102dは、画面ショット撮影時に保存したスクロールとページ移動の情報を基に、
図9に示すように、画面ショットを1つのシートに並べる。なお、ページ移動と横スクロールを適用させた場合は、保存実行部102dは、
図9に示すように、画面ショットを横方向に順番に並べる。また、縦スクロールを適用させた場合は、保存実行部102dは、
図9に示すように、画面ショットを縦方向に順番に並べる。そして、保存実行部102dは、このシートを画面ショット記憶部106bに保存する。
図9は、画面のスクロールやページ移動を考慮し、画面を分割して全て撮影する際の画面ショット保存イメージの一例を示す図である。
【0074】
[4.本実施形態のまとめ]
以上、本実施形態によれば、画面ショットを撮影するときに、本来隠れてしまっている領域を含め撮影することができる。具体的には、他の画面が重なって隠れてしまっている項目を撮影することができたり、スクロールの表示領域外の項目を撮影することができたりする。これにより、画面上の全ての項目を把握することができ、画面ショットが自動操作結果の記録としてより意味のあるものになった。また、画面ショットによってエラー発生の原因調査の効率化ができるようになった。
【0075】
これまで、RPA操作中の画面ショットを撮ることで自動操作状況を把握したいが、通常の画面ショットでは全ての項目を写すことができない場合があり、確認したい項目を確認できないことがあった。ところが、本実施形態によれば、自動操作対象に関連した項目を漏れなく全て撮ることができるため、画面ショットから確認したい項目を確実に確認できるようになった。また、本実施形態によれば、RPA操作時だけでなく、ユーザがアプリケーションの画面撮影を行う際にも活用できるため、漏れなく画面項目を撮ることができる。
【0076】
[5.他の実施形態]
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0077】
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0078】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0079】
また、画面ショット撮影装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0080】
例えば、画面ショット撮影装置100が備える処理機能、特に制御部にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて画面ショット撮影装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0081】
また、このコンピュータプログラムは、画面ショット撮影装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0082】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD-ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、および、Blu-ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
【0083】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【0084】
記憶部に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、及び、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、及び、ウェブページ用ファイル等を格納する。
【0085】
また、画面ショット撮影装置100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、画面ショット撮影装置100は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
【0086】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【産業上の利用可能性】
【0087】
本発明は、特に、RPAツールによる業務システムの自動操作を取り入れている企業において有用である。
【符号の説明】
【0088】
100 画面ショット撮影装置
102 制御部
102a 実行識別子取得部
102b 画面識別子取得部
102c 撮影部
102d 保存実行部
104 通信インターフェース部
106 記憶部
106a マスタデータ
106b 画面ショット記憶部
108 入出力インターフェース部
112 入力装置
114 出力装置
200 サーバ
300 ネットワーク