オプションの FACTORY ステートメント

この記事には、以下のトピックが含まれています。
casm173
この記事には、以下のトピックが含まれています。
関連する属性、共通名、オブジェクトにアクセスできるセキュリティ グループ、作成される各リストの種類、そのリストの保存方法など、オブジェクトへのアクセスを定義します。 このステートメントが省略されている場合、オブジェクトは初期設定の指定に従って処理されます。
構文(オプションの FACTORY ステートメント)
FACTORY [fac_name]{ [REL_ATTR name ;] [COMMON_NAME name ;] [FUNCTION_GROUP name ;] [DISPLAY_NAME name ;] [STANDARD_LISTS { [SORT_BY index_att ;] [FETCH fetch_att ;] [WHERE string ;] [MLIST ON|OFF;] [RLIST ON|OFF;] } ;] };
引数(オプションの FACTORY ステートメント)
  • fac_name
    オブジェクトを開始するファクトリの名前。 そのファクトリ名がオブジェクトの名前と異なる場合にのみ指定します。 たとえば、cnt オブジェクトには cnt、cst、agt、grp の 4 つのファクトリがあります。
オプションのステートメント(オプションの FACTORY ステートメント)
以下のオプションのステートメントのうち、少なくとも 1 つを指定する必要があります。
  • REL_ATTR
    name
    別のオブジェクトから参照される(SREL として使用される)ときにこのオブジェクトを表すことになる属性を示します。 以下に例を示します。
    REL_ATTR id ;
  • REL_ATTR name, srel_name (attr1,attr2,…)
    別のオブジェクトから参照される(「名前付きの」 SREL として使用される)ときにこのオブジェクトを表すことになる属性を示します。
    • srel_name
      「名前付きの」SREL 名と一致します。
    • attr1
      「名前付きの」SREL 属性リストの最初の属性にマップされます。
    • attr2
      「名前付きの」SREL 属性リストの 2 番目の属性にマップされます。
  • DISPLAY_NAME name
    テーブルの外部名を定義します。
    DISPLAY_NAME "Call Request" ;
  • COMMON_NAME
    name
    ドロップダウン リストに表示する属性、またはユーザがフィールドをダブルクリックしたときに表示する属性、およびタグで完全な属性が指定されていない場合に使用する属性を定義します。 最初の例では、sym の値を REL_ATTR の値ではなくウィンドウに表示しています。 2 番目の例では、タグを cr.customer.combo_name ではなく cr.customer として指定できます。
    COMMON_NAME sym ; COMMON_NAME combo_name ;
  • FUNCTION_GROUP
    name
    どのセキュリティ アクセス グループがオブジェクトにアクセスできるかを示します。 以下に例を示します。
    FUNCTION_GROUP "admin" ;
  • STANDARD_LISTS { }
    キャッシュに保持されているオブジェクトのリストを作成し、リスト ウィンドウまたは選択ウィンドウに表示できます。 パラメータによって、リストはマスタ リストか制限付きリストか、リストに掲載するオブジェクトは特定の条件を満たす必要があるかどうか、リストをどのように並べ替えることができるか、およびどの追加属性を保存するかが決まります。 構文の説明については、オプションの STANDARD_LISTS ステートメントを参照してください。
