サーバの変数

この記事には、以下のトピックが含まれています。
casm173
この記事には、以下のトピックが含まれています。
CA SDM の情報は、ドル記号($)が先頭に付く変数を使用して、HTMLテンプレートに組み込まれます。 各ページは、テンプレート ファイルに記述されている変数を使用して作成されます。 以下の変数はページ上に配置することも、条件ステートメントで使用することもできます。
  • 簡易変数
  • プロパティ変数
  • 環境変数
  • ビジネス オブジェクト変数
  • リスト変数
簡易変数
簡易変数は、Webページに渡されるフラグを指定します。 簡易変数にアクセスするには、ドル記号($)が先頭に付く変数名を使用します。 これで変数の値が使用可能になります。 このような変数として、$CAisdや$cgiなどが挙げられます。 テンプレートに $CAisd を含めると、メイン CA SDM Webサーバ インストール ディレクトリが置き換えられます。$cgiは pdmweb.exe プログラムのURLを指します。 簡易変数は、それを使用するHTMPLファイルの上部に記述します。
すべてのHTMPLファイルで使用できる変数を以下に示します。
  • $ACCESS.
    group
    ユーザ アクセス権限オブジェクトには、現在のログイン ユーザのファンクション グループ
    group
    に関する権限の設定が含まれます。 たとえば$ACCESS.adminには、adminファンクション グループの権限値が含まれます。 有効な権限値は以下のとおりです。
    • 0―アクセスなし
    • 1―表示
    • 2―変更
    この変数は、ログイン フォームでは使用できません。
  • $cgi
    pdmweb.exeプログラムのURL。
  • $cst
    現在のログイン ユーザのデータ オブジェクト。 この変数は、ログイン フォームでは使用できません。 $cst.
    attrname
    の形式(たとえば、$cst.first_name)で指定して、このオブジェクトの個々の属性を参照できます。
  • $CAisd
    メインのCA SDM Web サーバ インストール ディレクトリのURL。
  • $MachineName
    web.cfg ファイルに定義されている MachineName。
  • $ProductName
    NX.envファイルに定義されている製品名。
  • $SESSION
    セッション オブジェクトには、セッション ID ($SESSION.SID)を含むすべてのセッション変数、および web.cfg ファイルに定義されているすべての変数が保存されます。
  • $USER_STATE
    ユーザ定義の状態情報。
