12.1 LANSAオブジェクト名
すべてのオブジェクト命名規則を確認することを強くお勧めします。
オブジェクトのロング・ネーム、ショート・ネーム、及び識別子の関係
LANSAオブジェクトには、それぞれロング・ネームと識別子の2つの名前があります。一般的にどちらの名前を使用してもLANSAオブジェクトに参照できます。
RDML区画の場合は、識別子のみの使用が許可されています。RDMLX区画ではロング・ネームの使用が可能です。
ショート・ネームは識別子の別の呼び方です。LANSAエディターにはショート・ネームを表示する設定があります。これが設定されていると、エディターのブラウザ・ウィンドウでオブジェクト名の識別子が表示されます。
LANSAガイドで"オブジェクト名"という言葉が使用されている場合、特に指定がない限りロング・ネームでもショート・ネームでも使用できます。
一般的な命名規則
ここでは、LANSAリポジトリに格納されるすべてのオブジェクトに適用される一般的なルールとガイドラインの一部を説明します。
· LANSA オブジェクト名は、LANSA区画内で一意でなければなりません。例えば、フィールドを名前EMPNOで作成した場合、他のオブジェクト(ファイル、コンポーネント、ファンクションなど)にこの名前を使用することはできません。
· 既存の識別子をロング・ネームにすることはできませんし、逆に識別子名をロング・ネームにすることはできません。こうすることで、それぞれが区画内で一意の名前となり、オブジェクト名が必要な時にどちらの名前でも使用することができます。
· 名前は、大文字と小文字が区別されません。EMPNO、Empno、EmpNoは、同じ名前とみなされます。
· 名前の途中でブランク文字を入れることはできません。例えば、"EMP NO"は有効な名前ではありません。ただし、"EMP_NO"は一部のオブジェクトでは有効な名前です。
· オブジェクト名に次の予約接頭辞および予約名を使用しないことをお勧めします。_、X、X_、COM、COM_、SYS、SYS_、SYSTEM、 SYSTEM_、LAN、LAN_、LANSA、LANSA_、PRIM_
オブジェクトのロング・ネーム命名規則
· ロング・ネームは、a-z、A-Zの文字、および 0-9のみを含むものでなければいけません。
· 読みやすいように入力時の大文字・小文字がそのまま残されますが、大文字・小文字の区別なく一意でなければいけません。例えば、ロング・ネームAaはAaとして保存され、どこでもAaと表示されますが、AAやaaという名前をべつのオブジェクト名にすることはできません。
· ロング・ネームの長さは、最大256文字です。
· 最初の128文字は、LANSA区画内で一意でなければならず、識別子と同じにはできません。
· LANSAオブジェクト・タイプの規則も同じですが、フィールドのロング・ネームとファイルのロング・ネームは、以下に示されているように必要なターゲットのデータベースにより実装が異なります。
フィールドのロング・ネーム命名規則
· OracleおよびIBM i のDB2では、カラムの最大長は30文字です。ターゲットがこのいずれかのデータベースで、LANSAファイルのフィールドのロング・ネームが30文字より長い場合、全てのデータベース内の全カラムでLANSAフィールドの識別子(ショート・ネーム)が使用されます。
ファイルのロング・ネーム命名規則
· Oracleのテーブル識別子の最大長は30文字です。ターゲットがOracleで、ファイルのロング・ネームが30文字より長い場合、全てのデータベースでテーブル識別子にLANSAファイルの識別子(ショート・ネーム)が使用されます。
· このテーブル識別子に対する制限はOracleのみです。その他のサポートされているデータベースでは128バイトが使用されています。
オブジェクト識別子(ショート・ネーム)命名規則
· 通常、すべての識別子はLANSAによってリポジトリで大文字に変換されます。
· 名前の先頭の文字には、A〜Zを使用してください(文字$、@、#は、一部の名前で使用できますが、お勧めしません)。
· 簡単にするために、LANSAオブジェクト名には、A〜Zと1〜9だけを使用することを強くお勧めします。特殊な文字(#、_、@、$など)は、一部のオブジェクト名で使用可能ですが、可搬性などに影響する可能性があります。
フィールド識別子
· 先頭の文字にはA〜Zを使用する必要があります。フィールド識別子には@を使用しないでください。文字$、_、#を使用することはできますが、お勧めしません。
· フィールド識別子は、最大9文字に制限されています。
· SQLxxx のようなフィールド識別子の使用は控えてください。SQL(Structured Query Language)機能を使用するファンクションでこのようなフィールド識別子が使用された場合、問題が発生する可能性があります(IEコマンド SELECT_SQL)。
コンポーネント識別子
· 先頭の文字にはA〜Zを使用する必要があります。コンポーネント識別子には@を使用しないでください。文字$、_、#を使用することはできますが、お勧めしません。
· コンポーネント識別子は、最大9文字に制限されています。
ファイル識別子
次のルールは、物理ファイル識別子と論理ファイル識別子の両方に適用されます。
· ファイル識別子は、ターゲット・オペレーティング・システムとDBMSに対して有効でなければなりません。
· ファイル識別子は、最大10文字に制限されています。
· 先頭の文字には、A〜Z、$、#、@のいずれかを使用する必要があります。残りの文字には、A〜Z、0〜9、$、#、@を使用することができます。ただし、 "_"(アンダースコア)を使用することはできません。
· アクセス経路は、個別のLANSAオブジェクトではなく、ファイル定義の一部とみなされます。アクセス経路の名前は、ファイル定義内で一意でなければなりません。アクセス経路の名前は、一般の命名規則に従う必要があります。
プロセス識別子
· プロセス識別子は、LANSAシステム全体で一意でなければなりません。
· プロセス識別子には最大8文字を使用することをお勧めします。プロセス識別子の最大長は、10文字です。
· IBM i:プロセス識別子は、LANSA区画内で一意でなければなりません。ファンクション名は、そのファンクションが作成されるプロセス内で一意でなければなりません。
· Windows: プロセス識別子は、LANSAシステム全体で一意でなければなりません。すべてのファンクションは、タイプ*DIRECTとして定義する必要があります。 ファンクション識別子は、区画内で一意でなければなりません。
· Windows: Windowsで10文字のプロセス識別子を使用した場合、一部のプログラム名の生成時に先頭の文字が切り捨てられるため、残りの9文字は一意である必要があります。
ファンクション識別子
· RDML ファンクション 識別子に"_"(アンダースコア)を使用することはできません。
· ファンクション識別子、Fnnnnnn/Cnnnnnn/Pnnnnnn(nnnnnnには、1から99999までの数値が入ります)は、予約語です。
· ファンクション識別子、MENU、EXIT、HELP、SELECT、EOJ、ERROR、RETRN、*ANYは、予約語です。
· ファンクション識別子は、最大7文字に制限されています。
· IBM i:ファンクション識別子は、そのファンクションが作成されるプロセス内で一意でなければなりません。
· Windows: すべてのファンクションは、タイプ*DIRECTとして定義する必要があります。ファンクション識別子は、区画内で一意でなければなりません。
プラットフォームについて
· #、 $、@などの文字は、アプリケーションが複数の国で実行される場合、言語コードの変換問題が発生する可能性があります。オブジェクト識別子では、特殊な文字を注意して使用するか、特殊な文字を使用しないようにしてください。
· マルチプラットフォーム・アプリケーションの場合、 LANSAオブジェクト識別子には、A〜Z、0〜9だけを使用してください。A〜Z、0〜9は、コード・ページが異なっても変化しません。したがって、異なるプラットフォームのオペレーティング・システム間で通信を使用したとき、オブジェクト名識別子は正確に一致します。