CMDB 共通統合 アプリに含まれる RTE 変換のテンプレートスクリプト

  • リリースバージョン: Xanadu
  • 更新日 2024年08月30日
  • 所要時間:41分
  • 強力な変換エンジン (RTE) による変換は、CMDB 共通統合 (sn_cmdb_int_util) ストアアプリに含まれるテンプレート化された操作です。

    CMDB 共通統合 アプリでは、次のスクリプトベースの RTE 変換を使用できます。

    CI ルックアップ操作

    ソースネイティブキーによって CMDB 内の既存の構成アイテム (CI) のフィールドの値を取得するために使用します。

    詳細
    テーブル 強力な変換エンジンの CI ルックアップ操作 [sn_cmdb_int_util_ci_lookup_operation]
    入力フィールド source_sys_rte_eb_field
    入力順序は次のとおりです。
    1. ディスカバリーソース
    2. ソースネイティブキー
    3. CI フィールド

    この操作では、ソース [sys_object_source] テーブルでディスカバリーソースおよび関連するソースネイティブキーを照会し、ターゲットテーブル内の一致するレコードの CI フィールド値と関連するターゲットの Sys ID を返します。

    出力フィールド target_sys_rte_eb_field

    出力は、ソースネイティブキーのルックアップと一致した CI のフィールド名の値です。一致がない場合は空の文字列になります。

    ソース [sys_object_source] テーブルは、前回のスキャンによるディスカバリーソースとソースネイティブキーの順序を用いて照会されます。テーブルはクエリの結果を反復処理し、有効な CI が見つかるまでターゲット Sys ID でターゲットテーブルを照会します。有効な CI が見つかると、一致する CI の CI フィールドの値が返されます。

    表 : 1.
    ディスカバリーソース ソースネイティブキー CI フィールド 結果
    ServiceNow ServiceNow|||COMPUTER-NAME|||Computer-01 name Computer-01

    会社のクレンジング

    メーカーがモデルまたはソフトウェア (cpu_manufacturer) にリンクされていない場合に、ハードウェアメーカー名をクレンジングし、会社 [core_company] テーブルにレコードを追加して参照を設定するために使用します。

    詳細
    テーブル 強力な変換エンジンエンティティの会社のクレンジング操作 [sn_cmdb_int_util_cleanse_company_operation]
    入力フィールド source_sys_rte_eb_field

    入力は会社/メーカー名です。

    出力フィールド target_sys_rte_eb_field

    出力は、core_company 内の結果の sys_id と会社の名前であり、3 本のパイプ (|||) で連結されます。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationHardwareModelUtil().cleanseCompany(input)

    一致するレコードが存在しない場合は、新しいレコードが core_company に作成されるため、戻り値には常に sys_id と名前が含まれます (入力が空または無効の場合を除く)。名前がクレンジングされ、MakeAndModelJS プラットフォーム API が呼び出される前に、CmdbIntegrationCompanyModelUtil スクリプトインクルードを介してファジールックアップが実行されます。

    表 : 2.
    入力 結果
    SERVICENOW 93d4ecfac0a8000b6294d71b733977fb|||ServiceNow

    ハードウェアモデルのクレンジング

    ハードウェアモデルを作成、クレンジング、またはルックアップして、参照 (model_id) を作成するために使用されます。

    詳細
    テーブル 強力な変換エンジンエンティティのハードウェアモデルのクレンジング操作 [sn_cmdb_int_util_cleanse_hardware_model_operation]
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. メーカー名
    2. モデル名

    いずれかの値が単独で指定されている場合、操作は見つかったものだけを処理します。

    出力フィールド target_sys_rte_eb_field

    出力は、core_company 内の結果の sys_id と会社の名前、および cmdb_model 内の sys_id とモデルの名前であり、すべてが 3 本のパイプ (|||) で連結されます。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationHardwareModelUtil().cleanseModelAndCompany(manufacturer_in, model_in)

    メーカーまたはモデルのどちらかで、一致するレコードが存在しない場合は、新しいレコードが core_company に作成されるため、戻り値には常に sys_id と両方のレコードの名前が含まれます (入力が空または無効の場合を除く)。

    メーカー名は、会社のクレンジング変換のように処理され、メーカー名、モデル名が MakeAndModelJS プラットフォーム API に送信されます。

    表 : 3.
    メーカー名 モデル名 結果
    ServiceNow Incorporated SERVICENOW 93d4ecfac0a8000b6294d71b733977fb|||ServiceNow|||ba29cb303710200044e0bfc8bcbe5d6d |||ServiceNow

    モデル番号でのハードウェアモデルのクレンジング

    ハードウェアモデルを作成、クレンジング、またはルックアップして、参照 (model_id) を作成するために使用されます。

    詳細
    テーブル モデル番号を使用した強力な変換エンジンエンティティのハードウェアモデルのクレンジング操作 [sn_cmdb_int_util_cleanse_hardware_model_number_operation]
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. メーカー名
    2. モデル名
    3. モデル番号
    4. CI クラス
      注:
      [CI クラス] フィールドはオプションの入力フィールドであり、含まれている場合、MakeAndModelJS プラットフォーム API はモデルカテゴリ [cmdb_model_category] テーブルから製品モデルクラスを問い合わせてモデルレコードを取得します。それ以外の場合、API はハードウェアモデル [cmdb_hardware_product_model] テーブルからのみモデルレコードを取得します。

    いずれかの値が単独で指定されている場合、操作は見つかったものだけを処理します。

    出力フィールド target_sys_rte_eb_field

    出力は、core_company 内の結果の sys_id と会社の名前、および cmdb_model 内の sys_id とモデルの名前であり、すべてが 3 本のパイプ (|||) で連結されます。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationHardwareModelUtil().cleanseModelAndCompany(manufacturer_in, model_in)

    メーカーまたはモデルのどちらかで、一致するレコードが存在しない場合は、新しいレコードが core_company に作成されるため、戻り値には常に sys_id と両方のレコードの名前が含まれます (入力が空または無効の場合を除く)。

    メーカー名は、会社のクレンジング変換のように処理され、メーカー名、モデル名およびモデル番号が MakeAndModelJS プラットフォーム API に送信されます。

    表 : 4.
    メーカー名 モデル名 モデル番号 結果
    ServiceNow Incorporated SERVICENOW BC0AA8000C56 93d4ecfac0a8000b6294d71b733977fb|||ServiceNow|||ba29cb303710200044e0bfc8bcbe5d6d |||ServiceNow

    IP アドレスのクレンジング

    フィールドが IP アドレスを提供する場合に使用します。

    詳細
    テーブル 強力な変換エンジンエンティティの IP のクレンジング操作 [sn_cmdb_int_util_cleanse_ip_operation]
    入力フィールド source_sys_rte_eb_field

    入力はクレンジングする IP アドレスです。

    出力フィールド target_sys_rte_eb_field

    出力は結果の IP アドレスで、空の場合もあります。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationNetworkUtil().cleanseIpAddress(input)

    IP アドレスは、いくつかの既知の派生 (ピリオドの代わりにスペースを含む IPv4) とともに、IPv4 と IPv6 の両方の構造についてテストされます。結果が見つかった場合は、フォーマットされて返されます。

    表 : 5.
    IP IP 結果
    192.160.89.1 192.160.89.1
    192.160.89.1、54.21.12.311 192.160.89.1
    192 160 89 1 54 21 12 311 192.160.89.1
    192-160-89-1 192.160.89.1
    2001:0db8:0000:0000:0000:ff00:0042:8329 2001:0db8:0000:0000:0000:ff00:0042:8329
    junk
    175912537 10.124.54.89
    -1
    0

    IP バージョンのクレンジング

    データのソースが IP バージョンを提供していない場合、または IP バージョンが信頼できない場合に使用します。

    詳細
    テーブル 強力な変換エンジンエンティティの IP バージョンのクレンジング操作 [sn_cmdb_int_util_cleanse_ip_version_operation]
    入力フィールド source_sys_rte_eb_field

    入力はクレンジングする IP アドレスです。

    出力フィールド target_sys_rte_eb_field

    出力は、結果の cmdb_ci_ip_address.ip_version ルックアップキー (4、6、または空) です。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationNetworkUtil().deriveIpVersion(input)

    入力 IP アドレス値が適切な IPv4 または IPv6 構造であるかどうかがチェックされます。そうでない場合、戻り値は空になります。この関数は IP クレンジングを提供しません。

    表 : 6.
    入力 結果
    192.160.89.1 4

    MAC アドレスのクレンジング

    フィールドが MAC アドレスを提供する場合に使用します。

    詳細
    テーブル 強力な変換エンジンエンティティの MAC のクレンジング操作 [sn_cmdb_int_util_cleanse_mac_operation]
    入力フィールド source_sys_rte_eb_field

    入力はクレンジングする MAC アドレスです。

    出力フィールド target_sys_rte_eb_field

    出力は結果の MAC アドレスで、空の場合もあります。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationNetworkUtil().cleanseMacAddress(input)

    MAC アドレスは、いくつかの既知の派生とともに適切な構造についてテストされます (たとえば、コロンの代わりにスペースを使用した MAC アドレスなど)。結果が見つかった場合は、フォーマットされて返されます。

    表 : 7.
    入力 結果
    00 0A 95 9D 68 16 00:0a:95:9d:68:16

    オペレーティングシステムのクレンジング

    ソースがオペレーティングシステムの値を提供するときに、オペレーティングシステム名を抽出、クレンジング、およびフォーマットするために使用します。

    詳細
    テーブル 強力な変換エンジンエンティティの OS のクレンジング操作 [sn_cmdb_int_util_cleanse_os_operation]
    入力フィールド source_sys_rte_eb_field

    入力は、クレンジングするオペレーティングシステム名です。

    出力フィールド target_sys_rte_eb_field

    出力は、結果のオペレーティングシステム名です。結果のオペレーティングシステム名は、cmdb_ci_computer.os リストフィールドにも書き込まれます。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationOsUtil().cleanseAndInsertOs(input)

    現在のクレンジングのほとんどは、大文字小文字の修正などの一般的なクレンジングを除いて、Microsoft オペレーティングシステムの値に集中しています。

    表 : 8.
    オペレーティングシステム オペレーティングシステムの結果
    Windows Server 2003 R2 64 bit Edition Service Pack 2 Windows Server 2003 R2
    Windows 2003 Windows 2003
    Windows Vista 64 bit Edition Windows Vista
    Windows 2000 Professional Service Pack 4 Windows 2000 Professional
    Windows XP Service Pack 2-3 Windows XP
    Microsoft Windows Server 2003 R2 64 bit Edition Service Pack 2 Windows Server 2003 R2
    Microsoft Windows 2003 Windows 2003
    Microsoft Windows Vista 64 bit Edition Windows Vista
    Microsoft Windows 2000 Professional Service Pack 4 Windows 2000 Professional
    Microsoft Windows XP Service Pack 2-3 Windows XP
    linux ubuntu Linux Ubuntu
    Linux Ubuntu Server Linux Ubuntu Server

    シリアル番号のクレンジング

    無効なシリアル番号をクレンジングして削除するために使用します。

    詳細
    テーブル 強力な変換エンジンエンティティのシリアル番号のクレンジング操作 [sn_cmdb_int_util_cleanse_serial_number_operation]
    入力フィールド source_sys_rte_eb_fields

    入力はクレンジングするシリアル番号です。

    出力フィールド target_sys_rte_eb_field

    出力は結果のシリアル番号です。

    表 : 9.
    シリアル番号 シリアル番号の結果
    ec2aa2da-5312-aa3e-804c-c35feabeda5f ec2aa2da-5312-aa3e-804c-c35feabeda5f
    1045–1209–6738–4668–7696–2783 1045–1209–6738–4668–7696–2783

    代替値によるシリアル番号のクレンジング 無効な場合の戻り値

    シリアル番号をクレンジングし、クレンジングされたシリアル番号の長さを確認するために使用します。シリアル番号の長さが無効な場合は、代替値を返します。

    詳細
    テーブル 強力な変換エンジンエンティティのシリアル番号のクレンジングと代替値の戻り値 [

    [sn_cmdb_int_util_cleドルanse_serial_number_with_alternate_value_return_if_invalid]

    入力フィールド source_sys_rte_eb_fields

    入力:シリアル番号、代替値

    出力フィールド target_sys_rte_eb_field

    出力:長さが有効な場合はクレンジングされたシリアル番号、それ以外の場合は代替値。

    スクリプトインクルード関数 global.SerialNumberManager().isValid(input)

    この操作では、シリアル番号をクレンジングし、クレンジングされたシリアル番号の長さが sn_cmdb_int_util.minimum_valid_serial_number_length システムプロパティで指定された値以上かどうかを確認します。プロパティのデフォルト値は 7 に設定されています。

    IMEI 番号を代替値でクレンジングし、無効な場合は

    IMEI 番号をクレンジングし、クレンジングされた IMEI 番号の長さを確認するために使用します。IMEI 番号の長さが無効な場合は、代替値を返します。

    詳細
    テーブル 強力な変換エンジンエンティティの代替値による IMEI のクレンジング return if inval [

    [sn_cmdb_int_util_cleanse_imei_with_alternate_value_return_if_invalid]

    入力フィールド source_sys_rte_eb_fields

    入力:IMEI番号、代替値

    出力フィールド target_sys_rte_eb_field

    出力:長さが有効な場合はIMEI番号、それ以外の場合は代替値。

    スクリプトインクルード関数 なし

    この操作では、IMEI番号をクレンジングし、クレンジングされたIMEI番号の長さが sn_cmdb_int_util.valid_imei_number_length システムプロパティで指定された値と等しいかどうかを確認します。プロパティのデフォルト値は 15 に設定されています。

    ソフトウェアモデルのクレンジング

    ソフトウェアモデルをクレンジングして作成するために使用します。また、メーカーとソフトウェアモデルが存在しない場合は作成し、分割操作を実行します。

    詳細
    テーブル 強力な変換エンジンエンティティのソフトウェアモデルのクレンジング操作 [sn_cmdb_int_util_cleanse_software_model_operation]
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. メーカー名
    2. ソフトウェア名
    3. ソフトウェアバージョン (必須ではありません)

    メーカーまたは名前のみが指定されている場合は、それらの値のみが処理されて返されます。

    出力フィールド target_sys_rte_eb_field

    出力は、core_company 内の結果の sys_id と会社の名前、およびクレンジングされたソフトウェア名、クレンジングされたソフトウェアのバージョンであり、すべてが 3 本のパイプ (|||) で連結されます。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationSoftwareModelUtil().cleanseSoftwareModel(company, model, version)

    一致するメーカーレコードが存在しない場合は、レコードが作成されるため、戻り値には常に sys_id とメーカーの名前が含まれます (メーカーが空または無効ではない場合)。

    メーカー名は、会社のクレンジング変換のように処理され、メーカー名が MakeAndModelJS プラットフォーム API に送信されます。

    ソフトウェア名とバージョンがクレンジングされ、フォーマットされて返されます。バージョンは、存在する場合はソフトウェア名から削除されます。

    表 : 10.
    メーカー ソフトウェア名 ソフトウェアバージョン 結果
    Dell Inc.
    NoManufacturer
    1.0.0.0
    Dell Inc. DataEngine 1.0.17.2 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||DataEngine|||1.0.17.2
    GenuineIntel TestSoftware 1.0.0.1 7aad6d00c611228400f00e0f80b67d2d|||Intel|||TestSoftware|||1.0.0.1
    Dell Inc. TestSoftware 232 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||TestSoftware|||232
    Dell Inc. TestSoftware 123.0.0.0 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||TestSoftware|||123.0
    America Online TestSoftware 1.0.0.0 0c43d035c61122750000251553f6f8e8|||America Online|||TestSoftware|||1.0
    America Online TestSoftware 1.0.0.0 0c43d035c61122750000251553f6f8e8|||America Online|||TestSoftware|||1.0
    dell LowerCase 1.0.0.0 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||LowerCase|||1.0

    Dell Corporation.

    Incorporated, Corp.

    TestSoftware 1.0.0.0 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||TestSoftware|||1.0
    Microsoft

    Microsoft SQL

    Server 2016 Enterprise

    2.0.0 0e8b8e650a0a0b3b004f285ffbb1a4fc|||Microsoft|||Microsoft SQL Server 2016 Enterprise|||2.0
    Dell Computer DataEngine 1.0.17.2 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||DataEngine|||1.0.17.2
    Adobe TestSoftware 1 b7e8b5c4c0a80169008b49e468920048|||Adobe Systems|||TestSoftware|||1.0

    ソフトウェアインスタンス名の作成

    新しいソフトウェアインスタンス名を作成するために、ハードウェア名、ソフトウェア名、およびソフトウェアバージョンが指定されている場合に使用します。
    詳細
    テーブル 強力な変換エンジンエンティティのソフトウェアインスタンス名の作成操作 [sn_cmdb_int_util_cleanse_software_model_operation]
    入力フィールド source_sys_rte_eb_fields

    入力順序は次のとおりです。

    1. ハードウェア名
    2. ソフトウェア名
    3. ソフトウェアバージョン (必須ではありません)
    出力フィールド target_sys_rte_eb_field

    出力はソフトウェアインスタンス名です。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationSoftwareModelUtil().createSoftwareInstanceName(hw_name_in, sw_name_in, sw_version_in)
    表 : 11.
    ハードウェア名 ソフトウェア名 ソフトウェアバージョン 結果
    computer1 microsoft 2.0.1 microsoft 2.0.1-computer1
    computer2 adobe adobe-computer2
    computer3 adobe 2.1 adobe 2.1-computer3
    hw2 sw3 301 sw3 301-hw2

    CI クラスをモデルから導出

    コンピューターレコードを処理し、モデルが提供されていても、それ以外にコンピューターのクラスがあいまいな場合に使用します。他の CI クラスを導出変換と一緒に使用できます。

    詳細
    テーブル 強力な変換エンジンエンティティのモデルからのクラスの導出操作 [sn_cmdb_int_util_derive_class_from_model_operation]
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. モデル名
    2. クラス名
    出力フィールド target_sys_rte_eb_field

    出力は、結果のクラス名です。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationClassUtil().deriveClassNameFromModelInput(model_in, class_in)

    指定された入力クラスよりもクラス階層の上位にあるクラス (親クラス) の値を返しません。たとえば、入力が cmdb_ci_server の場合、cmdb_ci_computer を返しません。cmdb_ci_computer 階層のみで、cmdb_ci_server (cmdb_ci_computer、cmdb_ci_server、cmdb_ci_server の子) を調べます。

    現在、モデル内のサーバー、Windows サーバー、および Linux サーバーインジケーターを探します。

    表 : 12.
    モデル クラス クラス結果
    Windows サーバー cmdb_ci_computer cmdb_ci_win_server
    Microsoft サーバー cmdb_ci_computer cmdb_ci_win_server
    linux サーバー cmdb_ci_computer cmdb_ci_linux_server
    Microsoft サーバー cmdb_ci_server cmdb_ci_win_server
    linux サーバー cmdb_ci_server cmdb_ci_linux_server
    Red hat サーバー cmdb_ci_server cmdb_ci_linux_server
    Arch サーバー cmdb_ci_server cmdb_ci_linux_server
    Centos サーバー cmdb_ci_server cmdb_ci_linux_server
    Debian サーバー cmdb_ci_server cmdb_ci_linux_server
    Fedora サーバー cmdb_ci_server cmdb_ci_linux_server
    Suse サーバー cmdb_ci_server cmdb_ci_linux_server
    Oracle サーバー cmdb_ci_server cmdb_ci_linux_server
    Rhel サーバー cmdb_ci_server cmdb_ci_linux_server
    Ubuntu サーバー cmdb_ci_server cmdb_ci_linux_server
    Junk
    cmdb_ci_server cmdb_ci_server
    Junk サーバー cmdb_ci_computer cmdb_ci_server
    Junk cmdb_ci_computer cmdb_ci_computer

    ネイティブクラス識別子から CI クラスを導出

    コンピューターレコードを処理し、ネイティブクラスインジケーターが提供されていても、それ以外にコンピューターのクラスがあいまいな場合に使用します。他の CI クラスを導出変換と一緒に使用できます。

    詳細
    テーブル 強力な変換エンジンエンティティのネイティブ値からのクラスの導出操作 [sn_cmdb_int_util_derive_class_from_native_value_operation]
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. ネイティブクラス識別子
    2. クラス名
    出力フィールド target_sys_rte_eb_field

    出力は、結果のクラス名です。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationClassUtil().deriveClassNameFromNativeValue(native_id_in, class_in)

    指定された入力クラスよりもクラス階層の上位にあるクラス (親クラス) の値を返しません。たとえば、入力が cmdb_ci_server の場合、cmdb_ci_computer を返しません。cmdb_ci_computer 階層のみで、cmdb_ci_server (cmdb_ci_computer、cmdb_ci_server、cmdb_ci_server の子) を調べます。

    現在、ネイティブ識別子内のサーバー、Windows サーバー、および Linux サーバーインジケーターを探します。

    表 : 13.
    ネイティブクラス クラス クラス結果
    Windows サーバー cmdb_ci_computer cmdb_ci_win_server
    Microsoft サーバー cmdb_ci_computer cmdb_ci_win_server
    linux サーバー cmdb_ci_computer cmdb_ci_linux_server
    Microsoft サーバー cmdb_ci_server cmdb_ci_win_server
    linux サーバー cmdb_ci_server cmdb_ci_linux_server
    Red hat サーバー cmdb_ci_server cmdb_ci_linux_server
    Arch サーバー cmdb_ci_server cmdb_ci_linux_server
    Centos サーバー cmdb_ci_server cmdb_ci_linux_server
    Debian サーバー cmdb_ci_server cmdb_ci_linux_server
    Fedora サーバー cmdb_ci_server cmdb_ci_linux_server
    Suse サーバー cmdb_ci_server cmdb_ci_linux_server
    Oracle サーバー cmdb_ci_server cmdb_ci_linux_server
    Rhel サーバー cmdb_ci_server cmdb_ci_linux_server
    Ubuntu サーバー cmdb_ci_server cmdb_ci_linux_server
    Junk
    cmdb_ci_server cmdb_ci_server
    Junk サーバー cmdb_ci_computer cmdb_ci_server
    Junk cmdb_ci_computer cmdb_ci_computer

    オペレーティングシステムから CI クラスを導出

    コンピューターレコードを処理し、オペレーティングシステムが提供されていても、それ以外にコンピューターのクラスがあいまいな場合に使用します。他の CI クラスを導出変換と一緒に使用できます。

    詳細
    テーブル 強力な変換エンジンエンティティの OS からのクラスの導出操作 [sn_cmdb_int_util_derive_class_from_os_operation]
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. オペレーティングシステム名
    2. クラス名
    出力フィールド target_sys_rte_eb_field

    出力は、結果のクラス名です。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationClassUtil().deriveClassNameFromOsName(os_in, class_in)

    指定された入力クラスよりもクラス階層の上位にあるクラス (親クラス) の値を返しません。たとえば、入力が cmdb_ci_server の場合、cmdb_ci_computer を返しません。cmdb_ci_computer 階層のみで、cmdb_ci_server (cmdb_ci_computer、cmdb_ci_server、cmdb_ci_server の子) を調べます。

    現在、オペレーティングシステム名のサーバー、Windows サーバー、および Linux サーバーインジケーターを探します。

    表 : 14.
    オペレーティングシステム クラス クラス結果
    Windows サーバー cmdb_ci_computer cmdb_ci_win_server
    Microsoft サーバー cmdb_ci_computer cmdb_ci_win_server
    linux サーバー cmdb_ci_computer cmdb_ci_linux_server
    Microsoft サーバー cmdb_ci_server cmdb_ci_win_server
    linux サーバー cmdb_ci_server cmdb_ci_linux_server
    Red hat サーバー cmdb_ci_server cmdb_ci_linux_server
    Arch サーバー cmdb_ci_server cmdb_ci_linux_server
    Centos サーバー cmdb_ci_server cmdb_ci_linux_server
    Debian サーバー cmdb_ci_server cmdb_ci_linux_server
    Fedora サーバー cmdb_ci_server cmdb_ci_linux_server
    Suse サーバー cmdb_ci_server cmdb_ci_linux_server
    Oracle サーバー cmdb_ci_server cmdb_ci_linux_server
    Rhel サーバー cmdb_ci_server cmdb_ci_linux_server
    Ubuntu サーバー cmdb_ci_server cmdb_ci_linux_server
    Junk
    cmdb_ci_server cmdb_ci_server
    Junk サーバー cmdb_ci_computer cmdb_ci_server
    Junk cmdb_ci_computer cmdb_ci_computer

    ハードウェアモデルから仮想を導出

    仮想である可能性があるコンピューターレコードを処理し、ハードウェアモデルが提供され、仮想ステータスがあいまいな場合に使用します。他の仮想を導出変換と一緒に使用できます。

    詳細
    テーブル 強力な変換エンジンエンティティのモデルからの仮想の導出操作 [sn_cmdb_int_util_derive_virtual_from_model_operation]
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. ハードウェアモデル名
    2. 現在の仮想フラグ値
    出力フィールド target_sys_rte_eb_field

    出力は、結果の仮想フラグ (true/false) です。現在の仮想フラグが「true」の場合、結果は true です。それ以外の場合、結果は「true」または「false」になります。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationVirtualDetectionUtil().detectVirtualFromModelName(model_in, is_virtual_in)

    仮想デバイス (VMware) のモデル名でインジケーターを検索します。

    表 : 15.
    ハードウェアモデル 仮想フラグ 仮想フラグの結果
    thinkpad true true
    thinkpad false false
    thinkpad false
    vmware Inc true true
    true true
    false false
    false

    ネイティブインジケーターから仮想を導出

    仮想である可能性があるコンピューターレコードを処理し、ソースによって仮想インジケーターが提供され、仮想ステータスがあいまいな場合に使用します。他の仮想を導出変換と一緒に使用できます。

    詳細
    テーブル sn_cmdb_int_util_derive_virtual_from_native_value_operation
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. ネイティブインジケーター
    2. 現在の仮想フラグ値
    出力フィールド target_sys_rte_eb_field

    出力は、結果の仮想フラグ (true/false) です。現在の仮想フラグが「true」の場合、結果は true です。それ以外の場合、結果は「true」または「false」になります。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationVirtualDetectionUtil().detectVirtualFromNativeIdentifier(native_in, is_virtual_in)

    一般的な値のリストに対してネイティブインジケーターをテストし、「true」ブーリアンインジケーターを探します。

    表 : 16.
    ネイティブ仮想値 仮想フラグ 仮想フラグの結果
    virtual false true
    virtual true
    virtual true true
    y false true
    y true
    y true true
    はい false true
    はい true
    はい true true
    true false true
    true true
    true true true
    t false true
    t true
    t true true
    その他 false false
    その他 false
    その他 true true
    not virtual false false
    not virtual false
    not virtual true true
    false false
    false
    true true

    シリアル番号から仮想を導出

    仮想である可能性があるコンピューターレコードを処理し、ソースによってシリアル番号が提供され、仮想ステータスがあいまいな場合に使用します。他の仮想を導出変換と一緒に使用できます。

    詳細
    テーブル sn_cmdb_int_util_derive_virtual_from_serial_number_operation
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. シリアル番号
    2. 現在の仮想フラグ値
    出力フィールド target_sys_rte_eb_field

    出力は、結果の仮想フラグ (true/false) です。現在の仮想フラグが「true」の場合、結果は true です。それ以外の場合、結果は「true」または「false」になります。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationVirtualDetectionUtil().detectVirtualFromSerialNumber (serial_in, is_virtual_in)

    仮想デバイス (VMware) のシリアル番号でインジケーターを検索します。

    表 : 17.
    シリアル番号 仮想フラグ 仮想フラグの結果
    123 true true
    123 false false
    123 false
    vmware-123 true true
    true true
    false false
    false

    単位による抽出とスケール

    ソースに、スケーリングが必要な数値と、2048 Mb などの入力がある数値がある場合に使用します。ソースが常に単位を提供するわけではないため、提供される単位を計算または推測する必要がある場合があります。ターゲット単位は、CMDB のターゲットフィールドによって異なります。指定しない場合、小数点以下の桁数フィールドはデフォルトで 2 に設定されます。

    注:
    このフィールドは大文字と小文字を区別します。
    詳細
    テーブル sn_cmdb_int_util_extract_and_scale_by_units_operation
    入力フィールド source_sys_rte_eb_fields
    出力フィールド target_sys_rte_eb_field
    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationExtractScaleUnitUtil().extractAndScaleUnits(input,defaultUnit,outputUnit,decimalPlaces)
    表 : 18.
    入力値 デフォルトの単位 出力単位 結果
    2048 Mb Mb GB 2 GB
    17179869184 B GB 16 GB

    最初の非 Null 値

    単一のフィールドにマッピングする必要がある類似の情報を提供するフィールドのリストがあり、それらのフィールドがそれらの値を提供できる順序をランク付けしたい場合に使用します。

    たとえば、SolarWinds の内部には、結合されたテーブルの階層があります。1 つの例では、コンピューターの名前は、子のほとんどのテーブルまたはそのテーブルの親のいずれかから取得される可能性がありますが、それぞれがプル内の個別のフィールドになります。最も具体的なテーブルから開始して、name 値の最初のインスタンスの値が検索されます。

    詳細
    テーブル sn_cmdb_int_util_first_non_null_operation
    入力フィールド source_sys_rte_eb_fields

    入力は、任意の長さのフィールドのリストです。

    出力フィールド target_sys_rte_eb_field

    出力は、null (または空の) 値ではない、リスト内の最初のフィールドの値です。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationFirstNonNullValueUtil().firstNonNullValue(batch[i])
    表 : 19.
    フィールド 1 フィールド 2 フィールド 3 結果
    foo foo2 foo

    プロセス名、ドメイン、FQDN、DNS セット

    ソースが名前、ドメイン、FQDN、または DNS 情報を提供する場合に使用します。これらのサブセットにのみ使用できます (たとえば、ソースが名前とドメインのみを提供する場合)。ソースが入力リスト (FQDN) の下位のフィールドのみを提供する場合は、スクリプト操作から CmdbIntegrationHardwareNameUtil スクリプトインクルードを呼び出して、空のダミーフィールドを作成する必要性を最小限に抑えることができます。

    詳細
    テーブル sn_cmdb_int_util_process_name_set_operation
    入力フィールド source_sys_rte_eb_fields
    次の順序で、最大 4 つの入力フィールドを取ります (追加のフィールドは無視されます)。
    1. 名前
    2. ドメイン
    3. FQDN
    4. DNS

    4 つの入力値すべてを指定する必要はありませんが、これらの値は指定された順序で指定する必要があります。たとえば、ドメインのクレンジングのみを行いたい場合は、空の場合でも名前属性を指定する必要があります。

    出力フィールド target_sys_rte_eb_field

    出力は {name}|||{domain}|||{fqdn}|||{dns} のような、同じ順序で連結された値のセットです。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationHardwareNameUtil().processNameDomainFqdnDnsSet(name, domain, fqdn, dns)

    FQDN と DNS が最初に処理され、フォーマットが正しいかどうかが確認されます。FQDN には、次のように (プロパティを介して) 渡す必要がある追加の検出正規表現があります。glide.discovery.fqdn.regex – default : ^([^.]+)\\.((?:[^.]+\\.)+[^.]+)$

    可能であれば、可能な名前とドメインの値が抽出されます。名前とドメインが処理されるときに FQDN がない場合は、可能であれば値が生成されます。結果の名前の値も、次のディスカバリーフラグを使用して変更されます。
    1. glide.discovery.hostname.case – デフォルト:変更なし。「小文字」、「大文字」、「変更なし」に設定できます。
    2. glide.discovery.hostname.include_domain – デフォルト:false。「true」の場合、ドメインが最終的な名前の値に追加されます。
    表 : 20.
    名前 ドメイン FQDN DNS 結果
    myName other.net otherName.other.net mycomp.servicenow.com myName|||other.net|||otherName.other.net|||mycomp.servicenow.com
    na other.net otherName.other.net mycomp.servicenow.com otherName|||other.net|||otherName.other.net|||mycomp.servicenow.com
    servicenow.com |||servicenow.com||||||
    name.servicenow.com name|||servicenow.com|||name.servicenow.com|||name.servicenow.com
    name.servicenow.com name|||servicenow.com|||name.servicenow.com|||
    name.servicenow.com name|||servicenow.com|||name.servicenow.com|||
    name servicenow.com name|||servicenow.com|||name.servicenow.com|||

    プロセス FQDN

    ソースから疑わしい FQDN 値が提供されていても、名前、ドメイン、DNS などの他の名前付けフィールドが提供されていない場合に使用します。

    詳細
    テーブル sn_cmdb_int_util_process_fqdn_operation
    入力フィールド source_sys_rte_eb_field

    入力は、FQDN を含む単一のフィールドです。

    出力フィールド target_sys_rte_eb_field

    出力は {name}|||{domain}|||{fqdn}|||{dns} のような、同じ順序で連結された値のセットです。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationHardwareNameUtil().processNameDomainFqdnDnsSet('’, '’, fqdn, '’)

    処理は、FQDN のみが入力として使用されることを除いて、「プロセス名、ドメイン、FQDN、DNS セット」変換と同じロジックに従います。

    表 : 21.
    入力 結果
    mycomputer.servicenow.com mycomputer|||servicenow.com|||mycomputer.servicenow.com|||

    スケール単位

    ソースにスケーリングが必要な数値入力がある場合に使用します。ソースが常に現在の単位を提供するわけではないため、提供される単位を計算または推測する必要がある場合があります。ターゲット単位は、CMDB でターゲットになっているフィールドによって異なります。

    詳細
    テーブル sn_cmdb_int_util_scale_unit_operation
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. 入力値
    2. 現在の単位
    3. ターゲット単位
    出力フィールド target_sys_rte_eb_field

    出力は、現在の単位からターゲット単位にスケーリングされた入力値です。現在の単位の単位が見つからない場合は、入力値が返されます。現在の単位またはターゲット単位が見つからない場合、入力が出力として返されます。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationScaleUnitUtil().scaleUnits(input_value, input_unit, output_unit)
    表 : 22.
    入力 結果
    • 入力フィールド 1:1
    • 入力フィールド 2:GB
    • 入力フィールド 3:MB
    1024

    ソフトウェアバンドル ID のルックアップ

    Jamf などのソースがソフトウェア公開者を提供していなくても、Mac ソフトウェアバンドル ID を提供している場合に使用します。ソフトウェアバンドル ID のルックアップは、バンドル ID ルックアップ [sn-cmdb_int_util_bundleid_lookup] テーブル内のレコードを bundle_id で検索します。指定された bundle_id のレコードが存在する場合は、それぞれのソフトウェア公開者が抽出されます。それ以外の場合は、ルックアップ Mac ソフトウェアバンドル ID データソースの次回実行時に照会される新しいレコードが作成されます。

    詳細
    テーブル sn_cmdb_int_util_software_bundle_id_lookup_operation
    入力フィールド
    • source_sys_rte_eb_field
    • バンドル ID
    出力フィールド target_sys_rte_eb_field

    出力は、結果として得られるメンバー名、トラック名、および販売者名です。これらはすべて、3 本のパイプ (|||) で連結されます。一致するものが見つからない場合は、空の文字列になります。

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationSoftwareBundleIdLookup. lookupSoftware(bundleId)
    表 : 23.
    入力 結果
    入力フィールド 1:com.microsoft.Word Microsoft Corporation|||Microsoft Word||| Microsoft Corporation

    ユーザールックアップ

    ユーザー [sys_user] テーブル内のユーザーをユーザー名またはメールで検索し、次の順序で照合を試みるために使用します。
    1. user_name 属性に一致するユーザー名
    2. email 属性に一致するメール
    3. 一致するものがない場合は、空を返します。
    詳細
    テーブル sn_cmdb_int_util_user_lookup_operation
    入力フィールド source_sys_rte_eb_fields
    入力順序は次のとおりです。
    1. ユーザー名
    2. メールアドレス (オプション)
    出力フィールド target_sys_rte_eb_field

    sys_user の sysId

    スクリプトインクルード関数 sn_cmdb_int_util.CmdbIntegrationUserLookup. lookupUser(username, email)
    表 : 24.
    入力 結果
    入力フィールド 1:abel.tuter 62826bf03710200044e0bfc8bcbe5df1
    • 入力フィールド 1:atuter
    • 入力フィールド 2:abel.tuter@example.com
    62826bf03710200044e0bfc8bcbe5df1