プロパティ変数
プロパティ変数は、設定ファイル web.cfg のプロパティを表します。 HTML テンプレート ファイルから web.cfg ファイルのエントリ(ユーザ定義のエントリも含む)にアクセスするには、プレフィクス「$prop」を付けます。
たとえば、以下に示すweb.cfgファイルの行は、リスト フォームの1ページに表示されるエントリ数を指定します。
ListPageLength 10
以下のように指定すると、この変数をHTMLテンプレート内で参照できます。
$prop.ListPageLength
特殊タグの <PDM_INCLUDE> を使用して別のファイルをテンプレートに組み込む場合は、<PDM_INCLUDE> タグの属性として追加のプロパティを指定できます。 挿入ファイル内のプロパティも、web.cfgプロパティと同じ方法で参照できます。 <PDM_INCLUDE> 属性として指定されているプロパティの名前が web.cfg プロパティと同じ場合、挿入ファイル内の web.cfg プロパティがオーバーライドされます。
たとえば、以下の <PDM_INCLUDE> タグは、std_body.htmplファイル内で参照できる$prop.menubarというプロパティを作成します。
<PDM_INCLUDE FILE=std_body.htmpl menubar=no>
環境設定ファイルのプロパティ
xxx
は、
$prop.xxx
または
$SESSION.xxx
で参照できます。 どちらの方法でも同じ値が返されます。 ただし、$prop.
xxx
構文の方がサーバのオーバーヘッドが少ないため、$prop.xxx 構文を使用することをお勧めします。
web.cfgのプロパティのほかにも、$propを指定してアクセスできる事前定義済みプロパティがいくつかあります。 これらのプロパティは以下のとおりです。
  • $prop.browser
    使用されているブラウザを特定する文字列。 Internet Explorerの場合は「IE」です。
  • $prop.combo_name
    現在のユーザ名を「last_name, first_name middle_name」の形式で含む文字列。
  • prop.factory
    現在のフォームに関連付けられているファクトリを含む文字列。たとえば、リクエストの場合は「cr」、案件の場合は「iss」になります。
  • $prop.FID
    現在のフォームのフォームID(数値)を含む文字列。
  • $prop.form_name
    現在のHTMLテンプレート名(
    xxx
    .htmplの形式)を含む文字列。
  • $prop.form_name_1
    フォーム名の最初の下線の前にあるサブ文字列を含む文字列。 たとえば、フォーム名がdetail_chg_edit.htmplの場合、form_name_1は「detail」です。
  • $prop.form_name_2
    フォーム名の最初の下線と最後の下線(またはドット)の間にあるサブ文字列を含む文字列。 たとえば、フォーム名がdetail_chg_edit.htmplの場合、form_name_2は「chg」です。
  • $prop.form_name_3
    フォーム名の最後の下線とドットの間にあるサブ文字列を含む文字列。 たとえば、フォーム名が detail_chg_edit.htmpl の場合、form_name_3 は「edit」です。フォームのファイル名が detail_
    xxx
    .htmpl になる組み合わせ詳細フォームでは、$prop.form_name_3 は現在のビュー(「ro」または「edit」のいずれか)に設定されます。
  • $prop.release
    フォームのリリース レベルを含む文字列。 このプロパティの詳細については、「PDM_PRAGMA ステートメント」を参照してください。
  • $prop.SID
    現在のセッションのセッションID(数値)を含む文字列。
  • $prop.sitemod
    フォームのサイト定義の変更名を含む文字列。 このプロパティの詳細については、「PDM_PRAGMA ステートメント」を参照してください。
  • $prop.user_type
    「アナリスト」、「顧客」、「従業員」、または「ゲスト」を含む文字列。
  • $prop.version
    フォームのバージョンを含む文字列。 このプロパティの詳細については、「PDM_PRAGMA ステートメント」を参照してください。