例(オプションの FACTORY ステートメント)
この例では、オブジェクトへのアクセスを定義します。 マスタ リストを作成します。 オブジェクトの sym 属性およびコード属性の値に従って並べ替えることができます。 初めて表示する場合、デフォルトでは sym 属性の値に従って並べ替えられます。 別のオブジェクトから参照されるとき、このオブジェクトはコード属性で表されます。 ウィンドウに表示するときは、コードの値ではなく sym の値が表示されます。 管理者セキュリティ グループのみがアクセスできます。
FACTORY { STANDARD_LISTS {SORT_BY "sym,code"} ; REL_ATTR code ; COMMON_NAME sym ; FUNCTION_GROUP "admin" ; };
オプションの ATTRIBUTES ステートメント
オブジェクトのプロパティを定義する OBJECT ステートメントのオプションのステートメント。
構文
ATTRIBUTES [table_name]{ att_name [field_name] value_type [access_type[status_type][DISPLAY_NAME string]] { [ON_NEW DEFAULT|SET value|NOW ;] [ON_CI DEFAULT|SET value|NOW ;] [ON_DB_INIT DEFAULT|SET value|NOW ;];]};]
引数
  • table_name
    オブジェクトの属性に関連付けられている値の保存先となるデータベースのテーブルの名前。 テーブル名を指定しないと、OBJECT ステートメントの
    obj_name
    が使用されます。
  • att_name
    属性の名前。 各属性は通常、データベース テーブルのフィールド(列)にマップされます。
  • field_name
    データベース テーブルのフィールドの名前。属性がフィールドにマップされていない場合は LOCAL、属性がほかの属性から派生したものである場合は DERIVED(derived-expr)となります。 LOCAL でも DERIVED でもなく、フィールド名も指定しない場合は、フィールドの名前は属性の名前と同じであると見なされます。
    DERIVED として宣言した変数は、その値の取得時にのみ生成されます。 DERIVED のオペランドには、属性名と文字列定数をスペースで区切ったリストが含まれています。 派生値のどの属性も単純な値(つまり、相互参照できない値)であり、派生変数よりも前に宣言する必要があります。 派生属性の値は、その構成要素値の値を連結したものです。
    派生式内の文字列定数には、以下のいずれかの形式で環境変数への参照が含まれることがあります。
    ${var}
    ${var#pattern}
    ${var#pattern#replacement}
    このように指定した値は、domsrvr 起動時に環境変数の値で置き換えられます。 #pattern オペランドはオプションです。 指定すると正規表現として扱われ、環境変数の値のどこに指定しても置き換えられます。 #replacement オペランドは、指定しないとデフォルトでは Null となります。 # は固定区切り文字であるため、パターンには # シンボルを含めることができません。 ほかのメッセージで派生属性を使用することについて制限はありません。 標準属性と同じように動作します。 生成元の属性のいずれかが変更されるたびに、派生属性のホットリンクが発生します。
  • value_type
    属性の値のデータ型が以下のいずれかであると見なします。
    • INTEGER
    • DOUBLE
    • STRING [
      length
      ]
    • DURATION
    • UUID
    • DATE
    • SREL
      obj2_name
    • SREL { ob2_name_name srel_name ( name, name2, ... ) }
    STRING を指定すると、STRING に続けて整数でサイズを指定できます。 サイズを指定しないと、データベース内の値が使用されます。
    UUID は、特定のデータベース レコードの一意の識別子として使用される 16 バイトのバイナリ データです。
    SREL は、属性が別のオブジェクトを参照するようにするものです。 SREL を指定した場合は、
    obj2 _name
    を指定して属性が参照するオブジェクトを特定する必要があります。
    srel_name は「名前付きの」SREL です。 「単純な」SREL と同じく、「名前付きの」ものも、単一の関係を表す一種の MAJIC OBJECT 属性であり、別のテーブル(ob2 _name)にある行を一意に識別します。 「単純な」SREL 属性は通常、別のテーブルの[ID]フィールドにマップされますが、「名前付きの」SREL は 2 つ以上の属性(name、name2 など)を参照先のテーブルの 2 つ以上の属性にマップして、参照先のテーブルの行を一意に識別します。
  • access_type
    属性へのアクセスを定義します。 有効な値は以下のとおりです。
説明
CONST
変更は不可です。
PRIVATE
読み取り専用
PUBLIC
読み取り/書き込みアクセス(デフォルト)
WRITE_NEW
オブジェクトを作成し、そのオブジェクトを保存する前に限り、書き込むことができます
  • status_type
    属性のステータスが以下のいずれかであることを示します。
    • REQUIRED
    • NOT_REQUIRED(デフォルト)
  • DISPLAY_NAME string
    「必要な属性がありません。」など、この属性に関するメッセージ内の属性名の代わりに使用される文字列を指定します。
ONステートメント
value_type
が INTEGER、STRING、DATE、または SREL である場合に限り、以下のいずれかを使用します。
  • ON_NEW DEFAULT|SET
    value
    |NOW
    オブジェクトを初めて作成するときに属性の値を設定することを示します。
説明
DEFAULT
現在の Null 値を
value
または NOW に変更します。
SET
現在の値を
value
または NOW に変更します。
value
属性のデータ型に応じて、数値または文字列値を指定します。
NOW
属性が DATE 型である場合に指定します。指定すると、属性は現在の日時に設定されます。
以下の例では、90 がオブジェクトの作成時にデフォルトとして設定される値です。
ON_NEW DEFAULT 90 ;
  • ON_CI DEFAULT|SET
    value
    |NOW
    属性をデータベースにチェックインするときに属性の値を設定することを示します。 ON_NEWの各パラメータの説明を参照してください。
  • ON_DB_INIT DEFAULT|SET
    value
    |NOW
    データベースから属性のインスタンスを生成するときに属性の値を設定することを示します。 ON_NEWの各パラメータの説明を参照してください。
この例では、データベースの Notify_Log_Header テーブルにあるフィールド(nlh_start など)に値が保存される名前付きの属性(start_date など)を定義しています。 フィールド名に続けて、各属性のデータ型を指定しています。 オプションの各パラメータでは、一部の属性へのアクセスを定義し、属性が必須であることを示し、一部の属性の値を現在の日時に設定するタイミングを指定しています。
たとえば、last_mod という属性を定義しています。その値は、属性がデータベースにチェックインされるときに現在の日時に設定されます。 contact という属性も定義しています。その値は、データベース フィールド nlh_c_addressee に保存される単一の関係です。 参照されるオブジェクトは cnt です。
ATTRIBUTES Notify_Log_Header { start_date nlh_start DATE WRITE_NEW {ON_NEW DEFAULT NOW;} ; last_mod DATE {ON_CI SET NOW ;} ; msg_hdr nlh_hdr STRING 20 WRITE_NEW ; msg_text nlh_msg STRING WRITE_NEW ; msg_ack nlh_user_ack STRING ; contact nlh_c_addressee SREL cnt WRITE_NEW ; notify_method nlh_cm_method INTEGER WRITE_NEW ; activity_notify nlh_transition INTEGER WRITE_NEW ; pri_event nlh_pri INTEGER WRITE_NEW ; notify_type nlh_type INTEGER WRITE_NEW ; ack_time nlh_ack_time DURATION ; status nlh_status INTEGER REQUIRED ; end_date nlh_end DATE {ON_NEW DEFAULT NOW ;} ;
};