(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-19
(45)【発行日】2023-12-27
(54)【発明の名称】データ処理装置、データ処理方法、及びデータ処理プログラム
(51)【国際特許分類】
G06F 9/54 20060101AFI20231220BHJP
G06F 16/20 20190101ALI20231220BHJP
【FI】
G06F9/54 A
G06F16/20
(21)【出願番号】P 2020106335
(22)【出願日】2020-06-19
【審査請求日】2022-11-11
(73)【特許権者】
【識別番号】398040527
【氏名又は名称】株式会社オービック
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】河合 優佑
(72)【発明者】
【氏名】早川 周吾
(72)【発明者】
【氏名】小松 湧暉
(72)【発明者】
【氏名】廣木 健人
(72)【発明者】
【氏名】上野 剛光
【審査官】早川 学
(56)【参考文献】
【文献】米国特許出願公開第2017/0075627(US,A1)
【文献】特開2008-243193(JP,A)
【文献】特開2005-056085(JP,A)
【文献】特開2012-247979(JP,A)
【文献】特開2020-091805(JP,A)
【文献】特開2001-236452(JP,A)
【文献】特開2004-265164(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/54
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
記憶部及び制御部を備えたデータ処理装置であって、
前記記憶部は、
所定の形式のデータを格納するためのテーブルを備え、
前記制御部は、
データソースからデータを読み込み、読み込んだデータをグループ化してデータグループを生成し、生成したデータグループを所定の形式にデータ変換し、変換したデータグループにキー情報を付加して前記テーブルに格納する第1のデータ処理手段と、
前記第1のデータ処理手段からキー情報を受け取り、前記テーブルから受け取ったキー情報に対応するデータグループを取得して復元する第2のデータ処理手段と、
を備えたことを特徴とするデータ処理装置。
【請求項2】
前記グループ化は、読み込んだデータにキーとなる情報がある場合は、当該キーとなる情報を単位にグループ化し、キーになる情報がない場合は、新たにキーとなる情報を設定して、当該設定したキーとなる情報を単位にグループ化することを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記キー情報は、データ識別子及び前記データグループのグループ番号で規定されることを特徴とする請求項1に記載のデータ処理装置。
【請求項4】
前記データ変換は、シリアライズ処理を含み、前記復元は、デシリアライズ処理を含むことを特徴とする請求項1又は請求項2に記載のデータ処理装置。
【請求項5】
前記第1のデータ処理手段及び前記第2のデータ処理手段は、RPA(Robotic Process Automation)、非同期処理システム、又は分散処理システムで構成されることを特徴とする請求項1又は2に記載のデータ処理装置。
【請求項6】
前記第1のデータ処理手段及び前記第2のデータ処理手段は、伝票処理を行うことを特徴とする請求項1又は2に記載のデータ処理装置。
【請求項7】
記憶部及び制御部を備えた情報処理装置で実行されるデータ処理方法であって、
前記制御部
が、
データソースからデータを読み込み、読み込んだデータをグループ化してデータグループを生成し、生成したデータグループを所定の形式にデータ変換して、データ変換したデータグループにキー情報を付加してテーブルに格納する第1のデータ処理工程と、
前記第1のデータ処理工程からキーを受け取り、前記テーブルから受け取ったキー情報に対応するデータグループを取得して復元する第2のデータ処理工程と、
を実行することを特徴とするデータ処理方法。
【請求項8】
記憶部及び制御部を備えた情報処理装置に実行させるためのデータ処理プログラムであって、
前記制御部において、
データソースからデータを読み込み、読み込んだデータをグループ化してデータグループを生成し、生成したデータグループを所定の形式にデータ変換して、データ変換したデータグループにキー情報を付加してテーブルに格納する第1のデータ処理工程と、
前記第1のデータ処理工程からキー情報を受け取り、前記テーブルから受け取ったキー情報に対応するデータグループを取得して復元する第2のデータ処理工程と、
を実行させるためのデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、データ処理方法、及びデータ処理プログラムに関する。
【背景技術】
【0002】
従来、アプリケーション間でのデータの受け渡しは、単純なデータの受け渡ししかできなかった。具体的には、例えば、文字列しか渡せない・文字数制限がある等の受け渡しできるデータの制約が多い。従来のデータの受け渡しに関するシステムとして、例えば、特許文献1がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1では、様々な粒度や形式のデータをアプリケーション間で受け渡しを行うことに関して何等記載されていない。
【0005】
本発明は、上記に鑑みてなされたものであり、様々な粒度や形式のデータをアプリケーション間で受け渡すことが可能なデータ処理装置、データ処理方法、及びデータ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明は、記憶部及び制御部を備えたデータ処理装置であって、前記記憶部は、所定の形式のデータを格納するためのテーブルを備え、前記制御部は、データソースからデータを読み込み、読み込んだデータをグループ化してデータグループを生成し、生成したデータグループを所定の形式にデータ変換して、データ変換したデータグループにキー情報を付加して前記テーブルに格納する第1のデータ処理手段と、前記第1のデータ処理手段からキー情報を受け取り、前記テーブルから受け取ったキー情報に対応するデータグループを取得して復元する第2のデータ処理手段と、を備えたことを特徴とする。
【0007】
また、本発明の一態様によれば、前記グループ化は、読み込んだデータにキーとなる情報がある場合は、当該キーとなる情報を単位にグループ化し、キーになる情報がない場合は、新たにキーとなる情報を設定して、当該設定したキーとなる情報を単位にグループ化することにしてもよい。
【0008】
また、本発明の一態様によれば、前記キー情報は、データ識別子及び前記データグループのグループ番号で規定されることにしてもよい。
【0009】
また、本発明の一態様によれば、前記データ変換は、シリアライズ処理を含み、前記復元はデシリアライズ処理を含むことにしてもよい。
【0010】
また、本発明の一態様によれば、前記第1のデータ処理手段及び前記第2のデータ処理手段は、RPA、非同期処理システム、又は分散処理システムで構成されることにしてもよい。
【0011】
また、本発明の一態様によれば、前記第1のデータ処理手段及び前記第2のデータ処理手段は、伝票処理を行うことにしてもよい。
【0012】
また、上述した課題を解決し、目的を達成するために、本発明は、記憶部及び制御部を備えた情報処理装置で実行されるデータ処理方法であって、前記制御部で実行される、データソースからデータを読み込み、読み込んだデータをグループ化してデータグループを生成し、生成したデータグループを所定の形式にデータ変換して、データ変換したデータグループにキー情報を付加しテーブルに格納する第1のデータ処理工程と、前記第1のデータ処理工程からキー情報を受け取り、前記テーブルから受け取ったキー情報に対応するデータグループを取得して復元する第2のデータ処理工程と、を含むことにしてもよい。
【0013】
また、上述した課題を解決し、目的を達成するために、本発明は、記憶部及び制御部を備えた情報処理装置に実行させるためのデータ処理プログラムであって、前記制御部において、データソースからデータを読み込み、読み込んだデータをグループ化してデータグループを生成し、生成したデータグループを所定の形式にデータ変換して、データ変換したデータグループにキー情報を付加してテーブルに格納する第1のデータ処理工程と、前記第1のデータ処理工程からキー情報を受け取り、前記テーブルから受け取ったキー情報に対応するデータグループを取得して復元する第2のデータ処理工程と、を実行させるためのデータ処理プログラムであることを特徴とする。
【発明の効果】
【0014】
本発明によれば、様々な粒度や形式のデータをアプリケーション間で受け渡すことが可能となるという効果を奏する。
【図面の簡単な説明】
【0015】
【
図1】
図1は、読み込んだデータを他のアプリケーションで使用する場合を説明するための図である。
【
図2】
図2は、読み込んだデータを他のアプリケーションで使用する例1(非同期処理)を説明するための図である。
【
図3】
図3は、読み込んだデータを他のアプリケーションで使用する例2(RPA)を説明するための図である。
【
図4】
図4は、アプリケーション間で入力データを受け渡す場合の課題1を説明するための図である。
【
図5】
図5は、様々なフォーマットの入力データを同じテーブルで扱いたいという課題2を説明するための図である。
【
図6】
図6は、1伝票で複数明細を持つ伝票データや1項目で複数選択できる入力データの管理が難しいという課題3を説明するための図である。
【
図7】
図7は、本実施の形態に係るデータ処理装置の構成の一例を示すブロック図である。
【
図8】
図8は、本実施の形態におけるデータ処理装置の制御部の全体の処理の概略を説明するための処理フローを示す図である。
【
図9】
図9は、1伝票を1つの纏まりとして管理する方法(課題3の解決策)を説明するための図である。
【
図10】
図10は、1伝票を1つの纏まりとして管理する方法(課題3の解決策)を説明するための図である。
【
図11】
図11は、入力データを共通の形に変換する方法(課題2の解決策)を説明するための図である。
【
図12】
図12は、アプリケーション間でキー情報のみを受け渡す方法(課題1の解決策)を説明するための図である。
【
図13】
図13は、第1のデータ処理部及び第2のデータ処理部の詳細なデータ処理を説明するための図である。
【
図14】
図14は、第1のデータ処理部及び第2のデータ処理部の詳細なデータ処理を説明するための図である。
【
図15】
図15は、第1のデータ処理部及び第2のデータ処理部の詳細なデータ処理を説明するための図である。
【
図16】
図16は、第1のデータ処理部及び第2のデータ処理部の詳細なデータ処理を説明するための図である。
【
図17】
図17は、第1のデータ処理部及び第2のデータ処理部の詳細なデータ処理を説明するための図である。
【
図18】
図18は、第1のデータ処理部及び第2のデータ処理部の詳細なデータ処理を説明するための図である。
【発明を実施するための形態】
【0016】
以下に、本発明に係るデータ処理装置、データ処理方法、及びデータ処理プログラムの実施の形態を、図面に基づいて詳細に説明する。なお、本実施形態によりこの発明が限定されるものではない。
【0017】
[1.概要]
従来、アプリケーション間でのデータの受け渡しは、単純なデータの受け渡ししかできなかった。このため、扱うデータの分割単位や形式に応じた個別実装が必要になる。個別実装が多くなることで、開発工数・品質に対するリスクが高くなる。
【0018】
図1~
図3を参照して、従来のアプリケーション間でのデータの受け渡しに関する背景を説明する。
【0019】
(背景1)
図1は、読み込んだデータを他のアプリケーションで使用する場合を説明するための図である。
図1において、例えば、読み込んだデータを他のアプリケーションで使用したい場合がある。日常の業務では大量のデータを一度に読み込み、そのデータを、他のアプリケーションで使用するシステムがある。システムによって、業務分析用の付帯情報などデータの形式は多種多様である。例えば、複数伝票データにそれぞれ複数明細データ紐づくなど、分割粒度も様々である。
図1に示す例では、売上伝票用の大量データを、読込処理で読み込み、売上入力に受け渡す場合や、請求伝票用の大量データを、読込処理で読み込み、請求入力に受け渡す場合を示している。
【0020】
(背景2)
図2は、読み込んだデータを他のアプリケーションで使用する例1(非同期処理)を説明するための図である。
図2において、1回の実行に時間がかかる処理(以下「重い処理」と称する)を、複数回行う場合、勤務時間中に大量のデータ(例えば、伝票データ)を読み込んでおいて、勤務時間外(夜間など)に重い処理を実行する、ということがある。このように、データを読み込む処理と、実際に使用する処理が同期していないことを非同期処理という。
【0021】
(背景3)
図3は、読み込んだデータを他のアプリケーションで使用する例2(RPA)を説明するための図である。
図3において、RPAを実行する際、以下の順番で実行されることが多い。1.入力データ(例えば、請求伝票用の大量データ)を一度に読み込む。2.入力データをもとにRPAが繰り返し処理(例えば、1伝票分のデータを受け取り、請求入力を全伝票分繰り返す)を行う。このように、読込処理からRPAロボットへデータを受け渡す必要がある。
【0022】
次に、
図4~
図6を参照して、課題1~3を説明する。
【0023】
(課題1)
図4は、アプリケーション間で入力データを受け渡す場合の課題1を説明するための図である。
図3において、読込処理で読み込んだ入力データを他のアプリケーション(他のプロセス)で使用するためには、データの受け渡しを行う必要がある。データをアプリケーション間で受け渡すには、文字数制限がある、単純な文字列しか渡せない等、様々な課題がある。また、表形式など構造化された情報の受け渡しが難しいという課題がある。
【0024】
(課題2)
図5は、様々なフォーマットの入力データを同じテーブルで扱いたいという課題2を説明するための図である。
図5において、入力データの受け渡しの課題に対する解決策として、データベースに格納した入力データを、受け渡し先の処理で呼び出す、という手段がある。しかしながら、入力データをそのままの形で格納しようとすると、入力データの項目数や、管理する伝票データなどが変わる度に、それに対応するテーブルを用意する必要がある。
【0025】
(課題3)
図6は、1伝票で複数明細を持つ伝票データや1項目で複数選択できる入力データの管理が難しいという課題3を説明するための図である。
図6において、伝票データには1伝票で複数の明細を持つ伝票データも存在する。また、1項目で複数選択できる伝票データも存在する。このようなデータの管理には、明細の数だけテーブルの行数が増えてしまうという課題がある。また、一つの項目の入力値が複数あるという場合の入力データの管理が難しいという課題がある。
【0026】
そこで、本実施の形態では、これらの課題1~課題3を解決するために、(1)アプリケーション間でデータを受け渡す場合にキー情報のみを渡すことで、受け渡す情報を低減し、(2)共通(所定)の形にデータを変換することで、同一テーブルで管理可能にし、(3)データ(例えば、伝票データ)をキーとなる情報(例えば、伝票番号)単位で1つの纏まりとしてグループ化して管理することで、複数の明細、複数の入力値を管理できるように構成した。以下の説明では、主として伝票処理に関して説明するが、本発明はこれに限られるものではなく、各種のデータ処理に適用可能である。
【0027】
[2.構成]
本実施の形態に係るデータ処理装置100の構成について、
図7を参照して説明する。
図7は、本実施の形態に係るデータ処理装置100の構成の一例を示すブロック図である。
【0028】
データ処理装置100は、市販のデスクトップ型パーソナルコンピュータである。なお、データ処理装置100は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
【0029】
データ処理装置100は、
図7に示すように、制御部102と通信インターフェース部104と記憶部106と入出力インターフェース部108と、を備えている。データ処理装置100が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0030】
通信インターフェース部104は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、データ処理装置100をネットワーク300に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク300は、データ処理装置100とサーバ200とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。なお、後述する記憶部106に格納されるデータは、サーバに格納されてもよい。
【0031】
入出力インターフェース部108には、入力装置112および出力装置114が接続されている。出力装置114には、モニタ(家庭用テレビを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、およびマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114をモニタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。また、ユーザが出力装置(モニタ)114の画面(GUI等)に対して入力装置112で操作することを、単に「ユーザ操作」と記載する場合がある。
【0032】
記憶部106には、各種のデータベース、テーブル、およびファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部106として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。記憶部106は、テーブル106a等を備えている。テーブル106aには、キー情報とデータグループが所定のフォーマットで格納される。
【0033】
制御部102は、データ処理装置100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。制御部102は、機能概念的に、第1のデータ処理部102aと、第2のデータ処理部102bとを備えている。
【0034】
第1のデータ処理部102aと第2のデータ処理部102bは、「アプリケーション」又は「プロセス」とも称される。
【0035】
第1のデータ処理部102aは、不図示のデータソースからデータを読み込み、読み込んだデータをグループ化してデータグループを生成し、生成したデータグループを所定の形式にデータ変換し、変換したデータグループにキー情報を付加してテーブル106aに格納する。データソースは、例えば、Excel等の表計算アプリ、業務アプリケーション、ファイル自体等の各種データソースを使用することができる。
【0036】
グループ化は、読み込んだデータにキーとなる情報がある場合は、当該キーとなる情報を単位にグループ化し、キーになる情報がない場合は、新たにキーとなる情報を設定して、当該設定したキーとなる情報を単位にグループ化することにしてもよい。
【0037】
また、キー情報は、データ識別子及び記データグループのグループ番号で規定されることにしてもよい。また、データ変換は、シリアライズ処理を含み、復元は、デシリアライズ処理を含むことにしてもよい。
【0038】
第2のデータ処理部102bは、第1のデータ処理部102aからキー情報を受け取り、テーブル106aから受け取ったキー情報に対応するデータグループを取得した後、復元して、入力する処理を行う。
【0039】
また、第1のデータ処理部102a及び第2のデータ処理部102bは、RPA(Robotic Process Automation)、非同期処理システム、又は分散処理システム等で構成してもよい。
【0040】
また、第1のデータ処理部102a及び第2のデータ処理部102bは、伝票処理を行うことにしてもよい。
【0041】
[3.処理の具体例]
図7~
図18を参照して、本実施の形態におけるデータ処理装置100の制御部102の処理の具体例を説明する。
図8は、本実施の形態におけるデータ処理装置100の制御部102の全体の処理の概略を説明するための処理フローを示す図である。
【0042】
図8において、まず、第1のデータ処理部102aは、データソースからデータ(例えば、伝票データ)を読み込む読込処理を実行する(ステップS1)。第1のデータ処理部102aは、読み込んだデータをグループ化してデータグループを生成するデータグループ作成処理(ステップS2)を実行する。次に、第1のデータ処理部102aは、データグループを所定の形式にデータ変換するデータ変換処理を実行する(ステップS3)。つづいて、第1のデータ処理部102aは、変換したデータグループにキー情報を付加して、所定のフーマットでテーブル106aに格納する格納処理を実行する(ステップS4)。
【0043】
データソースは、例えば、Excel等の表計算アプリ、業務アプリケーション、ファイル自体等としてもよい。グループ化は、読み込んだデータにキーとなる情報がある場合は、当該キーとなる情報を単位にグループ化し、キーになる情報がない場合は、新たにキーとなる情報を設定して、当該設定したキーとなる情報を単位にグループ化することにしてもよい。また、キー情報は、データ識別子及び前記データグループのグループ番号で規定されることにしてもよい。また、データ変換は、シリアライズ処理を含むことにしてもよい。
【0044】
第2のデータ処理部102bは、第1のデータ処理部102aからキー情報を受け取るキー取得処理を実行する(ステップT1)。第2のデータ処理部102bは、テーブル106aから受け取ったキー情報に対応するデータグループを取得して復元する復元処理を実行する(ステップT2)。復元処理は、デシリアライズ処理を含むことにしてもよい。第2のデータ処理部102bは、復元したデータグループを入力する入力処理(例えば、受注入力、売上入力、請求入力、及び発注入力等)を実行する(ステップT3)。
【0045】
また、第1のデータ処理部102a及び第2のデータ処理部102bは、RPA(Robotic Process Automation)、非同期処理システム、又は分散処理システムで構成してもよい。分散処理は、データを読み込んで、そのデータを別の複数の処理で使用するものであり、実行指示部(データ読み込み):実行部=1:Nとなるようなシステムである。なお、本発明の第1のデータ処理部102a及び第2のデータ処理部102bは、RPA、非同期処理システム、及び分散処理システムに限られるものではなく、他のシステムでも使用可能である。
【0046】
つぎに、グループ化処理S2、データ変換処理S3、格納処理S4、キー取得処理T1について詳細に説明する。
【0047】
(グループ化処理S2)
図9及び
図10を参照して、グループ化処理について説明する。
図9及び
図10は、1伝票を1つの纏まりとして管理する方法(課題3の解決策)を説明するための図である。
【0048】
任意のフォーマットを格納する手段として、例えば、XML等がある。しかしながら、XMLは複雑なタグ構造で表現されるため、人が入力することが困難である。本実施の形態では、従来の表形式を踏襲しつつ、任意のレイアウトが保持できるため、人による入力・確認が容易である。
【0049】
図9(A)に示すように、1伝票データの纏まりを1データグループとする。例えば、伝票番号をキーとして、グループ化してデータグループを作成する。
図9(A)に示す例では、伝票番号「1001」は、3行分のデータがあるが、伝票番号「1001」について、3行分のデータを1つのデータグループとする。
【0050】
また、グループ化する場合は、
図9(B)に示すように、複数の入力値を縦に管理し、1項目分のデータとする。
図9(B)に示す例では、伝票番号「1002」については、事業所「東京、大阪」となっているが、事業所の項目については、「東京」、「大阪」の入力値を縦に管理し、1項目分のデータとする。
【0051】
また、
図10において、受け入れたデータを分割してグループ化するために、グループ化するための一意なキーの情報を受入ファイルに設ける必要がある。この例では業務システムを使用しているため、伝票番号をキーとしている。
図10(A)に示すように、グループ化するためのキーとなる情報がある場合は、例えば、伝票番号を一意なキーとなる情報としてデータグループを形成する。
図10(A)に示す例では、伝票番号「1001」、・・・、「1800」毎に、データグループを形成する。
【0052】
図10(B)に示すように、グループ化するためのキーとなる情報がない場合は、新たにキーとなる情報を設定する。
図10(B)に示す例では、商品CD、仕入額、売価は、グループ化するためのキーとなる情報とはならないので、新たにグループIDを設定して、グループIDをキーとなる情報として、データグループを作成する。
【0053】
(データ変換処理S3及び格納処理S4)
図11を参照して、データ変換処理及び格納処理について説明する。
図11は、入力データを共通の形に変換する方法(課題2の解決策)を説明するための図である。
【0054】
図11において、入力データのフォーマットに関わらず、データグループ毎に、共通の形式(所定の形式)にデータ変換してデータを管理する。また、データ変換したそれぞれのデータグループにキー情報を付与する。キー情報を付与したデータグループをテーブル106aに格納する。これによって、複雑なデータ形式に対応しつつ、操作対象毎にテーブル106aを変更することなくデータの準備ができるようになる。
【0055】
図11に示す例では、項目の異なる伝票データについて、伝票番号「1001」、・・・、「1800」、「2001」、・・・、「2500」毎に、データグループを形成し、各データグループを共通の形式にデータ変換する。データ変換したデータグループにキー情報を付加してテーブル106aに格納する。
【0056】
(キー取得処理T1、復元処理T2、入力処理T3)
図12を参照して、キー取得処理、復元処理、入力処理を説明する。
図12は、アプリケーション間でキー情報のみを受け渡す方法(課題1の解決策)を説明するための図である。
【0057】
図12において、第2のデータ処理部102bは、第1のデータ処理部102aからキー情報を受け取る。第2のデータ処理部102bは、キー情報を元にテーブル106aからデータグループを取得して、取得したデータグループを元のデータグループに復元して、入力処理(例えば、売上入力)で使用する。このように、第2のデータ処理部102bは、キー情報を取得するだけで、データグループを取得して入力処理を行うことが可能となる。
【0058】
(詳細なデータ処理の例)
次に、
図13~
図18を参照して第1のデータ処理部102a及び第2のデータ処理部102bの詳細なデータ処理の例を説明する。
図13~
図18は、第1のデータ処理部102a及び第2のデータ処理部102bの詳細なデータ処理を説明するための図である。まず、第1のデータ処理部102aの処理を説明する。
【0059】
図13は、メモリ上のデータ構造の一例を示す図である。メモリ上に
図13に示すような、データソース(DataSource)とデータグループ(DataGroup)を形成する。データソース(DataSource)は、
図13(A)に示すように、プロパティ名と型で構成されており、プロパティ名「データソースGuid(Glovally Unique Identifier)」は、型「Guid値」、プロパティ名「データソース名」は型「文字」、プロパティ名「項目名一覧」は、型「文字型の配列」、プロパティ名「データグループ一覧」は型「データグループの配列」となっている。プロパティ名「項目名一覧」、型「文字型の配列」は、シリアライズ処理の対象となっており、データソーステーブルに更新される。
【0060】
データグループ(DataGroup)は、
図13(B)に示すように、プロパティ名と型で構成されており、プロパティ名「グループSEQ」は型「数値」、プロパティ名「グループID」は型「文字」、プロパティ名「レコード数」は型「数値」、プロパティ名「値情報」は型「文字型の2次元配列(項目数×レコード数)」となっている。プロパティ名「値情報」、型「文字型の2次元配列(項目数×レコード数)」は、シリアライズ処理の対象となっており、データグループテーブルに更新される。
【0061】
図14は、テーブル(データベース)106a上のテーブル構造の一例を示す図である。テーブル106aには、
図14に示すような、データソーステーブルとデータグループテーブルが格納される。データソーステーブルは、
図14(A)に示すように、項目名と型で規定されており、項目名「データソースGuid」は型「Guid値」、項目名「データソース名」は型「文字」、項目名「データソース構造情報」は型「バイナリ」となっている。
【0062】
データグループテーブルは、
図14(B)に示すように、項目名と型で規定されており、項目名「データソースGuid」は型「Guid値」、項目名「データグループSEQ」は型「数値」、項目名「データグループID」は型「文字」、項目名「データレコード数」は型「数値」、項目名「データグループ値情報」は型「バイナリ」となっている。
【0063】
図15~
図17は、データグループ作成処理を説明するための図である。
図15(A)は、読込処理で受け入れた受入データの受入フォーマット例を示す図である。受入データは、伝票番号、受注日、金額のデータを含んでおり、1行目は、伝票番号「#10001」、受注日「2019/8/2」、金額「100」、2行目は、伝票番号「#10001」、受注日「2019/8/2」、金額「200」、3行目は、伝票番号「#10001」受注日「2019/8/2」金額「300」、4行目は、伝票番号「#10002」受注日「2019/8/2」、金額「1100」、5行目は、伝票番号「#10002」、受注日「2019/8/2」、金額「1200」となっている。
【0064】
図15(B)において、各データグループのレコード数を計算する。具体的には、キーである「伝票番号」のセル(一意な情報のセル)から縦方向に探索する。
図15(B)に示すように、データグループ(内部クラス)は、伝票番号「#10001」については、グループSEQ「1」、グループID「#10001」、レコード数「3」となり、伝票番号「#10002」については、グループSEQ「2」、グループID「#10002」、レコード数「2」となる。
【0065】
図16において、データグループを作成する。「伝票番号」セル(一意な情報のセル)から右方向に探索し、データグループレコード数分だけレコードを読み込み、データグループを作成する。データグループは、グループSEQ、グループID、レコード数、項目名、値情報で構成される。
図16(B)は、データグループの元データであり、
図15(A)と同様である。
【0066】
図16に示す例では、グループSEQ「1」については、値情報は、
図16(C)に示すようになり、グループSEQ「2」については、値情報は、
図16(D)に示すようになる。
図17は、データグループ作成の他の例を示している。
【0067】
図18は、データ変換(シリアライズ処理)を説明するための図である。データソーステーブルと、データグループテーブルに更新する。対象のオブジェクトをバイト配列にシリアライズする。
図18(A)に示すように、データグループの「項目名」と「値情報」をシリアライズしてバイト配列とする。シリアライズした後、データグループをデータソーステーブルとデータグループテーブルに格納する。
【0068】
図18(B)に示すように、データソーステーブルを更新する。データソーステーブルは、項目名「データソースGuid」は更新元「データソースクラス.データソースGuid」、項目名「データソース名」は更新元「データソースクラス.データソース名」、項目名「データソース構造情報」は更新元「データソースクラス.項目名一覧」となる。
【0069】
図18(C)に示すように、データグループテーブルを更新する。データグループテーブルは、項目名「データソースGuid」は更新元「データソースクラス.データソースGuid」、項目名「データグループSEQ」は更新元「データグループクラス.グループSEQ」、項目名「データグループID」は更新元「データグループクラス.グループID」、項目名「データレコード数」は更新元「データグループクラス.レコード数」、項目名「データグループ値情報」は更新元「データグループクラス.値情報」となる。
【0070】
第2のデータ処理部102bは、データソースGuid及びデータグループSEQをキー情報として、テーブル106aのデータソーステーブル及びデータグループテーブルからデータグループを取得し、バイト配列をデシリアライズしてデータグループのオブジェクトを生成する。
【0071】
以上説明したように、本実施の形態によれば、データソースからデータを読み込み、読み込んだデータをグループ化してデータグループを生成し、生成したデータグループを所定の形式にデータ変換して、キー情報を付加してデータ変換したデータグループをテーブル106aに格納する第1のデータ処理部102aと、第1のデータ処理部102aからキー情報を受け取り、前記テーブルから受け取ったキー情報に対応するデータグループを取得して復元する第2のデータ処理部102bとを備えているので、様々な粒度や形式のデータをアプリケーション間で受け渡すことが可能となる。これにより、データの特性に応じた個別実装が不要になり、開発工数の削減、品質の向上につながる。
【0072】
より具体的には、(1)上述した課題1の「アプリケーション間でのデータの受け渡しの課題」について、受け渡す情報を減らすことで解決した。
【0073】
(2)上述した課題2の「入力データのフォーマット毎に、データベース上のテーブルを用意する必要があるという課題」については、共通の形にデータを変換することで、同一テーブルで管理することができるようになった。
【0074】
(3)上述した課題3の「複数の明細、複数の入力値の管理が難しいという課題」については、1伝票を一つのまとまりとして管理することで、複数の明細、複数の入力値を管理できるようになった。
【0075】
[4.他の実施形態]
本発明は、上述した実施の形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0076】
例えば、実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0077】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0078】
また、データ処理装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0079】
例えば、データ処理装置100が備える処理機能、特に制御部102にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み込み可能な記録媒体に記録されており、必要に応じてデータ処理装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0080】
また、このコンピュータプログラムは、データ処理装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0081】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み込み可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、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等の任意の「可搬用の物理媒体」を含むものとする。
【0082】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み込み手順ならびに読み込み後のインストール手順等については、周知の構成や手順を用いることができる。
【0083】
記憶部106に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【0084】
また、データ処理装置100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、データ処理装置100は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
【0085】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【符号の説明】
【0086】
100 データ処理装置
102 制御部
102a 第1のデータ処理部
102b 第2のデータ処理部
104 通信インターフェース部
106 記憶部
106a テーブル
108 入出力インターフェース部
112 入力装置
114 出力装置
200 サーバ
300 ネットワーク