環境変数
環境変数は、NX.env 設定ファイル内のエントリを表します。 NX.env内のエントリをHTMPLテンプレートから参照するには、プレフィクス「$env」を付けてください。
たとえば、NX.env の行のうち、 CA SDM サーバのホスト名を指定する行は以下のようになります。
@NX_SERVER=hostname
以下のように指定すると、この変数をHTMPLテンプレート ファイルから参照できます。
$env.NX_SERVER
ビジネス オブジェクト変数
Businessobject 変数は、案件やリクエストなどの CA SDM オブジェクトを表します。 オブジェクトにアクセスするには、変数名、ピリオド(.)、表示する属性名の順に続けて指定する必要があります。 たとえば、慣例上オブジェクトが変数argsで表される案件の場合は、以下のように指定することで、説明、オープン日、担当者の電話番号お、案件のアクティビティ数、最初のアクティビティの説明を表示できます。
$args.description $args.open_date $args.assignee.phone_number $args.act_log.length $args.act_log.0.description
変数名の前後に空白がない場合は、大かっこを使用して変数名を区切ることができます。 たとえば、$foo barと${foo}barはどちらも有効です。 変数argsを使用して、非属性値(「
サポートされる操作
」で説明している$args.KEEP.nameなど)にアクセスすることもできます。
非属性値が定義されていない可能性もあります。 たとえば、2つの異なる場所からフォームにアクセスしている場合に、そのうちの1つだけが$args.KEEP.fooの値を提供していることがあります。 この場合は、以下の構文を使用して$args 参照にデフォルト値を指定できます。
variable
が未定義の場合は、コロンの後の文字列が参照の代わりに使用されます。
${args.variable:default}
  • タイム ゾーン日付変数
    タイム ゾーン日付変数は、ビジネス オブジェクト変数の中でも特殊なものです。 タイム ゾーン日付変数は、整数で表される協定世界時(UTC)を、ユーザのブラウザのタイム ゾーンに合わせて文字列の日付に変換する手段を提供します。 以下の変数は、整数の日付を表します。
    $args.attr_name_INT_DATE
    例:
    $args.open_date_INT_DATE
  • ファクトリ データ変数
    ファクトリ データ変数は、ビジネス オブジェクト変数の中でも特殊なものです。 ファクトリ データ変数は、参照オブジェクトに関する情報に置き換わります。 ファクトリ データ変数は、以下の7つです。
    • $args.
      attr_name
      .COMMON_NAME
      属性が参照するテーブルの共通名(外部から読み取り可能な文字列)。 たとえば、[リクエストの詳細]フォームでは、$args.assignee.COMMON_NAMEの値は担当者のコンボ名(「姓、名、middle name」)です。
    • $args.attr_name.COMMON_NAME_ATTR
      属性が参照するテーブル内の共通名の属性名。 たとえば、[リクエストの詳細]フォームでは、$args.assignee.COMMON_NAME_ATTRの値は「combo_name」です。
    • $args.FACTORY_
      attr_name
      指定された属性に関連付けられているファクトリの名前。 たとえば、[リクエストの詳細]フォームでは、$args.FACTORY_assigneeの値は「agt」です。
    • $args.LENGTH_
      attr_name
      属性の最大長。 たとえば、[リクエストの詳細]フォームでは、$args.LENGTH_summaryの値は240です。
    • $args.
      attr_name
      .REL_ATTR
      属性の関連付け属性(外部キー)。 たとえば、[リクエストの詳細]フォームでは、$args.assignee.REL_ATTRの値は担当者の[ID]フィールドの値です。
    • $args.
      attr_name
      .REL_ATTR_ATTR
      属性が参照するテーブル内のrel_attrの属性名。 たとえば、[リクエストの詳細]フォームでは、$args.assignee.REL_ATTR_ATTRの値は「id」です。
    • $args.REQUIRED_
      attr_name
      「0」または「1」の文字列で、参照属性が必須かどうかを示します。
    • $args.
      attr_name
      .SELECTIONS
      attr_name
      の有効な選択肢のリスト。 attr_nameが別のテーブルへの参照でない場合、または
      attr_name
      が参照するテーブルのサイズが環境設定ファイルのSelListCacheMaxプロパティを超える場合、この値は空の文字列になります。 それ以外の場合、SELECTIONS変数は、参照されるテーブル内のすべてのエントリの共通名と関連付け属性を含む文字列になります。 後続の値は文字列「@,@」で区切られます。つまり、この変数の値は、以下の形式になります。
      "[email protected],@[email protected],@cnam[email protected],@rel_attr2"
    • $args.
      factory
      _SEL_UNDER_LIMIT
      「0」または「1」の文字列で、
      factory
      に対応するテーブル内の現在の行数が、環境設定ファイルのプロパティSelListCacheMaxの値よりも小さいかどうかを示します。 ただし、この変数は今後サポートされなくなる可能性があるため、新規フォームでは SELECTIONS 変数を使用してください。
    ドット付きの参照を含むファクトリ データ変数(COMMON_NAME、REL_ATTR、およびSELECTIONS)は、どのような長さのドット付き参照でも使用できます。 たとえば、[リクエストの詳細]フォームでは、$args.assignee.organization.COMMON_NAMEは、担当者の組織の外部名に置き換わります。
リスト変数
リスト変数はデータを反復する場合に使用します。 この変数にアクセスするには、「PDM_LIST: データベース行のリストのフォーマット」の説明に従ってリスト タグを記述します。