16.9 地域設定
インストール後、各 ..\X_LANSA\X_ppp\SOURCE ディレクトリは、x_defppp.hと呼ばれるファイルを含みます (pppは区画名です)。例えば、区画がSYSの場合、ファイルは x_defsys.h と呼ばれます。
x_defppp.h ファイルは、区画に固有のユーザー関数の実行設定を定義します。(概念は、IBM i の DC@A01 データ域と似ています。)これらの設定は、特定の区画のすべてのプロセス (その後関数) にグローバルに定義されます。
例えば、ユーザーの少数点の文字が '.' ではなく ',' の場合があります。ユーザーは、区画内のすべてのプロセスおよび関数についてこのファイルを使用し、必要な文字を一度に指定できます。
このファイルは、Cヘッダーファイルとして書式設定されます。とても理解しやすく、必要に応じてどのようなソース/テキスト・エディタでもとても簡単に変更できます。ファイル内に関連のオプションおよび値が文書化されています。
X_DEFPPP.H ファイルに含まれる値を変更される場合、変更が有効になる前に、すべてのエントリー・ポイント・プロセスの (再) コンパイルが必要になります。すべてのエントリー・ポイント・プロセスが(再) コンパイルされると、ユーザーは、実行時に新しい値を取得するため、ユーザーのLANSAアプリケーションを終了し、再起動する必要があります。
以下の値は、LANSA X_RUN コマンドから、またはシステム環境変数として、設定できます。
X_AUTOMATIC_HELP,X_CENTURY_COMPARE_DATE,X_CENTURY_GREATER_DATE,
X_CENTURY_LESS_DATE,X_DATE_SEPARATOR,X_CURRENCY_SYMBOL, X_DECIMAL_POINT_CHAR,X_TIME_SEPARATOR,X_DOLLAR_SIGN_CHAR,
X_HASH_SIGN_CHAR,X_AT_SIGN_CHAR,X_GEN_AT_SIGN_CHAR, X_STANDARD_MESSAGE_FILE
これらの値の設定の優先順位は:
A. X_RUNコマンド上のENV= パラメータ内で指定される値
B. 標準システム環境変数内で指定される値
C. 開発環境内で指定される多国籍の値
D. Widows設定から読み取られる国ごとに特有の情報。これらの値はいつでも使用可能なので、x_defxxx.h内の値を今後も使用できるようにするためには、これらの値の使用をオフにすることができます。オフにするには、HKEY_LOCAL_MACHINE\Software\LANSA\X_LANSA レジストリ・キー内のレジストリ値 OSRegionalSettings を DWORD と定義し、その値を0に設定します。
E. このファイルで指定される値
例えば、X_CENTURY_LESS_DATE 値を20に設定するとします。この設定を行うには、3つのメソッドがあります。これらのメソッドは、単独でも組み合わせても使用できます。
- このファイルの値を指定するには、ラインを #define X_CENTURY_LESS_DATE "20"に下げ、ユーザーのアプリケーションのすべてのエントリー・ポイント・プロセスを再コンパイルします。これにより、ユーザーのアプリケーションを効率良く指定する値にロックします。しかし、通常、この値をスーパーサーバー・モードで実行するアプリケーションで使用したり、LANSAオープン・アプリケーションのサービスとして使用したりすることはありません。これらには、使用可能なエントリー・ポイント・プロセス・コンセプトがないためです。そのような場合、全ての状況において求める結果を出すためには、BまたはCのメソッドを使用してください。
- アプリケーションを実行している環境に環境変数を設定します。オペレーティング・システム・コマンド SET X_CENTURY_LESS_DATE=20 をユーザーのオペレーティング・システムのスタート・アップに格納すると、適切な値を設定することができます。このようにして設定される値は、メソッドAで指定されるすべての値を上書きします。このように値を設定する場合、指定される値には、いかなる形の検証も適用されないため、値が適切で有効であるよう注意してください。
- 値を X_RUN コマンドに格納することにより、LANSA環境変数を設定します。例えば、X_RUN PROC=TEST LANG=ENG XENV=X_CENTURY_LESS_DATE=20 XENV=X_AUTOMATIC_HELP=Y は、世紀比較日付および自動ヘルプ・オプションを、環境変数により (メソッドB)、またはこのファイルにおいて (メソッドA) 指定されるどんな値も上書きし、指定された値に設定します。このようにして設定される値は、メソッド1または2で設定されるすべての値を上書きすることに注意してください。このように値を設定する場合、指定される値には、いかなる形の検証も適用されないため、値が適切で有効であるよう注意してください。
多国籍の値を取得する4つ目のメソッドがあります。
X_DOLLAR_SIGN_CHAR, X_HASH_SIGN_CHAR および X_AT_SIGN_CHARです。
これらの値は、LANSAPCレジストリのエントリーから取得されます。これは主に、開発ツールのような開発環境の拡張に使われるLANSAオブジェクトに使用されます。
注:LANSA スーパーサーバー内で実行する場合は、組み込み関数 CALL_SERVER_FUNCTION 経由で呼び出される関数から値が交換されるのを避けるため、サーバーの設定が、X_DECIMAL_POINT_CHAR のクライアントの設定に一致するようにしてください。