(57)【要約】【課題】業務支援システムにおいて、ロジックを記述する部分に対し、ユーザが、柔軟に条件を設定できる。【解決手段】制御装置１０は、表計算ソフトが起動していなければ新たに起動し、また、表計算ソフトが起動済みであれば該起動済みの表計算ソフトを終了しないように保持した上で二つ目の表計算ソフトを起動する表計算プロセス追加起動部１６２及び表計算プロセス保持部１６３と、表計算ソフトの計算シートであって、ビジネスロジックが計算シート上のセル間演算として設定される計算シートの、情報記入箇所に、情報取得元へのアクセスによって取得された情報を記入するデータ記入部１６８と、計算シート上で、セル間演算として表現されたビジネスロジックによって、情報記入箇所に記入された情報に対する判断結果が示されると、計算シート上の判断結果を取得して、上位システムに通知する結果取得部１６９と、を有する。【選択図】図１
2019159879.tif 000002
【特許請求の範囲】
【請求項１】
表計算ソフトの起動を確認する表計算確認部と、
表計算ソフトが起動していなければ新たに起動し、また、表計算ソフトが起動済みであれば該起動済みの表計算ソフトを終了しないように保持した上で二つ目の表計算ソフトを起動する表計算プロセス保持部と、
情報取得元にアクセスして情報を取得する取得部と、
表計算ソフトの計算シートであって、ビジネスロジックが計算シート上のセル間演算として設定される計算シートの、情報記入箇所に、前記取得部が取得した情報を記入する記入部と、
前記計算シート上で、セル間演算として表現された前記ビジネスロジックによって、前記情報記入箇所に記入された情報に対する判断結果が示されると、前記計算シート上の判断結果を取得して、取得した判断結果を上位システムに通知する結果取得部と、
を有することを特徴とする制御装置。
【請求項２】
前記表計算ソフトの計算シートに対し、前記計算シートのセル内の記載内容の設定に関する指示情報の入力を受け付ける入力部と、
前記入力部が受け付けた指示情報に基づいて前記計算シート上のセル内の記載内容を設定する入力制御部と、
をさらに有することを特徴とする請求項１に記載の制御装置。
【請求項３】
計算シートは、情報取得元を示す情報が記述された第１のセルと、該情報取得元から取得された情報が記入される第２のセルと、前記情報取得元から取得された情報を用いるワークシート関数によって判断方法が記述されて、相対位置もしくは背景色で判断結果であることを示す第３のセルと、を含み、
前記取得部は、前記第１のセルに記述された情報取得元にアクセスして情報を取得し、
前記記入部は、前記第２のセルに、前記取得部が取得した情報を記入し、
前記結果取得部は、前記第３のセルに示された判断結果を取得することを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記第３のセルは、関連項目ごとに、複数ステップで実施される判断方法がワークシート関数によって記述されて各関連項目の判断結果を示す第４のセルと、各第４のセルが示す判断結果を基に最終判断結果を判断する判断方法がワークシート関数によって記述され、前記最終判断結果を示す第５のセルと、を含み、
前記結果取得部は、前記第５のセルから前記最終判断結果を取得することを特徴とする請求項３に記載の制御装置。
【請求項５】
制御装置が実行する制御方法であって、
表計算ソフトの起動を確認する工程と、
表計算ソフトが起動していなければ新たに起動し、また、表計算ソフトが起動済みであれば該起動済みの表計算ソフトを終了しないよう維持した上で二つめの表計算ソフトを起動する工程と、
情報元にアクセスして情報を取得する工程と、
表計算ソフトの計算シートであって、ビジネスロジックが計算シート上のセル間演算として設定される計算シートの、情報記入箇所に、前記取得する工程において取得した情報を記入する工程と、
前記計算シート上で、セル間演算として表現された前記ビジネスロジックによって、前記情報記入箇所に記入された情報に対する判断結果が示されると、前記計算シート上の判断結果を取得する工程と、
前記判断結果を上位システムに通知する工程と、
を含んだことを特徴とする制御方法。
【請求項６】
コンピュータを、請求項１〜４のいずれか一つに記載の制御装置として機能さ
せるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
業務効率化のために業務支援システムが求められているが、処理対象とする業務の変化は早く、システムをどのように業務変化に追随させるかについては、長らく問題となっている。
【０００３】
ここで、処理内容のうち、業務内容ごとに必要とされる固有の条件判断機能は、ビジネスルールと呼ばれ、その実装方法について様々な取り組みが行われている。例えば、初期には、ビジネスルールは、プログラムとして記述されていた。ただし、この方法ではルール変更のたびにシステム全体に影響する変更が必要となる。
【０００４】
このため、ビジネスルールだけを取り出して管理するビジネスルール管理システム（Business  Rules  Management  System：ＢＲＭＳ）が開発された。このＢＲＭＳでは、条件判断機能をプログラム本体から分離することによって、開発工数の圧縮や要件の変更を容易にしている。なかでも具体的なパラメータ（境界値など）をテーブルとしてまとめることで、業務上頻繁に変更される部分は専門家でなくとも変更できるようになっている。
【０００５】
ここで、ＢＲＭＳとして、パラメータの供給元やパラメータ設定エディタとしてサードパーティ製の表計算ソフトを使用する方法がある。例えば、ビジネスルールのパラメータテーブルとして、Ｅｘｃｅｌ（登録商標）などの表計算ソフトのドキュメントを使用する方法がある。この方法によれば、ユーザが使い慣れたＥｘｃｅｌ等のツールを使って、ユーザ自身が編集や修正作業を実行することが可能であるという利点がある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】JBoss  Rules、［online］、［平成３０年２月２７日検索］、インターネット＜ＵＲＬ：https://access.redhat.com/documentation/ja-JP/JBoss_Enterprise_SOA_Platform/5/html/JBoss_Rules_5_Reference_Guide/chap-authoring.html＞
【非特許文献２】ILOG  JRules  ダイナミック・ドメイン機能の実装サンプル、［online］、［平成３０年２月２７日検索］、インターネット＜ＵＲＬ：https://www.ibm.com/developerworks/jp/websphere/library/ilog/brms_dyndomain_sample/＞
【非特許文献３】IBM  WebSphere  ILOG  JRules、［online］、［平成３０年２月２７日検索］、インターネット＜ＵＲＬ：https://www.ibm.com/support/knowledgecenter/ja/SSZJPZ_11.3.0/com.ibm.swg.im.iis.conn.jrules.use.doc/topics/ilog_jrules_container.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、これらの方法は、ＢＲＭＳが提供する条件判断エンジンにパラメータを与える方法を改善するだけであり、これらのパラメータにどのような意味を持たせるか、などを設定するためには、専門的知識が必要であった。すなわち、ロジックを記述する部分は、開発言語をはじめとした専門的知識が要求され、一般のユーザが、ロジック記述部分を作成することや、条件設定を実行することは、困難であった。
【０００８】
本発明は、上記に鑑みてなされたものであって、業務支援システムにおいて、ロジックを記述する部分に対し、ユーザが、柔軟に条件を設定できる制御装置、制御方法及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明に係る制御装置は、表計算ソフトの起動を確認する表計算確認部と、表計算ソフトが起動していなければ新たに起動し、また、表計算ソフトが起動済みであれば該起動済みの表計算ソフトを終了しないように保持した上で二つ目の表計算ソフトを起動する表計算プロセス保持部と、情報取得元にアクセスして情報を取得する取得部と、表計算ソフトの計算シートであって、ビジネスロジックが計算シート上のセル間演算として設定される計算シートの、情報記入箇所に、取得部が取得した情報を記入する記入部と、計算シート上で、セル間演算として表現されたビジネスロジックによって、情報記入箇所に記入された情報に対する判断結果が示されると、計算シート上の判断結果を取得して、取得した判断結果を上位システムに通知する結果取得部と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、業務支援システムにおいて、ロジックを記述する部分に対し、ユーザが、柔軟に条件を設定できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態における制御システムの構成の一例を示す図である。
【図２】図２は、図１に示す制御装置の動作イメージを示す図である。
【図３】図３は、図１に示す制御装置で使用されるＥｘｃｅｌの計算シートへの記述例を説明する図である。
【図４】図４は、セル間演算が定義されたセルの記述例を示す図である。
【図５】図５は、図１に示す制御装置における、Ｅｘｃｌｅのシステムへの組み込みを説明する図である。
【図６】図６は、図１に示す制御装置による制御処理の処理手順を示すフローチャートである。
【図７】図７は、従来の技術と本実施の形態との差を説明する図である。
【図８】図８は、従来のILOG  JRulesにおけるルール呼出及びルール実行時に使用されるデータを示す図である。
【図９】図９は、従来のJBoss  Rulesにおけるルール呼出及びルール実行時に使用されるデータを示す図である。
【図１０】図１０は、プログラムが実行されることにより、制御装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１３】
［実施の形態］
本発明の実施の形態について説明する。図１は、実施の形態における制御システムの構成の一例を示す図である。本実施の形態に係る制御システムでは、業務支援システムにおいて入力されたデータに対して条件判断を行う。この際、本実施の形態では、ビジネスロジックを記述する部分に対し、ユーザ自身が、条件を柔軟に設定することができるようにした。
【００１４】
図１に示すように、実施の形態に係る制御システム１は、データベース２、Ｗｅｂサーバ３、上位システム４及び制御装置１０を有する。制御装置１０は、データベース２、Ｗｅｂサーバ３及び上位システム４と、ネットワーク等によって接続する。
【００１５】
データベース（ＤＢ）２は、各種情報を記憶する。ＤＢ２は、制御装置１０によるアクセスに応じて、記憶する情報を読み出し、制御装置１０に出力する。Ｗｅｂサーバ３は、ネットワークを介して制御装置１０と接続し、制御装置１０によるアクセスに応じて、各種情報を提供する。上位システム４は、制御装置１０の上位に位置し、制御装置１０に入力されたデータに対する条件判断結果を取得する。上位システム４では、取得した条件判断を収集し、制御装置１０を管理する。
【００１６】
制御装置１０は、業務支援システムにおいて、ビジネスルールを取り出し、さらに、プログラム本体からビジネスロジック上の条件判断機能を切り離すことによって、ユーザが、アプリケーションから独立させてビジネスロジックを作成し、条件判断を設定できるようにした制御装置である。
【００１７】
制御装置１０では、例えば、ビジネスルールのパラメータテーブルとして、Ｅｘｃｅｌ（登録商標）などの表計算ソフトのドキュメントを使用することに加え、計算ソフト自体を条件判断エンジンの一部として利用する。これによって、制御装置１０は、条件判断機能もサードパーティ製の表計算ソフトの機能上で実現する。この結果、制御装置１０によれば、ユーザに開放された領域が広がり、ユーザからみてより柔軟な条件設定が可能となる。
【００１８】
次に、制御装置１０の具体的な構成について説明する。図１に示すように、制御装置１０は、入力装置１１、表示装置１２、記憶装置１３が、制御装置１０本体に接続される。そして、制御装置１０本体は、ＯＳ（Operating  System）１４が実行され、該ＯＳ１４の処理にともない表計算ソフト１５が起動される。また、制御装置１０本体は、制御部１６を有する。なお、制御装置１０は、ＮＩＣ（Network  Interface  Card）等を有し、ネットワーク等を介した外部装置との通信も実行する。
【００１９】
入力装置１１は、ユーザによる入力操作に対応して、制御部１６に対する各種指示情報の入力を受け付ける。例えば、入力装置１１は、表計算ソフト１５の計算シートに対し、表計算ソフト１５の計算シートのセル内の記載内容の設定に関する指示情報の入力を受け付ける。入力装置１１は、キーボードやマウス等の入力デバイスを用いて実現される。
【００２０】
表示装置１２は、液晶ディスプレイなどによって実現される。具体的には、表示装置１２は、アプリケーション画面等を表示する。
【００２１】
記憶装置１３は、例えば、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。記憶装置１３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶装置１３は、例えば、業務支援に関する各種情報を含むファイルを記憶する。
【００２２】
表計算ソフト１５は、ＯＳ１４上で動作する表計算ソフトウェアである。以降では、表計算ソフト１５としてＥｘｃｅｌを用いた例を説明する。表計算ソフト１５の計算シートには、ビジネスロジックが計算シート上のセル間演算として設定される。具体的には、計算シートの情報記入箇所に情報が記入されると、セル間演算として表現されたビジネスロジックによって、情報記入箇所に記入された情報に対する条件判断結果が示されるように、各セルの演算方法が設定されている。すなわち、表計算ソフト１５は、条件判断諸機能の一部として統合され、判断処理は、表計算ソフト１５に設定されたセル間演算機能によって行われる。
【００２３】
制御部１６は、制御装置１０全体を制御する。制御部１６は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１６は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１６は、各種のプログラムが動作することにより各種の処理部として機能する。
【００２４】
制御部１６は、入力制御部１６０、表計算プロセス数集計部１６１（表計算確認部）、表計算プロセス追加起動部１６２（表計算プロセス保持部）、表計算プロセス保持部１６３（表計算プロセス保持部）、ＤＢアクセス部１６４（取得部）、ＧＵＩ（Graphical  User  Interface）データアクセス部１６５（取得部）、ファイルアクセス部１６６（取得部）、サーバアクセス部１６７（取得部）、データ記入部１６８（記入部）、及び、結果取得部１６９を有する。
【００２５】
入力制御部１６０は、ユーザの操作に応じて入力装置１１が受け付けた指示情報に基づいて、計算シート上のセル内の記載内容を設定する。例えば、ユーザは、入力装置１１を操作し、情報取得元となるアクセス先の変更を行う。これに応じて、入力装置１１が計算シートの情報取得元の変更を指示する情報を受け付けると、入力制御部１６０は、計算シートのセルのうち、指示対象のセル内の情報取得元の記載内容を、指示情報にしたがって変更する。また、例えば、ユーザは、入力装置１１を操作し、セル間演算の一部について変更を行う。これに応じて、入力装置１１が計算シートの、一部のセル間演算の変更を指示する情報を受け付けると、入力制御部１６０は、計算シートのうち、対象となるセルのセル間演算を、指示情報にしたがって変更する。
【００２６】
表計算プロセス数集計部１６１は、表計算ソフト１５の起動の有無を確認する。表計算プロセス数集計部１６１は、起動中の表計算ソフト１５の数を集計する。
【００２７】
表計算プロセス追加起動部１６２は、表計算ソフト１５が起動していないと表計算プロセス数集計部１６１が判断した場合、表計算ソフト１５を起動する。表計算プロセス追加起動部１６２は、表計算ソフト１５が起動していると表計算プロセス数集計部１６１が判断した場合、二つ目の表計算ソフト１５を追加起動する。
【００２８】
表計算プロセス保持部１６３は、表計算ソフト１５が起動済みであれば、該起動済みの表計算ソフト１５を終了しないよう保持する。具体的には、表計算プロセス保持部１６３は、起動中のプロセスのＣＯＭ（Component  Object  Model）ＡＰＩ（Application  Programming  Interface）に接続して、ユーザが全ての文書を閉じた場合であっても表計算ソフト１５が終了しないように保持する。
【００２９】
ＤＢアクセス部１６４は、ＤＢ２にアクセスして情報を取得する。ＧＵＩデータアクセス部１６５は、表示装置１２のアプリケーション画面におけるＧＵＩを介して、情報を取得する。ファイルアクセス部１６６は、記憶装置１３に記憶されるファイルにアクセスして情報を取得する。サーバアクセス部１６７は、Ｗｅｂサーバ３にアクセスして情報を取得する。ＤＢアクセス部１６４、ＧＵＩデータアクセス部１６５、ファイルアクセス部１６６及びサーバアクセス部１６７は、表計算ソフト１５の情報取得元欄に記載の情報元の外部装置等にアクセスして、情報取得元欄で設定された情報を取得する。
【００３０】
データ記入部１６８は、表計算ソフト１５の計算シートの情報記入箇所に、ＤＢアクセス部１６４、ＧＵＩデータアクセス部１６５、ファイルアクセス部１６６及びサーバアクセス部１６７が取得した情報を記入する。なお、前述したように、計算シートには、ビジネスロジックが計算シート上のセル間演算として設定される。
【００３１】
結果取得部１６９は、計算シート上で、セル間演算として表現されたビジネスロジックによって、情報記入箇所に記入された情報に対する判断結果が示されると、計算シート上の判断結果を取得して、取得した判断結果を上位システム４に通知する。
【００３２】
［制御装置の動作処理の説明］
次に、制御装置１０の動作処理について概略を説明する。図２は、図１に示す制御装置１０の動作イメージを示す図である。
【００３３】
図２に示すように、制御装置１０では、ルール呼出側Ｕｃと、ルール実行側Ｕｄとに分かれて処理を実行することによって、条件判断の動作処理が実行される。ルール呼出側Ｕｃでは、実行するルールの指定、入力パラメータの設定、ルールの呼び出し、実行結果の取得を行う。ルール実行側Ｕｄは、Ｅｘｃｅｌの計算シートを用いてルールの実行を行う。
【００３４】
ルール呼出側Ｕｃが、ルール実行側ＵｄのＥｘｃｅｌの計算シートに、判断対象のデータセット「Ａ」，「Ｂ」，「Ｃ」を入力する（矢印Ｙ１参照）。これに応じて、ルール実行側Ｕｄでは、Ｅｘｃｅｌの計算シート中のセルＲａ，Ｒｂ，Ｒｃに、各データ「Ａ」，「Ｂ」，「Ｃ」が記入される。
【００３５】
ここで、ルール実行側ＵｄのＥｘｃｅｌの計算シートには、ワークシート関数で判断方法が記述されている（図２の（１）参照）。具体的には、セルＩａ，Ｉｂ，Ｉｃに記載されたワークシート関数のように、ビジネスロジックが計算シート上のセル間演算として設定されている。このワークシート関数の記述は、独自の言語で記述された従来のビジネスロジックに相当する。
【００３６】
そして、ルール実行側ＵｄのＥｘｃｅｌでは、関連項目ごとに、複数ステップで、判断結果を表現する（図２の（２）参照）。これは、既存の技術では、判断処理を示すフローチャートに相当する。
【００３７】
例えば、複数ステップのうち第１ステップとして、セルＩａには、セルＩａに記述された判断方法によって、データＡに対する判断「Ｔｒｕｅ」が導出される。セルＩｂには、セルＩｂに記述された判断方法によって、データＢに対する判断「Ｔｒｕｅ」が導出される。また、セルＩｃには、セルＩｃに記述された判断方法によって、データＣに対する判断「Ｔｒｕｅ」が導出される。
【００３８】
続いて、セルＩａの判断「Ｔｒｕｅ」及びセルＩｂの判断「Ｔｒｕｅ」を基に、第２ステップでは、判断「Ｔｒｕｅ」が導出される。そして、第３ステップにおいて、第２ステップの判断「Ｔｒｕｅ」及びセルＩｃの判断「Ｔｒｕｅ」を基に、最終的な判断「Ｔｒｕｅ」が導出される。
【００３９】
そして、ルール実行側ＵｄのＥｘｃｅｌでは、相対位置や背景色で結果セルを表現する（図２の（３）参照）。例えば、ルール実行側ＵｄのＥｘｃｅｌでは、セルＩｓが最終的な判断結果を示すセルである場合、このセルＩｓの位置を最下行にすることで、最終結果を示すセルであることを表現する。もしくはセルＩｓの背景色をあらかじめ指定した最終結果を意味する背景色にすることで最終結果を示すセルであることを表現する。これによりルール呼出側Ｕｃがどの様にしてルール実行側Ｕｄから判断結果を受け取るのかを別途テキスト表現で指定する必要がなくなる。
【００４０】
そして、ルール呼出側Ｕｃは、最終的な判断結果を示すセルＩｓから、このセルＩｓに示された最終的な判断結果（例えば「Ｔｒｕｅ」）を取得して（矢印Ｙ２参照）、上位システム４に通知する。
【００４１】
制御装置１０では、入力パラメータの設定に使用されるパラメータテーブルは、Ｅｘｃｅｌによって作成される。そして、制御装置１０では、ルールの実行を示すビジネスロジックは、Ｅｘｃｅｌのワークシート関数で記述される。さらに、外部Ｉ／Ｆ定義方法は、Ｅｘｃｅｌのセル属性（値、位置、色）によって示される。
【００４２】
［記述例］
次に、制御装置１０で使用されるＥｘｃｅｌの計算シートへの記述例を説明する。図３は、図１に示す制御装置１０で使用されるＥｘｃｅｌの計算シートへの記述例を説明する図である。
【００４３】
図３に示すＥｘｃｅｌの計算シートＴ１に示すように、列Ａ〜Ｇは、情報取得元を示す情報が記述されたセル（第１のセル）を含む列である。また、列Ｈは、情報取得元から取得された情報が記入されるセル（第２のセル）を含む列である。
【００４４】
そして、列Ｉは、情報取得元から取得された情報を用いるワークシート関数によって判断方法が記述されて、相対位置及び背景色で判断結果を示す、セルＩ４〜Ｉ６４（第４のセル）とセルＩ６５（第５のセル）とを含む列（第３のセル）である。
【００４５】
セルＩ４〜Ｉ６４は、情報取得元から取得された情報を用いるワークシート関数によって判断方法が記述された、条件判断の中間結果を示すセルである。セルＩ４〜Ｉ６４は、関連項目ごとに、複数ステップで実施される判断方法がワークシート関数によって記述されて各関連項目の判断結果を示す。セルＩ６５は、各セルＩ４〜Ｉ６４が示す判断結果を基に最終判断結果を判断する判断方法がワークシート関数によって記述され、最終判断結果が示されるセルである。例えば、ルール実行側ＵｄのＥｘｃｅｌでは、最終判断結果が示されるセルＩ６５は、中間結果を示すセルＩ４〜Ｉ６４と同列であってセルＩ６４の次のセルに位置するよう設定されている。また、各セルＩ４〜Ｉ６５では、背景色が、例えば、橙色である場合には「Ｔｒｕｅ」を示し、黄色である場合には「Ｆａｌｓｅ」を示す。
【００４６】
列Ａ〜Ｇは、入力装置１１を介したユーザの操作によって、記述内容の設定が変更可能である。ユーザは、列Ａ〜Ｇの、情報取得元を示す情報を設定変更可能である。図３の計算シートＴ１は、情報取得元として別のＥｘｃｅｌ帳票を指定した例である。ユーザが、入力装置１１及び入力制御部１６０を介して、情報取得元のセルにシート名やセル座標などを指定する（列Ａ〜Ｇ）と、ファイルアクセス部１６６が、指定された情報取得元に格納されている値を取得する。そして、データ記入部１６８は、ファイルアクセス部１６６が取得した値を、計算シート上の列Ｈの対応セルにコピーする。なお、図３の（１）〜（６）に記載のコメントは、計算シートＴ１への情報入力の補助のために表示されるものである。
【００４７】
制御装置１０では、情報取得元としては、Ｅｘｃｌｅ帳票以外にも、ＤＢ２、インターネット上のＷｅｂサービス（Ｗｅｂサーバ３）、同時使用している別アプリケーションの表示装置１２における画面表示を指定することもできる。この場合、ＤＢアクセス部１６４、ＧＵＩデータアクセス部１６５及びサーバアクセス部１６７が、指定された取得元から、データを取得する。
【００４８】
言い換えると、ファイルアクセス部１６６、ＤＢアクセス部１６４、ＧＵＩデータアクセス部１６５及びサーバアクセス部１６７は、第１のセルに記述された情報取得元にアクセスして情報を取得する。そして、データ記入部１６８は、第２のセルに、ファイルアクセス部１６６、ＤＢアクセス部１６４、ＧＵＩデータアクセス部１６５及びサーバアクセス部１６７が取得した情報を記入する。
【００４９】
このように、制御装置１０は、条件判断に関与する全ての情報を取得し、１枚の計算シート上に集約する機能を有する。
【００５０】
ここで、制御装置１０では、判断に関与する情報について、その取得方法を判断ロジックと分離し、入力情報の整合性を判断する判断ロジックを表計算ソフト１５におけるセル定義（セル間演算）として記述する。計算シートＴ１では、セルＩ４〜Ｉ６５に記述されている。
【００５１】
例えば、入力情報の満たすべき条件は、以下である。
・セルＡの値が特定の範囲に収まっている。
・セルＡの値とセルＢの値が特定の関係を満たしている。
・セルＡとセルＢから導出した値がセルＣの値と等しい。
【００５２】
計算シートでは、このような形式でセルに条件を表記可能であり、セル間演算の結果として、「Ｔｒｕｅ」または「Ｆａｌｓｅ」の値を返す式として記述される。
【００５３】
図４は、セル間演算が定義されたセルの記述例を示す図である。図４のセルＰｅの記述は、計算シートＴ１のセルＨ５０（詳細情報シートの申請種別）が空欄である場合、空欄でない場合には計算シートＴ１のセルＨ７（まとめシートの申請種別）と一致していれば「Ｔｒｕｅ」であるという意味である。
【００５４】
各セルＩ４〜Ｉ６５には、それぞれの関連項目に応じて、複数ステップで実施される判断方法がワークシート関数によって記述されている。このうち、セルＩ４〜Ｉ６４は、条件判断の中間結果であり、セルＩ６５は、最終判断結果を示すセルである。このため、結果取得部１６９は、セルＩ６４から最終判断結果「Ｔｒｕｅ」を取得し、取得した判断結果「Ｔｒｕｅ」を列Ｂ〜Ｇに記入されたデータセットに応じた判断結果として、上位システム４に通知する。
【００５５】
［Ｅｘｃｌｅのシステムへの組み込み］
次に、制御装置１０における、Ｅｘｃｌｅのシステムへの組み込みについて説明する。図５は、図１に示す制御装置１０における、Ｅｘｃｌｅのシステムへの組み込みを説明する図である。
【００５６】
ここで、ＧＵＩベースのツールを自動処理に組み込む場合、自動操作とユーザによる操作との衝突が問題になる。そこで、自動処理を安定させるためには、専用端末を用意する、或いは、処理中はユーザがツールを操作できないようにするといった運用が必要だった。
【００５７】
これに対し、本実施の形態では、ユーザは通常通りツールを操作していても、下記の手法により平行して安定した自動処理を行わせることができるようにして、処理機構の一部としてＥｘｃｅｌをシステムに組み込むことを可能にした。
【００５８】
まず、Ｅｘｃｅｌは、複数同時に起動することができるが、最初に起動されたＥｘｃｅｌの計算シート１５−１はＯＳ１４にＤＤＥサーバとして登録される（図５の（１）参照）。これは、ユーザがＥｘｃｅｌ文書をダブルクリックしたときに使用されるＥｘｃｅｌを意味する。
【００５９】
２番目以降に表計算プロセス追加起動部１６２が起動した計算シート１５−２は、このＥｘｃｅｌを起動したプロセスからのみ制御可能なので、このＥｘｃｅｌを自動処理専用にすることでユーザ操作を妨げることなく平行処理が可能となる。そこで制御装置１０では、表計算ソフト１５が起動していない場合には、表計算プロセス追加起動部１６２が表計算ソフト１５を起動する。また、制御装置１０では、表計算ソフト１５−１が起動している場合、表計算プロセス追加起動部１６２が２番目の表計算ソフト１５−２を追加起動する（図５の（２）参照）。
【００６０】
そして、最初に起動したＥｘｃｅｌが終了した場合、ＤＤＥサーバとしての登録が一度削除され、現在起動中のＥｘｃｅｌが代わりに登録される。この状態が発生すると自動処理に使用していたプロセスがユーザ操作可能となってしまい正しい自動処理ができなくなる。
【００６１】
これを防ぐため、制御装置１０では、ユーザがすべてのＥｘｃｅｌ文書を閉じた場合でも最初のＥｘｃｅｌが終了しないようにしている。具体的には、表計算プロセス保持部１６３は、表計算ソフト１５が起動済みであれば、該起動済みの表計算ソフト１５を終了しないよう保持する。例えば、表計算プロセス保持部１６３は、起動中のプロセスのＣＯＭ  ＡＰＩに接続する。このように、表計算プロセス保持部１６３は、表計算ソフト１５への接続を保持することによって、ユーザが全ての文書を閉じた場合であっても、起動済みの表計算ソフトが使用中と認識されるようにして、表計算ソフト１５が終了しないように保持する。
【００６２】
［制御処理の処理手順］
次に、業務支援システムを構成する制御装置１０による制御処理の処理手順について説明する。図６は、図１に示す制御装置１０による制御処理の処理手順を示すフローチャートである。
【００６３】
図６に示すように、制御装置１０では、表計算プロセス数集計部１６１は、表計算ソフト１５の起動の有無を確認し、起動中の表計算ソフト１５はあるか否かを判定する（ステップＳ１）。
【００６４】
表計算プロセス追加起動部１６２は、起動中の表計算ソフト１５はないと表計算プロセス数集計部１６１が判断した場合（ステップＳ１：Ｎｏ）、表計算ソフト１５を起動する（ステップＳ２）。そして、表計算プロセス保持部１６３は、起動したプロセスのＣＯＭ  ＡＰＩに接続して（ステップＳ３）、起動した表計算ソフト１５を終了しないよう保持する。
【００６５】
起動中の表計算ソフト１５はあると表計算プロセス数集計部１６１が判断した場合（ステップＳ１：Ｙｅｓ）、表計算プロセス保持部１６３は、起動中のプロセスのＣＯＭ  ＡＰＩに接続して（ステップＳ４）、起動した表計算ソフト１５を終了しないよう保持する。
【００６６】
表計算プロセス追加起動部１６２は、二つ目の表計算ソフト１５を追加起動する（ステップＳ５）。そして、制御装置１０では、最後に起動したプロセスで、ビジネスロジック判断用の計算シートを開く（ステップＳ６）。
【００６７】
ファイルアクセス部１６６、ＤＢアクセス部１６４、ＧＵＩデータアクセス部１６５及びサーバアクセス部１６７は、計算シートの第１のセルから情報取得元を示す情報を取得する（ステップＳ７）。そして、ファイルアクセス部１６６、ＤＢアクセス部１６４、ＧＵＩデータアクセス部１６５及びサーバアクセス部１６７は、各情報取得元から情報を取得する。そして、データ記入部１６８は、計算シートの第２のセルに、ファイルアクセス部１６６、ＤＢアクセス部１６４、ＧＵＩデータアクセス部１６５及びサーバアクセス部１６７が取得した情報を記入する（ステップＳ８）。
【００６８】
データ記入部１６８は、情報取得が完了したか否かを判定する（ステップＳ９）。情報取得が完了していないとデータ記入部１６８が判定した場合（ステップＳ９：Ｎｏ）、制御部１６は、ステップＳ７に戻り、情報取得を継続する。
【００６９】
一方、情報取得が完了したとデータ記入部１６８が判定した場合（ステップＳ９：Ｙｅｓ）、セル間演算によって計算シートの第３のセルに判断結果が示される（ステップＳ１０）。結果取得部１６９は、計算シートから判断結果を取得して（ステップＳ１１）、取得した判断結果を上位システム４に通知する（ステップＳ１２）。
【００７０】
［実施の形態の効果］
ここで、従来の業務支援システムの条件判断機能に関して説明する。従来においても、ビジネスルール管理システム（ＢＲＭＳ）は条件判断機能をプログラム本体から分離することで、開発工数の圧縮や要件の変更を容易にしている。
【００７１】
図７は、従来の技術と本実施の形態との差を説明する図である。図７の（ａ）は、ルール呼出側とルール実行側とで行われる処理を説明する図であり、図７の（ｂ）は、各技術において使用されるパラメータテーブル、ビジネスロジック記述言語及び外部Ｉ／Ｆ定義方法を示す図である。図８は、従来のILOG  JRulesにおけるルール呼出及びルール実行時に使用されるデータを示す図である。図９は、従来のJBoss  Rulesにおけるルール呼出及びルール実行時に使用されるデータを示す図である。
【００７２】
ルール呼出側では、実行するルールの指定（図７の（ａ）の１参照）、入力パラメータの設定（図７の（ａ）の２参照）、ルールの呼び出し（図７の（ａ）の３参照）、実行結果の取得（図７の（ａ）の５参照）が行なわれる。また、ルール実行側では、ルールの実行（図７の（ａ）の４参照）が行われる。
【００７３】
従来のILOG  JRulesでは、ルール呼出側における入力パラメータの設定（図７の（ａ）の２参照）は、ＲＤＢ（ＤＢ２）と管理ツールとを用いたパラメータテーブルによって設定される（例えば、図８の（ａ）のテーブルＴｉ参照）。そして、ILOG  JRulesでは、ルールの呼び出し（図７の（ａ）の３参照）及び実行結果の取得（図７の（ａ）の５参照）は、外部Ｉ／Ｆ定義方法としてＸＭＬが使用される。そして、ILOG  JRulesでは、ルール実行側におけるルールの実行（図７の（ａ）の４参照）において使用されるビジネスロジック記述言語は、独自の記述言語（Business  Action  Language）（図８の（ｃ）参照）とJava（登録商標）（図８の（ｄ）参照）で記述され、図８の（ｂ）に示すフローチャートで処理が進むように設定される。
【００７４】
このILOG  JRulesでは、具体的なパラメータ（境界値など）をテーブルとしてまとめることで、業務上頻繁に変更される部分は専門家でなくとも変更できるようになっている。
【００７５】
また、従来のJBoss  Rulesでは、ルール呼出側における入力パラメータの設定（図７の（ａ）の２参照）は、Ｅｘｃｅｌと、ルールファイル埋込（Ｔｅｘｔ）ファイルを用いたパラメータテーブルによって設定される（例えば、図９の（ａ）のテーブルＴｊ参照）。そして、JBoss  Rulesでは、ルールの呼び出し（図７の（ａ）の３参照）及び実行結果の取得（図７の（ａ）の５参照）は、外部Ｉ／Ｆ定義方法としてJava（登録商標）  Rule  Engine  APIが使用される。そして、JBoss  Rulesでは、ルール実行側におけるルールの実行（図７の（ａ）の４参照）において使用されるビジネスロジック記述言語は、独自の記述言語（宣言型ＤＳＬ（Domain-Specific  Language））（図９の（ｂ）参照）で記述される。
【００７６】
このJBoss  Rulesでは、さらに、パラメータの供給元やパラメータ設定エディタとしてサードパーティ製の表計算ソフトを使用することによって、ユーザが慣れている方法で修正作業を可能としている。
【００７７】
しかしながら、従来の技術では、ロジックを記述する部分は、開発言語をはじめとした専門的知識が要求され、一般のユーザが自力で作成することは困難だった。
【００７８】
これに対し、本実施の形態では、ルール呼出側における入力パラメータの設定（図７の（ａ）の２参照）は、Ｅｘｃｅｌを用いたパラメータテーブルによって設定される。そして、本実施の形態では、ルールの呼び出し（図７の（ａ）の３参照）及び実行結果の取得（図７の（ａ）の５参照）は、外部Ｉ／Ｆ定義方法としてＥｘｃｅｌのセル属性（値、位置、色）が使用される。さらに、本実施の形態では、ルール実行側におけるルールの実行（図７の（ａ）の４参照）において使用されるビジネスロジック記述言語も、Ｅｘｃｅｌのワークシート関数で記述される。
【００７９】
したがって、本実施の形態では、パラメータテーブル、ビジネスロジック記述言語及び外部Ｉ／Ｆ定義方法のいずれも、Ｅｘｃｅｌで実現し、ユーザに開放している。すなわち、本実施の形態では、これまで専門知識が必要だったビジネスロジックも、サードパーティ製の表計算ソフトの機能上で実現し、一般のユーザでも対応が可能になる。このため、本実施の形態によれば、条件判断機能において、ユーザに開放された領域が広がり、ユーザからみてより柔軟な条件設定が可能となる。
【００８０】
このように、本実施の形態の制御装置１０では、業務支援システムにおいて、表計算ソフトを条件判断処理機能の一部として統合することによって、判断処理が、表計算ソフト自体が有するセル間演算機能によって行われる。この結果、制御装置１０によれば、ユーザは、表計算ソフト以外の開発環境や言語等の知識が不要になる。したがって、本実施の形態によれば、業務支援システムにおいて、ロジックを記述する部分に対し、ユーザが、柔軟に条件を設定できるという効果を奏する。
【００８１】
また、本実施の形態によれば、副次的な効果として、入力値の判断結果が表計算処理としてリアルタイムでフィードバックされるため、ユーザは、設定の誤りの発見や誤りの修正を容易に行うことができる。
【００８２】
そして、本実施の形態では、表計算ソフトの起動を確認し、表計算ソフトが起動していなければ新たに起動し、また、表計算ソフトが起動済みであれば該起動済みの表計算ソフトを終了しないように保持した上で二つ目の表計算ソフトを起動する。このように、本実施の形態では、ユーザが全ての文書を閉じた場合であっても、起動済みの表計算ソフトが使用中と認識されるようにして、表計算ソフトが終了しないように保持し、安定した業務支援を可能にする。
【００８３】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。本実施の形態に係る制御装置１０は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００８４】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８５】
［プログラム］
図１０は、プログラムが実行されることにより、制御装置１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００８６】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００８７】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、制御装置１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、制御装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００８８】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００８９】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００９０】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００９１】
１  制御システム
２  データベース（ＤＢ）
３  Ｗｅｂサーバ
４  上位システム
１０  制御装置
１１  入力装置
１２  表示装置
１３  記憶装置
１４  ＯＳ
１５  表計算ソフト
１６  制御部
１６０  入力制御部
１６１  表計算プロセス数集計部
１６２  表計算プロセス追加起動部
１６３  表計算プロセス保持部
１６４  ＤＢアクセス部
１６５  ＧＵＩデータアクセス部
１６６  ファイルアクセス部
１６７  サーバアクセス部
１６８  データ記入部
１６９  結果取得部
【図１】
2019159879.tif 000003
【図２】
2019159879.tif 000004
【図３】
2019159879.tif 000005
【図４】
2019159879.tif 000006
【図５】
2019159879.tif 000007
【図６】
2019159879.tif 000008
【図７】
2019159879.tif 000009
【図８】
2019159879.tif 000010
【図９】
2019159879.tif 000011
【図１０】
2019159879.tif 000012