ページの先頭行へ戻る
Systemwalker Runbook Automation Studio利用ガイド
Systemwalker

6.4.13 [XML属性の抽出]フィルター

XML形式の運用操作部品の結果やフィルター出力から属性の値を抽出します。

[XPath]

属性を持つ要素のパスを入力します。入力可能な最大文字数は4096文字です。[XPath]フィールドはフィルターの実行時に変数(UDA)の値や前の運用操作部品の実行結果を埋め込むことができます。値を埋め込む方法は以下のとおりです。

  • “@{uda:変数名}”と指定することで、変数(UDA)の値をフィルターの実行時に埋め込むことができます。また、[変数の参照]ボタンをクリックし、[変数の参照]ダイアログから変数を選択することでも、変数(UDA)の値を埋め込むことができます。

    値を埋め込むことができる変数(UDA)のタイプは、STRING/INTEGERのみです。

  • “@{:ノード名:実行結果}”と指定することで、前の運用操作部品の実行結果をフィルターの実行時に埋め込むことができます。また、[実行結果の参照]ボタンをクリックし、[実行結果の参照]ダイアログから実行結果を選択することでも、前の運用操作部品の実行結果を埋め込むことができます。

空の場合、フィルターの実行はエラーとなります。

[属性名]

値を抽出する属性の名前を入力します。入力可能な最大文字数は512文字です。

空の場合、フィルターの実行はエラーとなります。

[複数選択]

抽出結果が複数存在し、すべて抽出する場合に選択します。このチェックボックスがオフの場合、最初の1件のみ抽出されます。

デフォルトはオン。

[区切り文字]

抽出結果(値)の区切り文字を選択します。抽出結果が1つしかない場合は無視されます。

  • カンマ

  • タブ

  • 半角空白

  • 改行[LF]  (デフォルト)

[囲み文字]

抽出結果(値)を囲む文字を選択します。

  • ダブルクォーテーション  (デフォルト)

  • シングルクォーテーション

  • なし

[区切り文字]に “改行” が選択された場合、[囲み文字]はグレーアウトされ、無視されます。

注意

フィルターのテストにおける注意点

  • [XPath]フィールドに、“@{uda:変数名}”が指定されている場合

    • フィルターを実行する運用操作部品ノードの[出力情報]タブの[出力情報]セクションで実行結果と対応付けられている変数(UDA)の場合

      [テスト変数の設定]ダイアログ(*1)で該当する変数に値が設定されている場合は、その値がテストで使用されずに、“変数(ユーザ定義属性)、フィルターおよびフィルター(V14.1.x互換)について”の記載に従って設定される変数の値が使用されます。

      [テスト変数の設定]ダイアログ(*1)で[出力情報]セクションで対応付けられた実行結果に値が設定されていない場合または空値の場合は、変数の値に“@{uda:変数名}”という文字列が設定されているものとしてテストが実行されます。

    • フィルターを実行する運用操作部品ノードの[出力情報]タブの[出力情報]セクションで実行結果と対応付けられていない変数(UDA)の場合

      [テスト変数の設定]ダイアログ(*1)で該当する変数に値が設定されている場合は、その値がテストで使用されます。

      [テスト変数の設定]ダイアログ(*1)で該当する変数に値が設定されていない場合または空値の場合は、変数の値に“@{uda:変数名}”という文字列が設定されているものとしてテストが実行されます。

  • [XPath]フィールドに、“@{:ノード名:実行結果}”が指定されている場合

    [テスト変数の設定]ダイアログ(*1)で該当する実行結果に値が設定されている場合は、その値がテストで使用されます。

    [テスト変数の設定]ダイアログ(*1)で該当する実行結果に値が設定されていない場合は、実行結果の値に“@{:ノード名:実行結果}”という文字列が設定されているものとしてテストが実行されます。

  • 管理サーバ上でのフィルター実行時は、それぞれの変数(UDA)や実行結果に格納されている値で置き換えられます。

*1: [テスト変数の設定]ダイアログについては、“6.3.2 フィルターのテスト”を参照してください。

[フィルター設定]ダイアログの[XPath]フィールドに変数(UDA)を指定する場合の注意点

  • 運用操作部品の出力先として定義されている変数(UDA)を、[XPath]フィールドに設定しないでください。運用操作部品の出力先として定義されている変数(UDA)を参照する場合、変数(UDA)の値を別の変数(UDA)に複写しておき、[XPath]フィールドには複写した変数(UDA)を使用するようにしてください。

【例1】

入力:

<systems>
  <system name="システムA" mail="user1@example.com">
    <servers>
      <server ipaddress="192.168.1.10"/>
      <server ipaddress="192.168.1.20"/>
    </servers>
  </system>
  <system name="システムB" mail="user2@example.com">
    <servers>
      <server ipaddress="192.168.2.10"/>
      <server ipaddress="192.168.2.20"/>
      <server ipaddress="192.168.2.30"/>
    </servers>
  </system>
</systems>

XPath:

/systems/system[@name='システムA']/servers/server

属性名:

ipaddress

複数選択:

オン

区切り文字:

改行

囲み文字:

出力:

192.168.1.10[改行]
192.168.1.20[改行]
【例2】

入力:

<systems>
  <system name="システムA" mail="user1@example.com">
    <servers>
      <server ipaddress="192.168.1.10"/>
      <server ipaddress="192.168.1.20"/>
    </servers>
  </system>
  <system name="システムB" mail="user2@example.com">
    <servers>
      <server ipaddress="192.168.2.10"/>
      <server ipaddress="192.168.2.20"/>
      <server ipaddress="192.168.2.30"/>
    </servers>
  </system>
</systems>

XPath:

/systems/system[@name='システムA']/servers/server

属性名:

ipaddress

複数選択:

オン

区切り文字:

カンマ

囲み文字:

ダブルクォーテーション

出力:

"192.168.1.10","192.168.1.20"
【例3】

入力:

<systems>
  <system name="システムA" mail="user1@example.com">
    <servers>
      <server ipaddress="192.168.1.10"/>
      <server ipaddress="192.168.1.20"/>
    </servers>
  </system>
  <system name="システムB" mail="user2@example.com">
    <servers>
      <server ipaddress="192.168.2.10"/>
      <server ipaddress="192.168.2.20"/>
      <server ipaddress="192.168.2.30"/>
    </servers>
  </system>
</systems>

XPath:

/systems/system[@name='システムA']/servers/server

属性名:

ipaddress

複数選択:

オフ

区切り文字:

改行

囲み文字:

出力:

192.168.1.10
【例4】変数(SystemName)に、“システムA”が設定されている場合

入力:

<systems>
  <system name="システムA" mail="user1@example.com">
    <servers>
      <server ipaddress="192.168.1.10"/>
      <server ipaddress="192.168.1.20"/>
    </servers>
  </system>
  <system name="システムB" mail="user2@example.com">
    <servers>
      <server ipaddress="192.168.2.10"/>
      <server ipaddress="192.168.2.20"/>
      <server ipaddress="192.168.2.30"/>
    </servers>
  </system>
</systems>

XPath:

/systems/system[@name='@{uda:SystemName}']/servers/server

属性名:

ipaddress

複数選択:

オン

区切り文字:

改行

囲み文字:

出力:

192.168.1.10[改行]
192.168.1.20[改行]