(57)【要約】【課題】  柔軟な形式に基づいて日付又は数値を出力するアプリケーションを構築する仕組みを提供する。【解決手段】  アプリケーションを構築する情報処理装置であって、前記アプリケーションが出力する日付又は数値の形式を特定する値を記憶する第１記憶手段と、前記第１記憶手段により記憶されている値に基づく形式で日付又は数値を出力するか、前記アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式で日付又は数値を出力するかを制御するアプリケーションを構築するアプリケーション構築手段とを備えることを特徴とする情報処理装置。【選択図】  図９
2019082896.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを構築する情報処理装置であって、
前記アプリケーションが出力する日付又は数値の形式を特定する値を記憶する第１記憶手段と、
前記第１記憶手段により記憶されている値に基づく形式で日付又は数値を出力するか、前記アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式で日付又は数値を出力するかを制御するアプリケーションを構築するアプリケーション構築手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記アプリケーション構築手段は、
前記アプリケーションを利用するエンドユーザのセッションから、日付又は数値を出力する形式を特定する値を取得できた場合は当該値に基づく形式で日付又は数値を出力し、当該値を取得できなかった場合は前記第１記憶手段により記憶されている値に基づく形式で日付又は数値を出力するよう制御するアプリケーションを構築すること
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記アプリケーション構築手段は、
前記アプリケーションを利用するエンドユーザのセッションから取得した値に従って、当該値に基づく形式で日付又は数値を出力するか前記第１記憶手段により記憶されている値に基づく形式で日付又は数値を出力するかを制御するアプリケーションを構築すること
を特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記アプリケーション構築手段は、
前記アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式に従って、当該エンドユーザが入力した日付又は数値をチェックするアプリケーションを構築すること
を特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記アプリケーションが出力する日付又は数値の形式のうち、前記アプリケーションが起動されるときにコンパイルする形式を特定する値を記憶する第２記憶手段を更に備え、
前記アプリケーション構築手段は、
前記アプリケーションが起動されるときに、前記第２記憶手段により記憶されている値に基づく形式をコンパイルするアプリケーションを構築すること
を特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記アプリケーションに入力されるファイル又は前記アプリケーションが出力するファイルに含まれる日付若しくは数値の形式を特定する値を記憶する第３記憶手段を更に備え、
前記アプリケーション構築手段は、
前記第３記憶手段により記憶されている値に基づく形式に従って、前記アプリケーションに入力されるファイルに含まれる日付若しくは数値をチェックする又は前記アプリケーションが出力するファイルに含まれる日付若しくは数値を出力するように制御するアプリケーションを構築すること
を特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
アプリケーションを構築し、前記アプリケーションが出力する日付又は数値の形式を特定する値を記憶する第１記憶手段を備える情報処理装置における処理方法であって、
前記情報処理装置が、
前記第１記憶手段により記憶されている値に基づく形式で日付又は数値を出力するか、前記アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式で日付又は数値を出力するかを制御するアプリケーションを構築するアプリケーション構築ステップ
を実行することを特徴とする処理方法。
【請求項８】
アプリケーションを構築し、前記アプリケーションが出力する日付又は数値の形式を特定する値を記憶する第１記憶手段を備える情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記第１記憶手段により記憶されている値に基づく形式で日付又は数値を出力するか、前記アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式で日付又は数値を出力するかを制御するアプリケーションを構築するアプリケーション構築手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションを構築するための情報処理装置、その処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、グローバルで利用可能な多言語アプリケーションを構築するツールやサービスが存在する。
【０００３】
その場合、グローバル化されたアプリケーションは、エンドユーザが使用するアプリケーションクライアント１０４のＯＳ４３１やブラウザ４３２のロケール情報に基づいてエンドユーザの属すロケール（地域）を特定するケースが多い。そして、特定されたロケールに基づいて、アプリケーションの画面に表示する日付又は数値の形式（フォーマット）を決定する。
【０００４】
特許文献１には、ＯＳの言語設定に従ってロケールを特定するプログラムの仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１４２６００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１の仕組みにより、ＯＳの言語設定に従って特定されたロケールに基づいて日付又は数値の形式を決定するアプリケーションを構築することはできるが、ロケールに基づかない自由な形式で日付又は数値を表示することはできない。
【０００７】
一方、クラウド環境で動作するアプリーションが増えたり、ダイバーシティによってグローバルな人材の採用・異動が増えたりすることによって、エンドユーザが使用するアプリケーションクライアントのＯＳ４３１やブラウザ４３２のロケール情報に従ってアプリーションのロケールを決定することが最善な方法ではなくなってきた。
【０００８】
そこで、本発明の目的は、柔軟な形式に基づいて日付又は数値を出力するアプリケーションを構築する仕組みを提供することである。
【課題を解決するための手段】
【０００９】
アプリケーションを構築する情報処理装置であって、前記アプリケーションが出力する日付又は数値の形式を特定する値を記憶する第１記憶手段と、前記第１記憶手段により記憶されている値に基づく形式で日付又は数値を出力するか、前記アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式で日付又は数値を出力するかを制御するアプリケーションを構築するアプリケーション構築手段とを備えることを特徴とする情報処理装置。
【発明の効果】
【００１０】
本発明によれば、柔軟な形式に基づいて日付又は数値を出力するアプリケーションを構築する仕組みを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】プログラム生成装置、プログラム生成サーバ、データベースサーバ、アプリケーションクライアント、アプリケーションサーバの構成の一例を示すシステム構成図である。
【図２】プログラム生成装置、プログラム生成サーバ、データベースサーバ、アプリケーションクライアント、アプリケーションサーバとして適用可能な各ハードウェア構成の一例を示すブロック図である。
【図３】ソフトウェア構成を示すブロック図の一例である。
【図４】プログラム生成装置１０１、アプリケーションサーバ１０５及びアプリケーションクライアント１０４の構成図である。
【図５】アプリケーション生成のフローチャートの一例を示す図である。
【図６】アプリケーション設定出力のフローチャートの一例を示す図である。
【図７】アプリケーション起動及び実行のフローチャートの一例を示す図である。
【図８】アプリケーション実行（日付項目出力）のフローチャートの一例を示す図である。
【図９】アプリケーション実行（数値項目出力）のフローチャートの一例を示す図である。
【図１０】アプリケーション生成設定情報ファイル１０００の一例を示す図である。
【図１１】リソースファイル１１００の一例を示す図である。
【図１２】アプリケーション設定ファイル１２００の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１３】
図１は、本発明に係わるプログラム生成装置１０１（開発者がＷｅｂアプリケーション生成のために使用する情報処理装置）、プログラム生成サーバ１０２、データベースサーバ１０３、アプリケーションクライアント１０４（クライアント装置）、アプリケーションサーバ１０５の構成の一例を示すシステム（情報処理システム）構成図である。
【００１４】
プログラム生成装置１０１は、開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。なお、プログラム生成装置１０１では、開発者の入力受付を行い、後述するプログラム生成サーバ１０２に実際のプログラム生成処理、アプリケーション生成処理を行うというように役割を分けてもよいし、プログラム生成装置１０１単体でプログラム生成、アプリケーション生成までを行ってもよい。
【００１５】
なお、この実施形態においては、プログラム生成装置１０１で生成するアプリケーションはＷｅｂアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Ｗｅｂ技術による通信を利用しないアプリケーションやシステムであってもよい。
【００１６】
また、本実施形態においては、プログラム生成装置１０１によってアプリケーションのプログラムを生成するとしたが、プログラムの生成に限定するものではなく、開発者の操作に従って設定された定義を用いて、アプリケーションやシステムが動作する環境を構築するとしてもよい。
【００１７】
プログラム生成サーバ１０２ａ〜１０２ｂは情報処理装置であって、プログラム生成装置１０１により入力された開発者の設定及び指示に従って、プログラムを生成する。プログラム生成サーバ１０２ａはＬＡＮなどのネットワーク１０６内に配置されてもよいし、プログラム生成サーバ１０２ｂはインターネット上やクラウド上に配置されてもよい。
【００１８】
データベースサーバ１０３ａ〜１０３ｂは情報処理装置であって、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、開発者が利用するためにデータベースサーバ１０３は、プログラム生成装置１０１と同一の装置で構成されていてもよいし、ＬＡＮなどのネットワーク１０６内に配置されてもよい（データベースサーバ１０３ａ）。またインターネット上やクラウド上に配置されてもよい（データベースサーバ１０３ｂ）。また、プログラム生成装置１０１が、プログラム生成サーバ１０２と協調する場合には、プログラム生成サーバ１０２とデータベースサーバ１０３が同一の装置内に構成されていてもよい。
【００１９】
アプリケーションサーバ１０５は情報処理装置であって、プログラム生成装置１０１で生成されたアプリケーションプログラムを実行する。アプリケーションサーバ１０５は、ＬＡＮなどのネットワーク１０６内に配置されてもよい（アプリケーションサーバ１０５）し、またインターネット上やクラウド上に配置されてもよい（アプリケーションサーバ１０５ｂ）。また、ネットワーク１０６、インターネット、クラウド上のデータベースサーバ１０３と接続して動作することが可能である。
【００２０】
アプリケーションクライアント１０４ａ〜１０４ｂは情報処理装置であって、アプリケーションサーバ１０５と協調してプログラム生成装置１０１で開発したアプリケーションプログラムを動作させる、アプリケーションのエンドユーザの入力端末である。ＬＡＮなどのネットワーク１０６内に配置されてもよい（アプリケーションクライアント１０４ａ）し、またインターネット上やクラウド上に配置されてもよい（アプリケーションクライアント１０４ｂ）。携帯端末などの情報処理装置であってもよい。
【００２１】
図２は、本発明に係わるプログラム生成装置１０１、プログラム生成サーバ１０２、データベースサーバ１０３、アプリケーションクライアント１０４、アプリケーションサーバ１０５として適用可能な各ハードウェア構成の一例を示すブロック図である。
【００２２】
図２において、ＣＰＵ２０１は、システムバス２０４に接続される各デバイスを統括的に制御する。
【００２３】
また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるオペレーティングシステム（ＯＳ）や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【００２４】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア、一時待避領域等として機能する。
【００２５】
入力コントローラ２０５は、入力部２０９からの入力を制御する。この入力部２０９としては、情報処理装置では、キーボード、マウス等のポインティングデバイスが挙げられる。
【００２６】
出力コントローラ２０６は、出力部２１０の表示を制御する。この出力部２１０としては、例えば、ＣＲＴや液晶ディスプレイ等が挙げられる。
【００２７】
外部メモリコントローラ２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ２１１へのアクセスを制御する。加えて、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ２１１としては、ハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）、ＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）、スマートメディア等が挙げられる。
【００２８】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して外部機器との通信制御処理を実行する。
【００２９】
本発明を実現するためのプログラム２１２は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。
【００３０】
図３は、本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
【００３１】
プログラム生成装置１０１は、以下の機能部を備える。
【００３２】
第１記憶部３０１は、アプリケーションが出力する日付又は数値の形式を特定する値を記憶する機能部である。
【００３３】
アプリケーション構築部３０２は、第１記憶部３０１により記憶されている値に基づく形式で日付又は数値を出力するか、アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式で日付又は数値を出力するかを制御するアプリケーションを構築する機能部である。
【００３４】
アプリケーション構築部３０２は、アプリケーションを利用するエンドユーザのセッションから、日付又は数値を出力する形式を特定する値を取得できた場合は当該値に基づく形式で日付又は数値を出力し、当該値を取得できなかった場合は第１記憶部３０１により記憶されている値に基づく形式で日付又は数値を出力するよう制御するアプリケーションを構築する機能部である。
【００３５】
アプリケーション構築部３０２は、アプリケーションを利用するエンドユーザのセッションから取得した値に従って、当該値に基づく形式で日付又は数値を出力するか第１記憶部３０１により記憶されている値に基づく形式で日付又は数値を出力するかを制御するアプリケーションを構築する機能部である。
【００３６】
アプリケーション構築部３０２は、アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式に従って、当該エンドユーザが入力した日付又は数値をチェックするアプリケーションを構築する機能部である。
【００３７】
第２記憶部３０３は、アプリケーションが出力する日付又は数値の形式のうち、アプリケーションが起動されるときにコンパイルする形式を特定する値を記憶する機能部である。
【００３８】
アプリケーション構築部３０２は、アプリケーションが起動されるときに、第２記憶部３０３により記憶されている値に基づく形式をコンパイルするアプリケーションを構築する機能部である。
【００３９】
第３記憶部３０４は、アプリケーションに入力されるファイル又はアプリケーションが出力するファイルに含まれる日付若しくは数値の形式を特定する値を記憶する機能部である。
【００４０】
アプリケーション構築部３０２は、第３記憶部３０４により記憶されている値に基づく形式に従って、アプリケーションに入力されるファイルに含まれる日付若しくは数値をチェックする又はアプリケーションが出力するファイルに含まれる日付若しくは数値を出力するように制御するアプリケーションを構築する機能部である。
【００４１】
図４は、プログラム生成装置１０１、アプリケーションサーバ１０５及びアプリケーションクライアント１０４の構成図である。
【００４２】
プログラム生成装置１０１は、リポジトリ定義部４０１及びアプリケーション生成部４１０を備える。
【００４３】
プログラム生成装置１０１は、アプリケーションを開発する開発者により設定されたリポジトリ定義部４０１の各定義を用いて、アプリケーション生成部４１０によりアプリケーションを生成する。
【００４４】
リポジトリ定義部４０１には、アプリケーション定義４０２、入出力定義４０３、データモデル定義４０４、ビジネスプロセス定義４０５、データベース定義４０６が記憶されている。これら４０２〜４０６の定義は、アプリケーション構築ツールを介して、開発者によって入力設定または配置される。
【００４５】
なお、入出力定義４０３は、入力項目定義情報及び出力項目定義情報を含む。入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
【００４６】
アプリケーション生成部４１０は、アプリケーション生成用のリポジトリ定義解析部４１１を用いてリポジトリ定義部４０１に記憶されている各定義を解析し、アプリケーションコード生成部４１３及びソースコードコンパイル部４１４を介し、コンパイル済Ｊａｖａ（登録商標）コード４２１及びＨＴＭＬ／ＪＳＰ／ＪａｖａＳｃｒｉｐｔ（登録商標）４２２を含むアプリケーションを生成する。すなわち、アプリケーション生成部４１０は、設定された定義を用いて、アプリケーションとして用いられるプログラムを生成する手段の一例である。
【００４７】
図５は、アプリケーション生成のフローチャートの一例を示す図である。
【００４８】
ステップＳ５０１において、プログラム生成装置１０１は、アプリケーション定義４０２の設定を受け付ける。具体的には、アプリケーション構築ツールの画面を介して、アプリケーション開発者から入出力定義４０３、データモデル定義４０４、ビジネスプロセス定義４０５及びデータベース定義４０６の設定を受け付ける。
【００４９】
ステップＳ５０２において、プログラム生成装置１０１は、アプリケーション生成の指示を受け付ける。
【００５０】
ステップＳ５０３において、プログラム生成装置１０１は、リポジトリ定義部４０１からアプリケーション定義４０２を取得する。リポジトリ定義解析部４１１は、読み込んだ定義を解析したうえでメモリに記憶しておき、解析された定義はアプリケーション生成の各処理において適宜参照される。
【００５１】
ステップＳ５０４において、プログラム生成装置１０１は、リポジトリ定義部４０１からデータモデル定義４０４を取得する。
【００５２】
ステップＳ５０５において、プログラム生成装置１０１は、リポジトリ定義部４０１から入出力定義４０３を取得する。
【００５３】
ステップＳ５０６において、プログラム生成装置１０１は、リポジトリ定義部４０１からビジネスプロセス定義４０５を取得する。
【００５４】
ステップＳ５０７において、プログラム生成装置１０１は、リポジトリ定義部４０１からデータベース定義４０６を取得する。
【００５５】
ステップＳ５０８において、プログラム生成装置１０１は、生成設定情報を取得する（詳細は、図６の説明にて後述する）。
【００５６】
ステップＳ５０９において、プログラム生成装置１０１は、アプリケーションコード生成部４１３を用いて、アプリケーションの実行に用いるプログラムを生成する。すなわち、ステップＳ５０９は、アプリケーションを構築する処理の一例を示すステップである。
【００５７】
ステップＳ５０９により生成されるプログラムは、例えば、Ｊａｖａ（登録商標）、ＪＳＰ、ＪａｖａＳｃｒｉｐｔ（登録商標）、スタイルシート、ＨＴＭＬ、ＸＭＬ、バッチファイル、リソースファイル、各種設定ファイル等であり、アプリケーションサーバ１０５にて、これらのプログラムが実行されることにより、図７〜図１０のフローチャートの処理が実行される。
【００５８】
すなわち、ステップＳ５０９は、記憶されている値に基づく形式で日付又は数値を出力するか、アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式で日付又は数値を出力するかを制御するアプリケーションを構築する処理の一例を示すステップである。（構築されたアプリケーションの動作は、ステップＳ８０１〜Ｓ８０４の処理が該当する）
また、ステップＳ５０９は、アプリケーションを利用するエンドユーザのセッションから、日付又は数値を出力する形式を特定する値を取得できた場合は当該値に基づく形式で日付又は数値を出力し、当該値を取得できなかった場合は記憶されている値に基づく形式で日付又は数値を出力するよう制御するアプリケーションを構築する処理の一例を示すステップである。（構築されたアプリケーションの動作は、ステップＳ８０１〜Ｓ８０４の処理が該当する）
また、ステップＳ５０９は、アプリケーションを利用するエンドユーザのセッションから取得した値に従って、当該値に基づく形式で日付又は数値を出力するか記憶されている値に基づく形式で日付又は数値を出力するかを制御するアプリケーションを構築する処理の一例を示すステップである。（構築されたアプリケーションの動作は、ステップＳ８０１〜Ｓ８０４の処理が該当する）
また、ステップＳ５０９は、アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式に従って、当該エンドユーザが入力した日付又は数値をチェックするアプリケーションを構築する処理の一例を示すステップである。（構築されたアプリケーションの動作は、ステップＳ８０１〜Ｓ８０４の処理が該当する）
また、ステップＳ５０９は、アプリケーションが起動されるときに、記憶されている値に基づく形式をコンパイルするアプリケーションを構築する処理の一例を示すステップである。（構築されたアプリケーションの動作は、ステップＳ７０３〜Ｓ７０５の処理が該当する）
また、ステップＳ５０９は、記憶されている値に基づく形式に従って、アプリケーションに入力されるファイルに含まれる日付若しくは数値をチェックする又はアプリケーションが出力するファイルに含まれる日付若しくは数値を出力するように制御するアプリケーションを構築する処理の一例を示すステップである。（構築されたアプリケーションの動作は、ステップＳ９０８〜Ｓ９１０の処理が該当する）
ステップＳ５１０において、プログラム生成装置１０１は、ステップＳ５０９にて生成したプログラムをアプリケーションサーバ１０５に配置（デプロイ）する。デプロイ後、アプリケーションサーバ１０５は、デプロイされたアプリケーションを起動させ、アプリケーションが動作する状態にする。
【００５９】
以上で、図５の説明を終了する。
【００６０】
図６は、アプリケーション設定出力のフローチャートの一例を示す図である。
【００６１】
ステップＳ６０１において、プログラム生成装置１０１は、外部メモリ２１１に記憶されているアプリケーション生成設定情報ファイル１０００（図１０）の内容を読み込む。アプリケーション生成設定情報ファイル１０００は、アプリケーション構築ツールにおけるアプリケーション生成に係る設定を記憶したファイルである。すなわち、アプリケーション生成設定情報ファイル１０００は、アプリケーションが出力する日付又は数値の形式を特定する値を記憶する手段の一例である。
【００６２】
ステップＳ６０２において、プログラム生成装置１０１は、アプリケーション生成設定情報ファイル１０００にロケール設定がされているか否かを判定し、設定されている場合はステップＳ６０３に進み、設定されていない場合はステップＳ６０８に進む。
【００６３】
ロケール設定とは、言語（又は地域）別の設定（例：日付、単位、通貨、数値の表示等の設定）であり、具体的には図１０の１００１及び１００２のように記述する。なお、“｜”は言語別設定の区切りを表す記号である。
【００６４】
１００１は言語別の日付フォーマット設定であり、日本語：ＹＭＤ形式（例：２０１７／１２／３１）、英語：ＭＤＹ形式（例：１２／３１／２０１７）、フランス語：ＤＭＹ形式（例：３１／１２／２０１７）で日付を出力するという設定例である。
【００６５】
１００２は言語別の数値フォーマット設定であり、日本語：桁数区切にカンマ＆小数点にドット（例：１，２３４，５６７．９９）、英語：桁数区切にカンマ＆小数点にドット、フランス語：桁数区切にドット＆小数点にカンマ（例：１．２３４．５６７，９９）で数値を出力するという設定例である。
【００６６】
ステップＳ６０３において、ステップＳ６０４からステップＳ６０６までの処理をアプリケーション生成設定情報ファイル１０００に記述されているロケール分繰り返す。
【００６７】
ステップＳ６０４において、プログラム生成装置１０１は、ロケールに対応するリソースファイルの有無を判定し、有る場合はステップＳ６０５に進み、無い場合はステップＳ６０７に進む。ここで、リソースファイルとは言語別設定ファイルであり、具体的には図１１のように記述される。リソースファイル１１００は日本語のリソースファイルの例である。
【００６８】
ステップＳ６０５において、プログラム生成装置１０１は、リソースファイル１１００に数値フォーマットロケール設定を出力する（図１１の１１０１）。ｎｕｍ．ｇｒｏｕｐｉｎｇ．ｓｅｐａｒａｔｏｒ＝，（桁数区切にカンマを用いる）、ｎｕｍ．ｄｅｃｉｍａｌ．ｓｅｐａｒａｔｏｒ＝．（小数点にドットを用いる）のように設定を出力する。
【００６９】
ステップＳ６０６において、プログラム生成装置１０１は、リソースファイル１１００に日付フォーマットロケール設定を出力する（図１１の１１０２）。ｄａｔｅ．ｆｏｒｍａｔ＝ＹＭＤ（ＹＭＤ形式で日付を出力）のように設定を出力する。
【００７０】
つまり、ステップＳ６０５及びステップＳ６０６の処理により、アプリケーション生成設定情報ファイル１０００で設定されたロケール設定をリソースファイル１１００へ出力する。
【００７１】
ステップＳ６０８において、プログラム生成装置１０１は、アプリケーション生成設定情報ファイル１０００に事前コンパイル設定１００３がされているか否かを判定し、設定がされている場合はステップＳ６０９に進み、設定がされていない場合は図６のフローチャートを終了する。
【００７２】
事前コンパイル設定１００３（図１０）は、アプリケーションサーバ１０５がアプリケーションの初回起動時に数値フォーマットをコンパイルしておくための設定である。なお、本実施形態においては、事前コンパイル設定１００３で設定できるのは数値フォーマットのみとしたが、数値フォーマットに限定するものではなく、日付フォーマット用の事前コンパイル設定１００３があってもよい。
【００７３】
すなわち、アプリケーション生成設定情報ファイル１０００は、アプリケーションが出力する日付又は数値の形式のうち、アプリケーションが起動されるときにコンパイルする形式を特定する値を記憶する手段の一例である。
【００７４】
図１０の事前コンパイル設定１００３は、「，．」（桁数区切にカンマ＆小数点にドット）、「．，」（桁数区切にドット＆小数点にカンマ）、「  ，」（桁数区切にスペース＆小数点にカンマ）の３通りのパターンを事前コンパイルしておくための設定例である。なお、各設定ファイルにおいて、スペースは“￥ｕ００２０”と表現する。
【００７５】
ステップＳ６０９において、プログラム生成装置１０１は、ステップＳ６０８にて読取った事前コンパイル設定１００３をアプリケーション設定ファイル１２００へ出力する（図１２の１２０１）。
【００７６】
以上で、図６の説明を終了する。
【００７７】
図７は、アプリケーション起動及び実行のフローチャートの一例を示す図である。
【００７８】
ステップＳ７０１において、アプリケーションサーバ１０５は、日付フォーマットをコンパイルし、外部メモリ２１１に記憶する。なお、日付フォーマットについては、一般的にＹＭＤ、ＭＤＹ、ＤＭＹの３種類しか存在しないため、この３つのフォーマットをコンパイルし、コンパイルにより生成されたファイルを外部メモリ２１１に記憶する。
【００７９】
ステップＳ７０２において、アプリケーションサーバ１０５は、数値デフォルトフォーマットをコンパイルし、コンパイルにより生成されたファイルを外部メモリ２１１に記憶する。数値デフォルトフォーマットとは、数値フォーマットの設定がない場合に利用されるデフォルトの数値フォーマットであり、具体的には、「，．」（桁数区切にカンマ＆小数点にドット）形式のフォーマットである。
【００８０】
ステップＳ７０３において、アプリケーションサーバ１０５は、アプリケーション設定ファイル１２００に事前コンパイル設定１２０１が設定されているか否かを判定し、設定されている場合はステップＳ７０４に進み、設定されていない場合はステップＳ７０６に進む。
【００８１】
ステップＳ７０４において、アプリケーションサーバ１０５は、事前コンパイル設定１２０１に設定されている数値フォーマットのパターン数だけステップＳ７０５を繰り返す。図１２の１２０１では、事前コンパイル設定１２０１に、「，．」（桁数区切にカンマ＆小数点にドット）、「．，」（桁数区切にドット＆小数点にカンマ）、「  ，」（桁数区切にスペース＆小数点にカンマ。例：１  ２３４  ５６７，９９）の３通りのパターンが設定されているため、この３つのパターンについてステップＳ７０５の処理を繰り返す。
【００８２】
ステップＳ７０５において、アプリケーションサーバ１０５は、数値フォーマットの事前コンパイルを行い、コンパイルにより生成されたファイルを外部メモリ２１１に記憶する。
【００８３】
なお、本発明により、柔軟な形式に基づいて日付又は数値を出力するアプリケーションを構築することができるようになるが、フォーマットのパターンが増えると、後に説明するステップＳ９０４のフォーマットのコンパイル処理が多く実行されることになり、アプリケーション全体の動作が遅くなってしまう。そのような場合は、アプリケーション開発時に利用されることが想定されるフォーマットを事前コンパイル設定１２０１に記載しておくことで、ステップＳ７０３〜Ｓ７０５の処理によってアプリケーション実行時のフォーマットのコンパイル処理（ステップＳ９０４）の実行頻度を抑えることができるため、アプリケーション実行時にアプリケーション全体の動作が遅くなることを防止できる。
【００８４】
以上のステップＳ７０１〜Ｓ７０５は、アプリケーション起動に係る処理であり、以下のステップＳ７０６〜Ｓ７０９は、アプリケーション起動後にエンドユーザからリクエストを受信したときのアプリケーション実行に係る処理である。
【００８５】
ステップＳ７０６において、アプリケーションサーバ１０５は、日付項目の出力処理か否かを判定し、日付項目の出力処理の場合はステップＳ７０７に進み、日付項目の出力処理でない場合はステップＳ７０８に進む。
【００８６】
ステップＳ７０７において、アプリケーションサーバ１０５は、アプリケーション実行（日付項目出力）処理を行う。
【００８７】
ステップＳ７０８において、アプリケーションサーバ１０５は、数値項目の出力処理か否かを判定し、数値項目の出力処理の場合はステップＳ７０９に進み、数値項目の出力処理でない場合は図７のフローチャートを終了する。なお、数値項目には、金額などの貨幣項目も含む。
【００８８】
ステップＳ７０９において、アプリケーションサーバ１０５は、アプリケーション実行（数値項目出力）の処理を行う。
【００８９】
以上で、図７の説明を終了する。
【００９０】
図８は、アプリケーション実行（日付項目出力）のフローチャートの一例を示す図である。
【００９１】
ステップＳ８０１において、アプリケーションサーバ１０５は、アプリケーションを利用するエンドユーザのセッションに日付フォーマット設定の有無を判定し、有る場合はステップＳ８０２に進み、無い場合はステップＳ８０３に進む。具体的には、エンドユーザのセッションにキー＝＠ＤＡＴＥ＿ＬＡＹＯＵＴに対応する値の有無に従って判定する。なお、本実施形態においては、セッションにおける日付フォーマット設定の有無で判定するとしたが、この方法に限定するものではなく、セッションにおける日付フォーマット設定の値に従って判定する方法、セッションに設定された所定の値に従って判定する方法等であってもよい。
【００９２】
なお、エンドユーザのセッションに日付フォーマットを設定しておく方法は、様々な方法が考えられる。例えば、
（ア）  アプケーションのログイン処理時等に、エンドユーザのユーザＩＤ、言語又は利用地域等に対応付けられてデータベース等で管理されている日付フォーマットを取得し、当該エンドユーザのセッションに日付フォーマットとして設定する
（イ）  エンドユーザが選択又は入力した値に従って、当該エンドユーザのセッションに日付フォーマットとして設定する
（ウ）  アプリケーション構築ツールにより構築したアプリケーションよりも上位システム（例：ポータル等のログイン管理アプリケーション）が、エンドユーザのセッションに日付フォーマットを設定する
等の方法が考えられる。
【００９３】
上記（ア）〜（ウ）等の方法によって、生成したアプリケーションが当該エンドユーザのセッションにキー＝＠ＤＡＴＥ＿ＬＡＹＯＵＴに対応する値として、例えば「ＤＭＹ」を設定することにより、エンドユーザの属すロケールの日付フォーマット設定以外のフォーマットで日付を表示することができるようになる。つまり、日本においてフランス人が操作するアプリケーションのように、ロケールと異なる設定でアプリケーション画面を表示させたいユースケースにも対応可能な、柔軟な形式に基づいて日付又は数値を出力するアプリケーションを構築することができるようになる。
【００９４】
なお、本実施形態においては、セッションから取得した値を日付フォーマットとするとしたが、この方法に限定するものではなく、セッションから取得した値に基づく値を日付フォーマットとする、エンドユーザの識別情報に基づいて特定された値を日付フォーマットとする等の方法であってもよい。
【００９５】
ステップＳ８０２において、アプリケーションサーバ１０５は、ステップＳ８０１にて取得した日付フォーマットがコンパイル済か否かを判定し、コンパイル済の場合はステップＳ８０４に進み、コンパイル済でない場合はステップＳ８０３に進む。具体的には、ステップＳ８０１にて取得した日付フォーマットのコンパイル済ファイルが外部メモリ２１１に記憶されているか否かによって判定する。つまり、ユーザセッションの日付フォーマットがＹＭＤ、ＭＤＹ、ＤＭＹの３種類以外の場合、ステップＳ８０３に進むことになる。
【００９６】
なお、本実施形態においては、フォーマットのコンパイル済ファイルが外部メモリ２１１に記憶されているか否かによって、コンパイル済か否かを判定するとしたが、この方法に限定するものではなく、例えば、コンパイル済のフォーマットをリスト又はデータベース管理しておき、そのリスト又はデータベースにおける有無によって判定する等の方法であってもよい。
【００９７】
ステップＳ８０３において、アプリケーションサーバ１０５は、ロケールのリソースファイル１１００に日付フォーマット設定１１０２の有無を判定し、設定が有る場合はステップＳ８０４に進み、設定が無い場合はステップＳ８０５に進む。
【００９８】
ステップＳ８０４において、アプリケーションサーバ１０５は、ステップＳ８０１又はステップＳ８０３にて取得した日付フォーマット設定をアプリケーションの動作に反映させた後、そのフォーマットを用いて日付を表示する。
【００９９】
「アプリケーションの動作に反映させる」とは、ステップＳ８０１又はステップＳ８０３にて取得した日付フォーマット設定１１０２を、例えば
（１）  アプリケーション画面に表示する日付
（２）  アプリケーションが出力（エクスポート）するファイルに含む日付
（３）  ユーザが画面にて入力する日付のバリデーション（クライアント又はサーバにおける入力チェック
（４）  アプリケーションに入力（インポート）するファイルに含まれる日付
（５）  アプリケーション構築ツールのプレビュー画面やレイアウトエディタに表示する日付
等のフォーマットとして適用することである。
【０１００】
具体的には、上記（１）（２）（５）の場合は、ステップＳ８０１又はステップＳ８０３にて取得した日付フォーマットを日付の表示及びファイル出力時に適用し、上記（３）（４）の場合は、バリデーションを行うプログラム（例：ＪａｖａＳｃｒｉｐｔ（登録商標）やＪａｖａ（登録商標）等）がステップＳ８０１又はステップＳ８０３にて取得した日付フォーマットを参照する等の様にして実現する。
【０１０１】
ステップＳ８０５において、アプリケーションサーバ１０５は、日付デフォルトフォーマット設定をアプリケーションに反映させた後、そのフォーマットを用いて日付を表示する。なお、日付デフォルトフォーマット設定はＹＭＤ形式である。
【０１０２】
以上から、日付フォーマットは、エンドユーザセッションにおける設定、ロケールにおける設定、アプリケーションにおけるデフォルト設定の優先順位で適用される。つまり、ロケール設定やデフォルト設定に満足できないエンドユーザのみセッションにおけるフォーマット設定をすれば良いため、従来のロケール設定を用いるアプリケーションの仕組みを大きく変えることなく、カスタマイズが必要なユーザに対応することができるようになる。
【０１０３】
以上で、図８の説明を終了する。
【０１０４】
図９は、アプリケーション実行（数値項目出力）のフローチャートの一例を示す図である。
【０１０５】
ステップＳ９０１において、アプリケーションサーバ１０５は、アプリケーションを利用するエンドユーザのセッションに数値フォーマット設定の有無を判定し、有る場合はステップＳ９０３に進み、無い場合はステップＳ９０２に進む。具体的には、エンドユーザのセッションにキー＝＠ＮＵＭ＿ＳＥＰＡＲＡＴＯＲに対応する値の有無に従って判定する。なお、本実施形態においては、セッションにおける数値フォーマット設定の有無で判定するとしたが、この方法に限定するものではなく、セッションにおける数値フォーマット設定の値に従って判定する方法、セッションに設定された所定の値に従って判定する方法等であってもよい。
【０１０６】
なお、エンドユーザのセッションに数値フォーマットを設定しておく方法は、様々な方法が考えられる。例えば、
（ア）  アプケーションのログイン処理時等に、エンドユーザのユーザＩＤ、言語又は利用地域等に対応付けられてデータベース等で管理されている数値フォーマットを取得し、当該エンドユーザのセッションに数値フォーマットとして設定する
（イ）  エンドユーザが選択又は入力した値に従って、当該エンドユーザのセッションに数値フォーマットとして設定する
（ウ）  アプリケーション構築ツールにより構築したアプリケーションよりも上位システム（例：ポータル等のログイン管理アプリケーション）が、エンドユーザのセッションに数値フォーマットを設定する
等の方法が考えられる。
【０１０７】
上記（ア）〜（ウ）等の方法によって、生成したアプリケーションが当該エンドユーザのセッションにキー＝＠ＮＵＭ＿ＳＥＰＡＲＡＴＯＲに対応する値として、例えば「  ，」（桁数区切にスペース＆小数点にカンマ。例：１  ２３４  ５６７，９９）を設定することにより、エンドユーザの属すロケールの数値フォーマット設定以外のフォーマットで数値を表示することができるようになる。つまり、日本においてフランス人が操作するアプリケーションのように、ロケールと異なる設定でアプリケーション画面を表示させたいユースケースにも対応可能な、柔軟な形式に基づいて日付又は数値を出力するアプリケーションを構築することができるようになる。
【０１０８】
また、上記（ア）〜（ウ）等の方法で、生成したアプリケーションが、当該エンドユーザのセッションにキー＝＠ＮＵＭ＿ＳＥＰＡＲＡＴＯＲに対応する値として、例えば「’．」（桁数区切にアポストロフィ＆小数点にドット。例：１’２３４’５６７．９９）を設定することにより、数値フォーマット設定１００２及び事前コンパイル設定１００３に設定されていないフォーマットで数値を表示することができるようになる。つまり、アプリケーション設計時やアプリケーション運用開始時には想定していなかったフォーマットをエンドユーザが自由に選択できるアプリケーションを構築することができるようになる。
【０１０９】
なお、本実施形態においては、セッションから取得した値を数値フォーマットとするとしたが、この方法に限定するものではなく、セッションから取得した値に基づく値を数値フォーマットとする、エンドユーザの識別情報に基づいて特定された値を数値フォーマットとする等の方法であってもよい。
【０１１０】
ステップＳ９０２において、アプリケーションサーバ１０５は、ロケールのリソースファイル１１００に数値フォーマット設定１１０１の有無を判定し、有る場合はステップＳ９０３に進み、無い場合はステップＳ９０７に進む。
【０１１１】
ステップＳ９０３において、アプリケーションサーバ１０５は、ステップＳ９０１又はステップＳ９０２にて取得した数値フォーマットがコンパイル済か否かを判定し、コンパイル済の場合はステップＳ９０６に進み、コンパイル済でない場合はステップＳ９０４に進む。具体的には、ステップＳ９０１又はステップＳ９０２にて取得した数値フォーマットのコンパイル済ファイルが外部メモリ２１１に記憶されているか否かによって判定する。つまり、ユーザセッション又はロケールの数値フォーマットがコンパイルされていない場合、ステップＳ９０４に進むことになる。
【０１１２】
なお、本実施形態においては、フォーマットのコンパイル済ファイルが外部メモリ２１１に記憶されているか否かによって、コンパイル済か否かを判定するとしたが、この方法に限定するものではなく、例えば、コンパイル済のフォーマットをリスト又はデータベース管理しておき、そのリスト又はデータベースにおける有無によって判定する等の方法であってもよい。
【０１１３】
ステップＳ９０４において、アプリケーションサーバ１０５は、コンパイル済でない数値フォーマットをコンパイルする。
【０１１４】
ステップＳ９０５において、アプリケーションサーバ１０５は、コンパイルにより生成されたファイルを外部メモリ２１１に記憶する。
【０１１５】
ステップＳ９０６において、アプリケーションサーバ１０５は、ステップＳ９０１又はステップＳ９０２にて取得した数値フォーマット設定をアプリケーションの動作に反映させた後、そのフォーマットを用いて数値を表示する。
【０１１６】
「アプリケーションの動作に反映させる」とは、ステップＳ９０１又はステップＳ９０２にて取得した数値フォーマットを、例えば、
（１）  アプリケーション画面に表示する数値
（２）  アプリケーションが出力（エクスポート）するファイルに含む数値
（３）  ユーザが画面にて入力する数値のバリデーション（クライアント又はサーバにおける入力チェック
（４）  アプリケーションに入力（インポート）するファイルに含まれる数値のバリデーション
（５）  アプリケーション構築ツールのプレビュー画面やレイアウトエディタに表示する数値
等のフォーマットとして適用することである。
【０１１７】
具体的には、上記（１）（２）（５）の場合は、ステップＳ９０１又はステップＳ９０２にて取得した数値フォーマットを数値の表示及びファイル出力時に適用し、上記（３）（４）の場合は、バリデーションを行うプログラム（例：ＪａｖａＳｃｒｉｐｔ（登録商標）やＪａｖａ（登録商標）等）がステップＳ９０１又はステップＳ９０２にて取得した数値フォーマットを参照する等の様にして実現する。
【０１１８】
ステップＳ９０７において、アプリケーションサーバ１０５は、数値デフォルトフォーマットをアプリケーションの動作に反映させた後、そのフォーマットを用いて数値を表示する。
【０１１９】
ステップＳ９０８において、アプリケーションサーバ１０５は、エンドユーザからのリクエストがデータアップロードか否かを判定し、データアップロードの場合はステップＳ９０９に進み、データアップロードでない場合は図９のフローチャートを終了する。
【０１２０】
ステップＳ９０９において、アプリケーションサーバ１０５は、データアップロードが行われた画面について共通フォーマット設定１００４（図１０）の有無を判定し、設定が有る場合はステップＳ９１０に進み、設定が無い場合は図９のフローチャートを終了する。
【０１２１】
共通フォーマット設定１００４とは、セッションやロケールの数値フォーマット設定に関わらず、アップロードされたデータを共通フォーマット（桁数区切なし＆小数点にドット）に従ってインポートするか否かをアップロードが行われる画面毎に行う設定である。すなわち、アプリケーション生成設定情報ファイル１０００は、アプリケーションに入力されるファイル又はアプリケーションが出力するファイルに含まれる日付若しくは数値の形式を特定する値を記憶する手段の一例である。
【０１２２】
共通フォーマット設定１００４は、画面ＩＤ．ｉｍｐｏｒｔ．ｎｕｍ．ｓｅｐａｒａｔｏｒ．ｄｅｆａｕｌｔ＝ｔｒｕｅ／ｆａｌｓｅで表し、ｔｒｕｅの場合はセッションやロケールの数値フォーマット設定に関わらず共通フォーマット（例：桁数区切なし＆小数点にドット）に従ってデータをインポートし、ｆａｌｓｅの場合はセッションやロケールの数値フォーマット設定に従ってデータをインポートする。これにより、共通フォーマットを設定しておけば、どのロケールから利用された場合であっても、統一したフォーマットを用いることができるようになる。
【０１２３】
ステップＳ９１０において、アプリケーションサーバ１０５は、数値デフォルトフォーマットを反映させた後、そのフォーマットを用いて数値データをインポートする。なお、数値デフォルトフォーマット設定は「，．」（桁数区切にカンマ＆小数点にドット。例：１，２３４，５６７．９９）である。
【０１２４】
なお、本実施形態においては、共通フォーマット設定１００４をアップロードされたデータのインポート時の形式に用いるとしたが、インポート時に限定するものではなく、ダウンロードさせるデータのエクスポート時の形式に用いるとしてもよい。
【０１２５】
以上から、数値フォーマットは、エンドユーザセッションにおける設定、ロケールにおける設定、アプリケーションにおけるデフォルト設定の優先順位で適用される。つまり、ロケール設定やデフォルト設定に満足できないエンドユーザのみセッションにおけるフォーマット設定をすれば良いため、従来のロケール設定を用いるアプリケーションの仕組みを大きく変えることなく、カスタマイズが必要なユーザに対応することができるようになる。
【０１２６】
以上で、図９の説明を終了する。
【０１２７】
以上により、ロケールに基づく形式ではなく、アプリケーションを利用するエンドユーザのセッションから取得した値に基づく形式で日付又は数値を出力することができるようになるため、柔軟な形式に基づいて日付又は数値を出力するアプリケーションを構築する仕組みを提供することができる。
【０１２８】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【０１２９】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【０１３０】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることが出来る。
【０１３１】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３２】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３３】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１３４】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０１３５】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１３６】
１０１  プログラム生成装置
１０２  プログラム生成サーバ
１０３  データベースサーバ
１０４  アプリケーションクライアント
１０５  アプリケーションサーバ
１０６  ネットワーク
【図１】
2019082896.tif 000003
【図２】
2019082896.tif 000004
【図３】
2019082896.tif 000005
【図４】
2019082896.tif 000006
【図５】
2019082896.tif 000007
【図６】
2019082896.tif 000008
【図７】
2019082896.tif 000009
【図８】
2019082896.tif 000010
【図９】
2019082896.tif 000011
【図１０】
2019082896.tif 000012
【図１１】
2019082896.tif 000013
【図１２】
2019082896.tif 000014