(57)【要約】【課題】  マルチテナント状況下では、文書生成サーバのマシンリソースの使用が各企業・組織ごとに制限されるので、その制限を超える場合、文書の生成が実行できない。【解決手段】  文書生成サーバはフォーム情報とクエリ情報から生成される文書のページ数を事前に計算し、ページ数が制限値を超えた場合は、文書生成要求を分割する。文書生成サーバは分割された文書生成要求に従って文書を生成し、最終的に各文書を結合してクライアント端末に返す。【選択図】  図１３
2013120508.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末１０１、クラウドプラットフォームサービス１０２および文書生成サーバ１０３がネットワークで接続された文書生成システムであって、以下を含む。
クラウドプラットフォームサービス１０２からデータを取得して文書を作成した場合の文書のページ数を計算し、文書生成要求を制御する制御部５０２。
前記制御部５０２は、フォーム情報管理部５０５からクエリコマンド１００６、フォーム情報１００７を取得し（Ｓ１３０５）、取得した情報をもとにクラウドプラットフォームサービス１０２から取得されるレコードのレコード数を特定し（Ｓ１３０６）、文書生成部６０４で生成される文書のページ数を計算する（Ｓ１３０７）。
前記制御部５０２は、計算したページ数をもとに文書生成要求を分割するかどうかを判定し（Ｓ１３０８）、文書生成要求を分割すると判定した場合、要求を分割する（Ｓ１３０９）。
要求管理部６０５は、要求受信部６０１が受信（Ｓ１３１１）した情報をもとに、要求が分割されているかを判定し（Ｓ１３１２）、分割されたものである場合、生成文書および要求情報を保存する（Ｓ１３１３）。要求管理部６０５は、分割されたすべての要求を処理したかどうかを判定し（Ｓ１３１４）、すべて処理したと判定した場合、分割生成した全ての文書を結合する（Ｓ１３１５）。
【請求項２】
請求項１に記載の文書生成システムであって、さらに以下を備えることを特徴とする。
文書生成部６０４は、フォームファイルにページ番号の出力設定がされているかどうかを判定し（Ｓ１４０１）、設定されていると判定した場合、開始ページ番号を取得し（Ｓ１４０２）、取得した開始ページ番号を使って文書を生成する（Ｓ１４０３）。文書生成が終了したら、文書生成部６０４は、終了ページ番号を保存する（Ｓ１４０４）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウド上に保存されたデータをフォームオーバレイして文書を作成するシステムに関し、特に、クラウドサーバ上での文書生成方法に関する。
【背景技術】
【０００２】
近年、サーバーコンピュータ側で業務データの管理や各種処理を行う形態として、クラウドコンピューティングシステムが普及し始めている。ユーザは、クライアントコンピュータのブラウザからインターネットを介してクラウドサーバコンピュータのＷｅｂページにアクセスし、そのＷｅｂページ上で閲覧したい業務データを表示する。その画面から文書作成指示を行うと、文書生成サーバにリダイレクトされ、文書生成サーバから返される画面にてフォームオーバレイに使用するフォームをユーザが選択する。そして、文書生成サーバがクラウドサーバ上にあるデータを取得して文書を生成して、文書をブラウザへダウンロードする。
【０００３】
文書生成サーバは多数のクライアントコンピュータからのリクエストを並行して同時に処理する必要がある。
【０００４】
従来、リクエストが文書生成サーバに与える負荷情報を事前に収集し、その情報とリクエスト受信時のサーバの負荷状況から判断し、一部またはすべてのリクエストの発行を禁止するというものがある（特許文献１参照）。該先行技術によれば、多数のリクエストを同時処理することで文書生成サーバの負荷が高まりダウンするといった障害を未然に防ぐ事が出来る。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３２８４１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クラウドプラットフォームサービスは、複数の企業・組織から使用されることが前提である（一般的にマルチテナントと呼ばれる）。このため、一部の企業・組織によって文書生成サーバのリソースが占有される状況は好ましくない。従来技術では、各企業・組織が使用できるリソースの上限を設けていないため、ある１企業が文書生成サーバの全リソースを占有するという事態が起こり得るという問題がある。
【０００７】
この問題を解決するために、マルチテナント状況下では、各企業・組織が使用できるマシンリソースを何らかの形で制限する。制限の仕方は、使用メモリ量という直接的なものから生成可能な文書数といった間接的なものまで様々である。
【０００８】
従来は、マシンリソースの使用が各企業・組織ごとに制限されるので、その制限を超える場合、文書生成サービスにおいて文書の生成が実行できないという課題があった。制限を超える場合でも文書を生成したい場合には、文書生成サーバを呼び出すユーザシステム側で呼び出しを分割する等、ユーザの利便性が低下する方法をとる必要があった。
【課題を解決するための手段】
【０００９】
クライアント端末１０１、クラウドプラットフォームサービス１０２および文書生成サーバ１０３がネットワークで接続された文書生成システムであって、以下を含む。
クラウドプラットフォームサービス１０２からデータを取得して文書を作成した場合の文書のページ数を計算し、文書生成要求を制御する制御部５０２。
【００１０】
前記制御部５０２は、フォーム情報管理部５０５からクエリコマンド１００６、フォーム情報１００７を取得し（Ｓ１３０５）、取得した情報をもとにクラウドプラットフォームサービス１０２から取得されるレコードのレコード数を特定し（Ｓ１３０６）、文書生成部６０４で生成される文書のページ数を計算する（Ｓ１３０７）。
【００１１】
前記制御部５０２は、計算したページ数をもとに文書生成要求を分割するかどうかを判定し（Ｓ１３０８）、文書生成要求を分割すると判定した場合、要求を分割する（Ｓ１３０９）。要求管理部６０５は、要求受信部６０１が受信（Ｓ１３１１）した情報をもとに、要求が分割されているかを判定し（Ｓ１３１２）、分割されたものである場合、生成文書および要求情報を保存する（Ｓ１３１３）。要求管理部６０５は、分割されたすべての要求を処理したかどうかを判定し（Ｓ１３１４）、すべて処理したと判定した場合、分割生成した全ての文書を結合する（Ｓ１３１５）。
【発明の効果】
【００１２】
本発明によれば、マルチテナントで各企業・組織に対して文書生成サーバのリソース使用制限がある状況下であっても、特定の企業・組織にリソースを占有させずに文書の生成を実行できる。
【図面の簡単な説明】
【００１３】
【図１】システム構成を示すブロック図である。
【図２】ハードウェア構成を示す図である。
【図３】文書生成システムの全体構成を示す図である。
【図４】クラウドプラットフォームサービスのソフトウェアモジュール構成図である。
【図５】Ｗｅｂサーバのソフトウェアモジュール構成図である。
【図６】文書生成サービスのソフトウェアモジュール構成図である。
【図７】クラウドプラットフォームサービスの業務画面例である。
【図８】クラウドプラットフォームサービスの業務データのテーブル構造例である。
【図９】クラウドプラットフォームサービスのカスタムボタンの定義情報例である。
【図１０】フォーム情報テーブルのテーブル構造を示す図である。
【図１１】Ｗｅｂブラウザで表示する画面フローを示した図である。
【図１２】実施例１における文書生成システムが行う処理シーケンスを示す図である。
【図１３】実施例１におけるＷｅｂサーバの文書生成処理を示すフローチャートである。
【図１４】実施例２におけるＷｅｂサーバの文書生成処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１５】
［実施例１］
図１は、本発明の実施例のシステム構成を示すブロック図である。
【００１６】
図中、１０１は、後述するクラウドプラットフォームサービス１０２および後述する文書生成サーバ１０３に対してリクエストを発行するクライアント装置１０１である。図中、１０２はクラウドプラットフォームサービス１０２であり、クライアント装置１０１や文書生成サーバ１０３からのリクエストに応じて、保持するデータの表示・更新等を行う。図中、１０３は、文書生成サーバ１０３であり、クライアント装置１０１からリクエストを受信して文書生成を行う。
【００１７】
また、上記各構成要素はネットワーク１００により通信可能に接続されている。ネットワークは、例えば、インターネット等のＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれである。また、これらの組み合わせにより実現される、いわゆる通信ネットワークである。
【００１８】
ネットワークはデータの送受信が可能であればよい。
【００１９】
クライアント装置１０１からクラウドプラットフォームサービス１０２、文書生成サービス１０３への通信手段、文書生成サーバ１０３からクラウドプラットフォームサービス１０２への通信手段、及び各サーバ間の通信手段が異なっていてもよい。
図２は、図１のクライアント装置１０１、クラウドプラットフォームサービス１０２、文書生成サーバ１０３のハードウェア構成を示すブロック図である。図中、２０１は内部バスで接続される各デバイス（後述のＲＯＭ、ＲＡＭ他）を直接或いは間接的に制御し、本発明を実現するためのプログラムを実行するＣＰＵである。２０２はＢＩＯＳが格納してあるＲＯＭである。２０３はＣＰＵ２０１のワーク領域として利用されたり、本発明を実現するためのソフトウェアモジュールをロードするための一時記憶として利用されたりするＲＡＭ（直接記憶装置）である。２０４は基本ソフトウェアであるＯＳやソフトウェアモジュールが記憶されているＨＤＤ（ハードディスクドライブ）、もしくはＳＳＤ（ソリッドステートドライブ）などの間接記憶装置である。２０５は入力装置であり不図示のキーボードやポインティングデバイスなどである。２０６は出力装置でありディスプレイが接続される。２０７はネットワーク１００に接続するためのＩ／Ｆである。
【００２０】
これらハードウェアでは、起動後ＣＰＵ２０１によりＢＩＯＳが実行されＯＳがＨＤＤ２０４からＲＡＭ２０３に実行可能にロードされる。ＣＰＵ２０１はＯＳの動作に従って後述する各種ソフトウェアモジュールをＨＤＤ２０４からＲＡＭ２０３に随時、実行可能にロードする。各種ソフトウェアモジュールは上記各デバイスの協調によりＣＰＵ２０１によって実行され動作する。また、Ｉ／Ｆ２０７はネットワーク１００に接続されており、ＯＳの動作に従ってＣＰＵ２０１により制御され、上述した通信手段による通信を実現している。
【００２１】
図３は、本発明の実施の形態に係る文書生成システムの全体構成を示す図である。
【００２２】
図中、クライアント装置１０１はユーザインタフェースアプリケーションとしてＷｅｂブラウザ３０１を備えている。
【００２３】
クラウドプラットフォームサービス１０２は、クラウドプラットフォームサービスを使用するユーザの管理や、業務データ、後述する文書生成サーバ１０３へのリダイレクトを行うための設定を管理する。
【００２４】
また、クラウドプラットフォームサービス１０２は、マルチテナントが前提であり、使用する企業・組織毎に前述のユーザ管理、業務データ管理等が行われる。
【００２５】
文書生成サーバ１０３は、Ｗｅｂサーバ３０３、および、文書生成サービス３０４を備える。
【００２６】
Ｗｅｂサーバ３０３はいわゆるＷｅｂアプリケーションの機能を有するよう構成されており、クライアント１０１はＷｅｂブラウザ３０１を介してアクセスする事が出来る。
【００２７】
Ｗｅｂサーバ３０３はＷｅｂブラウザ３０１からのリクエストに対してユーザインタフェース情報を返答する。Ｗｅｂブラウザ３０１はＷｅｂサーバ３０３から得られたユーザインタフェース情報をレンダリングし表示する。
【００２８】
表示されたユーザインタフェース情報には、たとえば、後述する文書生成サーバ１０３が管理するフォームの一覧や、文書生成をリクエストするためのインタフェース等が含まれている。
【００２９】
また、Ｗｅｂサーバ３０３はＷｅｂブラウザ３０１から文書生成リクエストを受信すると、クラウドプラットフォームサービス１０２から業務データを取得し、該業務データとともに文書生成サービス３０４に対して文書生成のリクエストを送信する。
【００３０】
文書生成サービス３０４は、受信したデータと自身で管理するフォームを使用してオーバレイ処理を行い、文書データを生成する。
【００３１】
図４は、クラウドプラットフォームサービス１０２上で動作するソフトウェアモジュールの構成図である。なお各ソフトウェアモジュールは図２で示したＨＤＤ２０４に記憶されており、前述したようにＣＰＵ２０１によってＲＡＭ２０３にロードされ実行される。
【００３２】
クラウドプラットフォームサービス１０２は以下で構成される。
【００３３】
クライアント装置１０１のＷｅｂブラウザ３０１や文書生成サーバ１０３のＷｅｂサーバ３０３との通信を処理する送受信部４０１。
【００３４】
送受信部４０１が受け付けたリクエストに従って処理を実行する制御部４０２。
【００３５】
Ｗｅｂブラウザ３０１にレスポンスを返すためのＷｅｂページを生成するページ生成部４０３。
【００３６】
ログイン要求してきたユーザを認証する認証部４０５。
【００３７】
認証部４０５にて認証に成功したユーザのセッション情報を管理するセッション管理部４０４。
【００３８】
業務データをＤＢ４０８に保持し要求に応じてＤＢ４０８から業務データの取得、あるいは業務データの更新を行うデータ管理部４０６。
【００３９】
文書生成サーバ１０３へのリダイレクトを行うための設定を保持する設定管理部４０７である。
【００４０】
クラウドプラットフォームサービス１０２はこれら各構成要素の協調により、後述する処理を実行する。
【００４１】
また、図中、４０８は管理ユーザデータや業務データを格納するＤＢ４０８であり、図２で示したＨＤＤ２０４に記憶されている。
【００４２】
管理ユーザデータや業務データは、企業・組織（以降、組織と表記）毎に管理される。各組織には組織ＩＤが自動的に割り当てられ、組織ＩＤとともに各データが管理される。ユーザ認証時、ユーザが所属する組織の組織ＩＤを取得しセッション管理部４０４に保存する。以降のデータ取得等の処理は組織ＩＤをもとに行われ、組織ＩＤの一致するデータのみを参照することが可能となっている。
【００４３】
また、ＤＢ４０８には、文書生成サーバ１０３へのリダイレクトを行うための設定も格納される。ＤＢ４０８に格納された業務データや文書生成サーバ１０３へリダイレクトを行うための設定は、Ｗｅｂブラウザ３０１を介して、ユーザ（管理者）により任意のタイミングで設定更新が行われる。
【００４４】
図５は、文書生成サーバ１０３のＷｅｂサーバ３０３上で動作するソフトウェアモジュールの構成図である。
【００４５】
なお各ソフトウェアモジュールは図２で示したＨＤＤ２０４に記憶されており、前述したようにＣＰＵ２０１によってＲＡＭ２０３にロードされ実行される。
【００４６】
Ｗｅｂサーバ３０３は以下で構成される。
【００４７】
クライアント装置１０１のＷｅｂブラウザ３０１やクラウドプラットフォームサービス１０２、文書生成サービス３０４との通信を処理する送受信部５０１。受け付けたリクエストに従って処理を実行する制御部５０２。さらに制御部５０２は、文書生成要求を分割する処理部を備える。制御部５０２は、フォーム情報管理部５０５が管理するフォームおよびクエリコマンド情報から文書のページ数を事前に計算し、文書生成要求を分割するかどうか判断し、必要な場合要求の分割および管理を行う。
【００４８】
Ｗｅｂブラウザ３０１にレスポンスを返すためのＷｅｂページを生成するページ生成部５０３。クラウドプラットフォームサービス１０２にアクセスして業務データを取得するデータアクセス部５０４。後述のフォーム情報テーブルを管理するフォーム情報管理部５０５。Ｗｅｂブラウザ３０１のセッション情報を管理するセッション管理部５０６である。Ｗｅｂサーバ３０３はこれら各構成要素の協調により、後述する処理を実行する。
【００４９】
図６は、文書生成サーバ１０３の文書生成サービス３０４上で動作するソフトウェアモジュールの構成図である。
【００５０】
なお各ソフトウェアモジュールは図２で示したＨＤＤ２０４に記憶されており、前述したようにＣＰＵ２０１によってＲＡＭ２０３にロードされ実行される。
【００５１】
文書生成サービス３０４は以下で構成される。
【００５２】
Ｗｅｂサーバ３０３からの文書生成リクエストを受け付ける要求受信部６０１。受け付けたリクエストに従って処理を実行する制御部６０２。フォームデータを管理するフォーム管理部６０３。Ｗｅｂサーバ３０３から送信された業務データとフォームを使用してオーバレイ処理を行い、文書データを生成する文書生成部６０４。生成された文書データをＷｅｂサーバ３０３またはクライアント端末１０１に送信する文書送信部６０５である。
【００５３】
図７は、クライアント装置１０１のＷｅｂブラウザ３０１から、クラウドプラットフォームサービス１０２にアクセスして業務データを表示した場合の業務画面７０１の例である。なお、図７は、ユーザがクラウドプラットフォームサービス１０２にログイン済の状態である。業務画面７０１は、あるレコードの詳細情報７０２や商品７０３が表示されている。図７では、商談に関する業務画面の商談レコードの詳細を表示している。また、文書生成サーバ１０３へリダイレクトを行うための設定がなされたカスタムボタン７０４が表示されている。カスタムボタン７０４は、ボタン押下時の動作や、どの画面に表示するか、等を任意に設定可能で、ユーザ（管理者）によって画面に配置される。
【００５４】
図８は、クラウドプラットフォームサービス１０２のデータ管理部４０６が保持する業務データのうち、商談に関するデータのテーブル構造例を示す図である。
【００５５】
業務データはデータテーブル８００で管理され、商談テーブル８０１、および、商品テーブル８１１によって構成されている。
【００５６】
商談テーブル８０１は、レコードの識別子であるレコードＩＤ８０２、レコードをユーザが容易に区別するために任意の名前を設定可能な商談名８０３で構成される。
【００５７】
商品テーブル８１１は、商談レコードＩＤ８１２、商品テーブルのレコードの識別子であるレコードＩＤ８１３、品名８１４、数量８１５、価格８１６から構成される。また、商談レコードＩＤ８１２は、商談テーブルのレコードＩＤ８０２とリレーションしている。
【００５８】
図９は、クラウドプラットフォームサービス１０２の設定管理部４０７で保持するカスタムボタンの定義情報の例を示す図である。
【００５９】
図９では、カスタムボタンが「商談」画面と「顧客」画面に定義されており、「商談」画面に表示するカスタムボタンの設定情報には、ボタン表示名９０３、および、文書生成サーバ１０３へリダイレクトを行うためのパラメータ情報が格納されている。
【００６０】
文書生成サーバＵＲＩ９０４は、文書生成サーバ１０３のＵＲＩを「ｈｔｔｐ：／／〜」の形式で指定したパラメータである。セッションＩＤ９０５は、ログインしたユーザのセッションＩＤを取得して文字列「ｓｉｄ＝＜セッションＩＤ＞」をＵＲＬパラメータに付加する設定である。ＣＰＳＵＲＬ９０６は、文書生成サーバ１０３がクラウドプラットフォームサービス１０２にアクセスするためのＵＲＬを文字列「ｓｒｖ＿ｕｒｌ＝＜クラウドプラットフォームサービスＵＲＬ＞」としてＵＲＬパラメータに付加する設定である。
【００６１】
クラウドプラットフォームサービス１０２にアクセスするためのＵＲＬは組織毎に固有であり、ユーザ認証時に、制御部５０２が、ユーザが所属する組織に応じたＵＲＬを取得してセッション管理部４０４に保存する。
【００６２】
組織ＩＤ９０７は、ログインしたユーザの組織ＩＤを取得して文字列「ｏｒｇｉｄ＝＜組織ＩＤ＞」をＵＲＬパラメータに付加する設定である。レコードＩＤ９０８は、画面に表示した商談レコードのレコードＩＤ１２０２を取得して文字列「ｒｅｃｉｄ＝＜レコードＩＤ＞」をＵＲＬパラメータに付加する設定である。
【００６３】
図１０は、Ｗｅｂサーバ３０３のフォーム情報管理部５０５が保持するフォーム情報テーブルのテーブル構造を示す図である。
【００６４】
フォーム情報テーブル１００１のフォーム情報レコードは、以下で構成される。
【００６５】
該レコードの所有者である組織を識別する組織ＩＤ１００３。フォーム選択画面に表示する名称である表示名１００４。文書生成サービス３０４のフォーム管理部６０３で管理されているフォームのファイル名であるフォームファイル名１００５。クラウドプラットフォームサービス１０２からデータを取得するためのクエリを記述したクエリコマンド１００６。フォームファイル内に定義されている固定的なデータに関する情報であるフォーム情報１０７。
【００６６】
図１１は、図１の文書生成システムにおけるクライアント装置１０１のＷｅｂブラウザ３０３で表示する画面のフローを示した図である。
【００６７】
なお、以降の図では、クラウドプラットフォームサービスをＣＰＳと略して表記している。
【００６８】
業務画面１１０１は、クラウドプラットフォームサービス１０２が作成し、クライアント装置１０１に返す画面であり、例えば、図７の業務画面７０１が表示される。
【００６９】
文書生成ボタン１１０２は、クラウドプラットフォームサービス１０２へ文書生成リクエストを発行するボタンである。
【００７０】
クラウドプラットフォームサービス１０２は文書生成ボタン１１０２が押下されると、文書生成サーバ１０３へリダイレクトするＵＲＬを返却する。
【００７１】
クライアント装置１０１のＷｅｂブラウザ３０１は、リダイレクトするＵＲＬを受けるとこのＵＲＬに従った文書生成サーバ１０３へリダイレクトする。
【００７２】
リダイレクトでリクエストを受けた文書生成サーバ１０３は、フォーム選択画面１１０３をクライアント装置１０１のＷｅｂブラウザ３０１に返す。
【００７３】
フォーム選択画面１１０３は文書生成に使用するフォームを選択するフォーム選択１１０４を備える。
【００７４】
また、ユーザから文書作成ボタン１１０５の選択を受けたクライアント装置１０１のＷｅｂブラウザ３０１は、フォーム選択１１０４の選択結果を文書生成サーバ１０３に送信する。これらの情報を受け取った文書生成サーバ１０３は、業務画面１１０１の業務データをクラウドプラットフォームサービス１０２から取得する。データ取得中画面１１０６は、文書生成サーバ１０３がクラウドプラットフォームサービス１０３から業務データを取得中の間クライアント装置１０１のＷｅｂブラウザ３０１に表示される。文書生成サーバ１０３がクラウドプラットフォームサービス１０３からの業務データ取得が完了すると、文書生成サーバ１０３は取得したデータを確認可能なデータ確認画面１１０７をクライアント装置１０１のＷｅｂブラウザ３０１に返す。ユーザから作成ボタン１１０８の選択を受けたクライアント装置１０１のＷｅｂブラウザ３０１は、文書生成サーバ１０３に文書生成リクエストを送信する。文書生成リクエストを受けた文書生成サーバ１０３は、選択されたフォームとクラウドプラットフォームサービス１０３から取得した業務データを使用して文書生成処理を行う。文書生成処理の間、クライアント装置１０２のＷｅｂブラウザ３０１は、作成中画面１１０９を表示する。文書の作成が完了すると、クライアント端末１０１のＷｅｂブラウザ３０１は完了画面１１１０を表示する。
【００７５】
図１２は、本発明の実施例１における文書生成システムが行う処理の流れを示している。なお、ユーザは不図示のログイン画面にてクラウドプラットフォームサービス１０２にログイン済とし、Ｗｅｂブラウザ３０１には図７の業務画面７０１が表示されており、カスタムボタン７０４は、予め、図９の設定がなされているものとする。
【００７６】
はじめ、ユーザによりクライアント装置１０１のＷｅｂブラウザ３０１に表示された業務画面７０１のカスタムボタン７０４が押下される（Ｓ１２０１）と、クラウドプラットフォームサービス１０２では、Ｓ１２０２においてリダイレクトＵＲＬ作成処理を行う。
【００７７】
Ｓ１２０２において、制御部４０２はカスタムボタンに設定された文書生成サーバＵＲＩ９０４、セッションＩＤ９０５、ＣＰＳＵＲＬ９０６、組織ＩＤ９０７およびレコードＩＤ９０８を取得し、これら取得したパラメータからリダイレクトＵＲＬを生成する。そして、リダイレクトさせるためのレスポンスをＷｅｂブラウザ３０１に返す。
【００７８】
Ｓ１２０３で、Ｗｅｂブラウザ３０１はクラウドプラットフォームサービス１０２から返されたレスポンスを受信すると、セッションＩＤ９０５、ＣＰＳＵＲＬ９０６、組織ＩＤ９０７、レコードＩＤ９０８を文書生成サーバ１０３に送信する。
【００７９】
Ｓ１２０４で、Ｗｅｂサーバ３０３はＷｅｂブラウザ３０１からのリダイレクトを受信すると、まず制御部５０２は、セッションＩＤ９０５、ＣＰＳＵＲＬ９０６、組織ＩＤ９０７およびレコードＩＤ９０８をセッション管理部５０６に保存する。
【００８０】
次に、制御部５０２はフォーム情報レコード１００２に含まれるフォームの表示名１００４のリストをフォーム情報管理部５０５から取得し、フォームの表示名１００４のリストからフォーム選択画面１１０３を作成、クライアント端末１０１に送る。
【００８１】
Ｓ１２０５では、ユーザによりフォーム選択画面１１０３のフォーム１１０４が選択され、文書作成ボタン１１０５が押下されると、Ｗｅｂサーバ３０３に対して選択フォーム１１０４とともに文書生成リクエストが送信される。
【００８２】
Ｓ１２０６にてＷｅｂサーバ３０３が文書生成リクエストを受信すると、文書生成サービス１０３は選択フォーム１１０４で指定されたフォームに一致するクエリコマンド１００６を発行し、クラウドプラットフォームサービス１０２にデータ取得リクエストを行う。
【００８３】
その際、クラウドプラットフォームサービス１０２のＵＲＬおよび取得データの内容は、セッション管理部５０６に保存されているＣＰＳＵＲＬ９０５および組織ＩＤ９０７、レコードＩＤ９０８をそれぞれ使用する。次に、Ｓ１２０７において文書生成サーバ１０３は、データ取得中画面１１０６を作成し、Ｗｅｂブラウザ３０１に送る。
【００８４】
Ｗｅｂブラウザ３０１は定期的にＳ１２０８でデータ取得完了確認リクエストを文書生成サーバ１０３に送信する。文書生成サーバ１０３のＷｅｂサーバ３０３は、クラウドプラットフォームサービス０２からデータ取得のレスポンスが返るまでは、Ｓ１２０７と同様のデータ取得中画面１１０６をＷｅｂブラウザ３０１に送る。
【００８５】
次に、クラウドプラットフォームサービス１０２からデータ取得のレスポンスが文書生成サーバ１０３に返る。
【００８６】
Ｗｅｂサーバ３０３の制御部５０２は、取得データをセッション管理部５０６へ保存する。
【００８７】
その後にＷｅｂブラウザ３０１からデータ取得完了の確認リクエストが送られてくると、Ｗｅｂサーバ３０３はクラウドプラットフォームサービス１０２から取得したデータでデータ確認画面１１０７を生成し、Ｗｅｂブラウザ３０１へ返す（Ｓ１２０９）。
【００８８】
Ｓ１２０９においてＷｅｂブラウザ３０１に返された取得データ確認画面１１０７にて、ユーザにより作成ボタン１１０８が押下されると、Ｗｅｂブラウザ３０１より、Ｗｅｂサーバ３０３に対して、文書生成リクエストが送信される（Ｓ１２１０）。
【００８９】
Ｓ１２１０において、Ｗｅｂサーバ３０３が文書生成リクエストを受信すると、後述の文書生成処理を行う。
【００９０】
図１３は、図１２のＳ１２１０からＳ１２１７において、Ｗｅｂサーバ３０３の文書生成処理を示すフローチャートである。
【００９１】
制御部５０２は、本明細書では、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ等からなり、フローチャートで示す手順が制御部５０２のＲＡＭ、ＲＯＭ、ＨＤＤのいずれかの記憶手段に記憶され、ＣＰＵ２０１により実行される。
【００９２】
制御部５０２は、Ｗｅｂブラウザ３０１からの文書生成リクエストを受信する（Ｓ１３０１）と、Ｓ１３０２において、セッション管理部５０６を介してセッションが有効かを判定する。
【００９３】
セッションが有効と判定された場合、制御部５０２は、Ｓ１３０４において、セッション管理部５０６から取得データ、フォームファイル名１００５を取得する。
【００９４】
次に、制御部５０２は、Ｓ１３０５において、フォーム情報管理部５０５からクエリコマンド１００６、フォーム情報１００７を取得する。クエリコマンド１００６には、クラウドプラットフォームサービス１０２からどのようにデータを取得するかが定義されている。定義内容は大きく２つで、１つ目は、どのテーブルからどの項目を取得するかという抽出項目の設定で、例えば『「見積テーブル」から「見積番号」を、「商談テーブル」から「商談の最終更新日時」を取得する』といったような設定である。２つ目は、どの範囲のデータを抽出するかという抽出条件の設定で、例えば『「見積番号が１１番」かつ「見積の作成日付が１カ月以内」』といったような設定である。
【００９５】
Ｓ１３０５では、クエリコマンド１００６からこれらの情報を取得する。またフォーム情報１００７は、フォームファイル内に定義されているフォームに関する情報で、フォームファイル上に定義された固定的なデータ全てに関する情報である。例えば「○○商事」といった会社名を表す固定文字図形のフォント、図形位置に関する情報、会社ロゴの画像データ等である。本実施例で関係するのはこのうちフォームファイルに定義された表に関する情報（行数、段数）である。なお、フォーム情報は、文書生成サーバ１０３にフォームファイルを登録する際にフォームファイルから抽出され、あらかじめフォーム情報管理部５０５に登録されているものとする。
【００９６】
次に、制御部５０２は、Ｓ１３０６において、取得レコード数の特定を行う。制御部５０２は、Ｓ１３０５で取得したクエリコマンド１００６の情報を基に簡易クエリコマンドの生成を行う。例えば、一般的なデータベースで実装されているＣＯＵＮＴコマンドを使用すれば、抽出条件はそのままで、実際に全ての抽出対象を取得しないでも結果として取得できるレコードの数を特定できる。制御部５０２は、生成した簡易クエリコマンドをデータアクセス部５０４を通してクラウドプラットフォームサービス１０２に発行し、取得されるレコード数を得る。
【００９７】
次に、制御部５０２は、Ｓ１３０７において、文書生成部６０４で生成される文書のページ数を事前に計算する。計算には、Ｓ１３０５で取得したフォーム情報のうちの表に関する情報と、Ｓ１３０６で特定した取得レコード数を用いる。１ページで消費されるレコード数は、表の行数×表の段数となる。よって文書のページ数は、取得レコード数÷（表の行数×表の段数）となる。
【００９８】
次に、制御部５０２は、Ｓ１３０８において、文書生成要求を分割するかどうか判定する。例えば、Ｓ１３０７で計算したページ数が１００ページを超えていた場合、文書生成要求を分割すると判定する。
【００９９】
Ｓ１３０８で分割しないと判定された場合はそのままＳ１３１０の処理を行う。
【０１００】
Ｓ１３０８で分割すると判定された場合、制御部５０２は、Ｓ１３０９において、文書生成要求を分割する。分割された文書生成要求は、元の要求（分割前要求）と対応する分割された要求（分割後要求）との対応関係を保持できるよう制御部５０２によって管理される。分割前要求と分割後要求は、それぞれＩＤを持つ（分割前要求ＩＤおよび分割後要求ＩＤ）。分割後要求ＩＤは１から始まり、分割された数（分割数）までインクリメントされる。
【０１０１】
次に、送受信部５０１は、Ｓ１３１０において、前記取得データ、前記フォームファイル名１００５、分割された要求かどうかの情報、取得データの使用範囲情報、分割前要求ＩＤ、分割後要求ＩＤおよび分割数（分割していない場合は１）とともに、文書生成サービス３０４に対して文書作成要求を行う（図１２のＳ１２１１）。Ｓ１３０８において文書生成要求を分割しないと判定した場合、Ｓ１３１０の処理は１回だけ行われる。分割すると判定した場合、分割した回数分行われる。この際、各文書生成要求の間にインターバルを設けてもよい。そうすることで他の企業・組織からの要求をより受けやすくすることが可能である。
【０１０２】
次に、文書生成サービス３０４の要求受信部６０１は、Ｓ１３１１にて、送受信部５０１から送信された要求を受信する。さらに、文書生成部６０４は、受信した要求に含まれる各種情報をもとに文書を生成する。受信した取得データおよび取得データの使用範囲情報から、文書に使用するデータの範囲を特定し、その範囲の文書を生成する。
【０１０３】
次に、要求受信部６０１は、Ｓ１３１２にて、受信した要求が分割されたものかどうかを判定する。受信した要求に含まれる分割された要求かどうかの情報を基に判定を行う。
【０１０４】
Ｓ１３１２にて分割されたものではないと判定された場合、Ｓ１３１６の処理を行う。
【０１０５】
Ｓ１３１２にて分割されたものであると判定された場合、要求管理部６０５は、Ｓ１３１３にて、生成された文書および要求情報を保存する。要求情報は、Ｓ１３１２で受信した分割前要求ＩＤ、分割後要求ＩＤおよび分割数であり、それらと生成文書が紐づけられて保存される。
【０１０６】
次に、要求管理部６０５は、Ｓ１３１４にて、Ｓ１３１３で保存した要求情報を基に全ての分割後要求を処理したかどうかを判定する。判定は、Ｓ１３１３で保存した分割後要求ＩＤと分割数を基に行う。例えば、分割数が５で、分割後要求ＩＤが３ならまだすべての分割後要求を処理していないと判定する。分割数が５で、分割後要求ＩＤが５なら全ての分割後要求を処理したと判定する。
【０１０７】
Ｓ１３１４で、全ての分割後要求を処理したと判定された場合、要求管理部６０５は、Ｓ１３１５にて、分割後要求で生成した全ての文書を結合する。現在処理中の分割後要求に対応する分割前要求を特定し、その分割前要求から分割されたすべての分割後要求から生成された文書を結合する。
【０１０８】
Ｓ１３１４で、まだ全ての分割後要求を処理していないと判定された場合は、Ｓ１３１６を行う。
【０１０９】
制御部５０２は、Ｓ１３１６で、文書生成サービス３０４からのレスポンスを取得し、そこに含まれる文書を取得して、該文書をＷｅｂブラウザ３０１に送信する。
【０１１０】
Ｓ１３０２において、有効なセッションでないと判定された場合（Ｓ１３０２のＮＯ）、制御部５０２は、エラー画面を生成するようページ生成部５０３に要求する。ページ生成部５０３はエラー画面を生成し、制御部５０２はエラー画面をＷｅｂブラウザ３０１に送信する。以上の処理により、Ｗｅｂサーバ３０３は文書生成処理を実行する。
【０１１１】
なお、文書生成サーバ１０３の文書生成サービス３０４における文書生成処理（フォームを使用したオーバレイ処理）は既知であるため、本実施例では説明を割愛する。
【０１１２】
また、本実施例の文書生成処理では、文書生成サービス３０４の文書生成処理が完了してからＷｅｂブラウザ３０１にレスポンスを返している。しかし、データ取得処理の場合と同様に、一旦文書作成中を示す画面をＷｅｂブラウザ３０１に返してオートリダイレクトさせるようにすることも勿論可能である。
【０１１３】
［実施例２］
本実施例では、生成する文書にページ番号が含まれていた場合に、要求を分割して処理した場合でも、結合後の文書のページ番号が正しく表示されるようにする方法を説明する。
【０１１４】
以下、実施例１で記載済みの内容については説明を省略する。
【０１１５】
図１４は本実施例において、Ｗｅｂサーバ３０３の文書生成処理を示すフローチャートである。
【０１１６】
Ｓ１４０１において、文書生成部６０４は、文書を生成する際に使用するフォームファイルにページ番号の出力設定がされているかどうかを判定する。
【０１１７】
Ｓ１４０１でページ番号出力設定がされていないと判断した場合、Ｓ１４０３の処理を行う。
【０１１８】
Ｓ１４０１でページ番号出力設定がされていると判断した場合、文書生成部６０４は、Ｓ１４０２において、開始ページ番号（後述）を取得する。
【０１１９】
文書生成部６０４は、Ｓ１４０３において、文書の生成を行う。この際、ページ番号出力設定がなされている場合は、Ｓ１４０２で取得した開始ページ番号から文書を生成する。
【０１２０】
文書生成部６０４は、Ｓ１４０４において、終了ページ番号の保存を行う。例えば、生成した文書が１００ページであって、開始ページが５０ページであれば、終了ページ番号は１５０となる。この終了ページ番号は、次に処理する分割要求からみると、Ｓ１４０２にて取得する開始ページ番号となる。
【０１２１】
以上の処理を行うことにより、結合後の文書のページ番号が正しく表示されるようなる。
【符号の説明】
【０１２２】
１０１  クライアント装置
１０２  クラウドプラットフォームサービス
１０３  文書生成サーバ
３０１  Ｗｅｂブラウザ
３０３  Ｗｅｂサーバ
３０４  文書生成サービス
５０２  制御部
５０３  ページ生成部
【図１】
2013120508.tif 000003
【図２】
2013120508.tif 000004
【図３】
2013120508.tif 000005
【図４】
2013120508.tif 000006
【図５】
2013120508.tif 000007
【図６】
2013120508.tif 000008
【図７】
2013120508.tif 000009
【図８】
2013120508.tif 000010
【図９】
2013120508.tif 000011
【図１０】
2013120508.tif 000012
【図１１】
2013120508.tif 000013
【図１２】
2013120508.tif 000014
【図１３】
2013120508.tif 000015
【図１４】
2013120508.tif 000016