ProductInstance - スコープ対象、グローバル

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:11分
  • ProductInstance API は、製品インスタンス識別子 (PID) を生成し、PID 構成データを取得し、モデル カテゴリが製品インスタンスであるかどうかを判断するメソッドを提供します。

    この API は sn_cmdb 名前空間で実行され、category_manager または snc_internal ロールが必要です。モデルカテゴリ [cmdb_model_category] テーブルのアクセス制御リスト (ACL) を持つユーザーにもアクセス権が付与されます。ACL はテーブル [sys_db_object] テーブルで表示できます。

    PID は製品インスタンスの一意の識別子であり、資産、構成アイテム (CI)、およびインストールベースアイテム (IBI) をリンクして、共通の製品表現間で更新を同期します。製品インスタンスは、特定のモデルカテゴリの資産に関連付けられています。

    インストールベースアイテムにアクセスするには、カスタマーサービスインストールベース管理 (com.snc.install_base) プラグインが必要です。

    ProductInstance – generatePID(文字列 className, 文字列 modelCategorySysId, オブジェクト jsonKeyValues)

    製品インスタンスのハッシュ値を生成して返します。

    このメソッドは、呼び出し元アプリケーションのパフォーマンスに影響を与えることなく、何度でも呼び出すことができます。このメソッドは、データベース内のデータを変更せず、PID の計算に必要なデータをキャッシュします。

    製品インスタンス識別子 (PID) は、製品インスタンスの一意の識別子であり、資産、CI、およびインストールベースアイテム (IBI) をリンクします。

    PID は、製品インスタンス識別子構成 [product_instance_identifier_configuration] テーブルで定義されている次の項目に基づいて生成されます。
    • PID 設定 (読み取り専用)
    • 各構成にアサインされる順序
    Product Instance feature in Hardware Asset Management」も参照してください。
    表 : 1. パラメーター
    名前 タイプ 説明
    className 文字列 生成する PID のテーブル名。
    モデルカテゴリ SysID 文字列 モデルカテゴリ [cmdb_model_category] テーブルのモデルカテゴリのsys_id。詳細については、「Model categories」を参照してください。
    jsonKeyValue オブジェクト 製品インスタンス識別子構成 [product_instance_identifier_configuration] テーブルで構成された PID パラメーターの JSON キーと値のペア。

    キーと値のペアには、属性名とそれに対応する値が含まれます。これらの値は、PID に対して定義された構成プロパティによって異なります。

    表 : 2. 返される内容
    タイプ 説明
    オブジェクト PID の生成に使用される情報。
    オブジェクトは、次の条件で空のproduct_instance_idプロパティ値を返します。
    • PID に必要な PID 構成属性がありません。PID 構成は、製品インスタンス識別子構成 [product_instance_identifier_configuration] テーブルにあります。
    • 指定されたクラスには製品インスタンスが関連付けられていません。
    {
      "model_category_sysId": "String",
      "parameters": [Array],
      "product_instance_id": "String"
    }
    <Object>.model_category_sysId モデルカテゴリ [cmdb_model_category] テーブルの製品カテゴリのsys_id。

    モデル カテゴリ階層を使用して PID を生成した場合、この値は入力値とは異なる可能性があります。

    データタイプ:文字列

    <Object>。パラメーター PID の生成に使用され、製品インスタンス識別子構成 [product_instance_identifier_configuration] テーブルで定義されたパラメーターのリスト。

    データタイプ:文字列のアレイ

    <Object>.product_instance_id 資産、CI、またはインストールベースアイテムのproduct_instance_idフィールドの PID。
    PID のハッシュ値をこのプロパティに設定して、次のいずれかのテーブルのオブジェクト内の共通値を同期できます。
    • 資産 [alm_asset]
    • 構成アイテム [cmdb_ci]
    • インストールベースアイテム [sn_install_base_item]
    インストールベースアイテムには、カスタマーサービスインストールベース管理 (com.snc.install_base) プラグインが必要です。

    データタイプ:文字列

    次の例は、医療資産 [sn_ent_medical_asset] テーブルの資産の PID を作成する方法を示しています。このテーブルは、カスタマーサービスインストールベース管理 (com.snc.install_base) プラグインに含まれています。

    var output = sn_cmdb.ProductInstance.generatePID('sn_ent_medical_asset', '4b8aa89a77710110dd5fca22fe5a9984', { "serial_number" : "SN1001"});
    gs.info(JSON.stringify(output,null,'\t'));

    出力:

    {
      "model_category_sysId": "4b8aa89a77710110dd5fca22fe5a9984",
      "product_instance_id": "tw8QgznsS4cP3b4U0+rSbnbIWxirYpeVSquk3g81K/8=",
      "parameters": [
        "serial_number"
      ]
    }

    ProductInstance – getPIDConfig(文字列 className, 文字列 modelCategorySysId)

    階層とクラス名に基づいて、モデルカテゴリに関連付けられた PID 構成を取得します。

    このメソッドは、モデルカテゴリのすべての階層をスキャンし、最初に見つかったモデルカテゴリのPID構成を返します。

    表 : 3. パラメーター
    名前 タイプ 説明
    className 文字列 生成する PID のテーブル名。
    モデルカテゴリ SysID 文字列 モデルカテゴリ [cmdb_model_category] テーブルのモデルカテゴリのsys_id。詳細については、「Model categories」を参照してください。
    表 : 4. 返される内容
    タイプ 説明
    オブジェクト 指定されたクラス名とモデルカテゴリに関連付けられた PID 構成を含む JSON オブジェクト。
    {
      "model_category_sysId": "String",
      "configs": [Array]
    }
    <Object>.model_category_sysId モデルカテゴリ [cmdb_model_category] テーブルの製品カテゴリのsys_id。

    モデル カテゴリ階層を使用して PID を生成した場合、この値は入力値とは異なる可能性があります。

    データタイプ:文字列

    <Object>.config 特定のモデルカテゴリに関連付けられている各構成のリスト。
    
    "configs": [
     {
      "configuration_order": Number,
      "parameters": [Array]
     }
    ]

    データタイプ:アレイ

    <Object>.configs.configuration_order 製品インスタンス識別子パラメーター [product_instance_identifier_parameters] テーブルで定義された構成の順序を返します。

    データタイプ:数値

    <Object>.configs.parameters 構成とその順序に関連付けられているすべてのパラメーターのリスト。
    "parameters": [
      {
       "parameter_class_attribute_name": "String",
       "parameter_class_name": "String",
       "parameter_name": "String",
       "parameter_order": Number
      }
    ]

    データタイプ:オブジェクトのアレイ

    <Object>.configs.parameters.parameter_class_attribute_name parameter_class_nameプロパティに関連付けられたパラメーター名。この文字列は、そのクラスに対応する列の名前を表します。

    データタイプ:文字列

    <Object>.configs.parameters.parameter_class_name 製品インスタンス識別子パラメーター [product_instance_identifier_parameters] テーブルで定義されたパラメーターに関連付けられたクラス名。

    データタイプ:文字列

    <Object>.configs.parameters.parameter_name 製品インスタンス識別子パラメーター [product_instance_identifier_parameters] テーブルで定義されたパラメーター名。

    データタイプ:文字列

    <Object>.configs.parameters.parameter_order 製品インスタンス識別子パラメーター [product_instance_identifier_parameters] テーブルで定義されたパラメーターの順序。

    データタイプ:数値

    次の例は、医療資産 [sn_ent_medical_asset] テーブル内の で名前が付けられているモデルカテゴリの構成の詳細を取得する方法を示しています。このテーブルは、カスタマーサービスインストールベース管理 (com.snc.install_base) プラグインに含まれています。

    var config = sn_cmdb.ProductInstance.getPIDConfig('sn_ent_medical_asset', '4b8aa89a77710110dd5fca22fe5a9984');
    gs.info(JSON.stringify(config,null,'\t'));

    出力:

    {
      "model_category_sysId": "4b8aa89a77710110dd5fca22fe5a9984",
      "configs": [
        {
          "parameters": [
            {
              "parameter_class_attribute_name": "serial_number",
              "parameter_class_name": "sn_ent_medical_asset",
              "parameter_name": "serial_number",
              "parameter_order": 1
            }
          ],
          "configuration_order": 100
        },
        {
          "parameters": [
            {
              "parameter_class_attribute_name": "parent",
              "parameter_class_name": "sn_ent_medical_asset",
              "parameter_name": "parent_asset",
              "parameter_order": 1
            },
            {
              "parameter_class_attribute_name": "model_component_id",
              "parameter_class_name": "sn_ent_medical_asset",
              "parameter_name": "model_component_id",
              "parameter_order": 2
            }
          ],
          "configuration_order": 200
        }
      ]
    }

    ProductInstance – isProductInstance(文字列 modelCategorySysId)

    指定されたモデルカテゴリが製品インスタンスかどうかを確認します。

    次の両方の条件が満たされている場合、モデルカテゴリは製品インスタンスとして認定されます。
    • モデルカテゴリのis_model_categoryフラグの値は true です。
    • モデルカテゴリには、製品インスタンス識別子構成 [product_instance_identifier_configuration] テーブルで有効な構成が定義されています。

    このメソッドは、 generatePID() メソッドを呼び出す前にビジネスルールで使用できます。

    表 : 5. パラメーター
    名前 タイプ 説明
    モデルカテゴリ SysID 文字列 モデルカテゴリ [cmdb_model_category] テーブルのモデルカテゴリのsys_id。詳細については、「Model categories」を参照してください。
    表 : 6. 返される内容
    タイプ 説明
    ブール 提供されたモデルカテゴリが製品インスタンスであるかどうかを示すフラグ。
    有効な値:
    • true:提供されるモデルカテゴリは製品インスタンスです。
    • false:指定されたモデルカテゴリは製品インスタンスではありません。

    次の例は、提供されたモデルカテゴリが製品インスタンスかどうかを判断する方法を示しています。

    var isProductInstance =  sn_cmdb.ProductInstance.isProductInstance('4b8aa89a77710110dd5fca22fe5a9984');
    gs.info(isProductInstance);

    出力:

    true