SMIT オブジェクト・クラス

オブジェクト・データ・マネージャー (ODM) を使用して作成された システム管理インターフェース・ツール (SMIT) のオブジェクト・クラスは、 そのオブジェクト・クラスのインスタンスである個々のオブジェクトすべての 共通フォーマットまたはレコード・データ型を定義します。

したがって、SMIT オブジェクト・クラスは基本的にレコード・データ型で あり、SMIT オブジェクトはそのタイプの特定のレコードです。

SMIT メニュー、セレクター、およびダイアログの各画面は、以下の 4 つの オブジェクト・クラスのうちの 1 つのインスタンスであるオブジェクトによって記述されます。

  • sm_menu_opt
  • sm_name_hdr
  • sm_cmd_hdr
  • sm_cmd_opt

次の表は、各画面タイプを作成する際に用いられるオブジェクトを示しています。

画面タイプ オブジェクト・クラス オブジェクトの使用 (一般的な場合)
メニュー sm_menu_opt 画面の表題用に 1
  sm_menu_opt 最初の項目用に 1
  sm_menu_opt 2 番目の項目用に 1
  ... ...
  sm_menu_opt 最後の項目用に 1
セレクター sm_name_hdr 画面の表題および他の属性用に 1
  sm_cmd_opt 入力フィールドまたはポップアップ・リスト用に 1
ダイアログ sm_cmd_hdr 画面の表題およびコマンド文字列用に 1
  sm_cmd_opt 最初の入力フィールド用に 1
  sm_cmd_opt 2 番目の入力フィールド用に 1
  ... ...
  sm_cmd_opt 最後の入力フィールド用に 1

各オブジェクトは、一連の名前付きフィールドと関連する値で構成されます。 これらは ASCII ファイル内にスタンザ・フォーマットで表され、odmadd コマンドはこれを使用して、SMIT データベースの初期化または拡張を行うことができます。 ファイル内のスタンザは、1 つまたは複数のブランク行で区切る必要があります。

注: odmadd コマンドが使用 する ODM 入力ファイル (ASCII スタンザ・ファイル) 内のコメントは、1 桁目が # (ポンド記号) また は * (アスタリスク) で始まる行上に単独で存在しなければなりません。 * (アスタリスク) コメントだけは、スタンザと同じ行上に置くことができますが、 ディスクリプターの値の後ろに置かなければなりません。

次の例は、sm_menu_opt オブジェクトに対するスタンザです。

sm_menu_opt:                   *name of object class
  id             = "top_menu"  *object's (menu screen) name
  id_seq_num     = "050"
  next_id        = "commo"     *id of objects for next menu screen
  text           = "Communications Applications & Services"
  text_msg_file  = ""
  text_msg_set   = 0
  text_msg_id    = 0
  next_type      = "m"         *next_id specified another menu
  alias          = ""
  help_msg_id    = ""
  help_msg_loc   = ""
  help_msg_base  = ""
  help_msg_book  = "" 

ObjectClass.Descriptor という表記は、一般的に、オブジェクトのフィールドの値を記述する際に用いられます。 例えば、前述の sm_menu_opt オブジェクトでは、sm_menu_opt.id の値は top_menu です。

次の例は、sm_name_hdr オブジェクトに対するスタンザです。

sm_name_hdr:                    *---- used for selector screens
  id                      = ""  *the name of this selector screen
  next_id                 = ""  *next sm_name_hdr or sm_cmd_hdr
  option_id               = ""  *specifies one associated sm_cmd_opt
  has_name_select         = ""
  name                    = ""  *title for this screen
  name_msg_file           = ""
  name_msg_id             = 0
  type                    = ""
  ghost                   = ""
  cmd_to_classify         = ""
  cmd_to_classify_postfix = ""
  raw_field_name          = ""
  cooked_field_name       = ""
  next_type               = ""
  help_msg_id             = ""
  help_msg_loc            = ""
  help_msg_base = ""
  help_msg_book = "" 

次の例は、sm_cmd_hdr オブジェクトに対するスタンザです。

sm_cmd_hdr:                     *---- used for dialog screens
  id                      = ""  *the name of this dialog screen
  option_id               = "" *defines associated set of sm_cmd_opt objects
  has_name_select         = ""
  name                    = "" *title for this screen
  name_msg_file           = ""
  name_msg_set            = 0
  name_msg_id             = 0
  cmd_to_exec             = ""
  ask                     = ""
  exec_mode               = ""
  ghost                   = ""
  cmd_to_discover         = ""
  cmd_to_discover_postfix = ""
  name_size               = 0
  value_size              = 0
  help_msg_id             = ""
  help_msg_loc            = ""
  help_msg_base           = ""
  help_msg_book           = "" 

次の例は、sm_cmd_opt オブジェクトに対するスタンザです。

sm_cmd_opt:                   *---- used for selector and dialog screens
  id                    = ""  *name of this object
  id_seq_num            = ""  *"0" if associated with selector screen
  disc_field_name       = ""
  name                  = ""  *text describing this entry
  name_msg_file         = ""
  name_msg_set          = 0
  name_msg_id           = 0
  op_type               = ""
  entry_type            = ""
  entry_size            = 0
  required              = ""
  prefix                = ""
  cmd_to_list_mode      = ""
  cmd_to_list           = ""
  cmd_to_list_postfix   = ""
  multi_select          = ""
  value_index           = 0
  disp_values           = ""
  values_msg_file       = ""
  values_msg_set        = 0
  values_msg_id         = 0
  aix_values            = ""
  help_msg_id           = ""
  help_msg_loc          = ""
  help_msg_base         = ""
  help_msg_book         = "" 

すべての SMIT オブジェクトには、そのオブジェクトを検索する際に使用する名前を指定する id フィールドがあります。 メニューの表題に使用する sm_menu_opt オブジェクトも、next_id フィールドを使用して検索されます。 sm_menu_opt および sm_name_hdr の各オブジェクトにも、他のオブジェクトの id フィールドを指す next_id フィールドがあります。 これらは、画面間のリンクが SMIT データベース内でどのように表されているかということです。 同様に、sm_name_hdr および sm_cmd_hdr の各オブジェクト内には、それらに関連する sm_cmd_opt オブジェクトの id フィールドを指す option_id フィールドがあります。

注: sm_cmd_hdr.option_id オブジェクト・フィールドは、各 sm_cmd_opt.id オブジェクト・フィールドと等しくなります。 これは、 sm_cmd_hdr オブジェクトとそれに関連する sm_cmd_opt オブジェクトとの間のリンクを定義します。

SMIT は ODM LIKE 演算子を使用して、フィールド値が同一の sm_cmd_opt.id オブジェクトを探すため、複数のダイアログで共通の sm_cmd_opt オブジェクトを使用することができます。SMIT を使用すると、sm_cmd_hdr.option_id ファイル内に最大で 5 個の ID を (コンマで区切って) 指定することができるため、 sm_cmd_hdr オブジェクトに、任意の 5 つのそれぞれ異なる sm_cmd_opt.id フィールド値を指定した sm_cmd_opt オブジェクトを関連付けることができます。

次の表は、sm_cmd_hdr.option_id フィールドの値 が、sm_cmd_opt.id および sm_cmd_opt.id_seq_num の 各フィールドの値にどのように関連しているかを示しています。

注: sm_cmd_opt.id_seq_num フィールドの値は、 画面表示用に検索されたオブジェクトをソートする場合に使用されます。

検索するオブジェクトの ID (sm_cmd_hdr.option_id) 検索されるオブジェクト (sm_cmd_opt.id) 検索されたオブジェクトの表示順序 (sm_cmd_opt.id_seq_num)
"demo.[AB]" "demo.A" "10"
  "demo.B" "20"
  "demo.A" "30"
  "demo.A" "40"
"demo.[ACD]" "demo.A" "10"
  "demo.C" "20"
  "demo.A" "30"
  "demo.A" "40"
  "demo.D" "50"
"demo.X,demo.Y,demo.Z" "demo.Y" "20"
  "demo.Z" "40"
  "demo.X" "60"
  "demo.X" "80"

SMIT データベース

SMIT オブジェクトは、ODM 作成機能を用いて生成され、指定されたデータベース内の ファイルに保管されます。 デフォルトの SMIT データベースは、次の 8 個のファイルで構成されています。

  • sm_menu_opt
  • sm_menu_opt.vc
  • sm_name_hdr
  • sm_name_hdr.vc
  • sm_cmd_hdr
  • sm_cmd_hdr.vc
  • sm_cmd_opt
  • sm_cmd_opt.vc

デフォルトでは、これらのファイルは /usr/lib/objrepos ディレクトリーに保管されています。 これらは、必ず一緒に保管され、復元されます。