ProductInstance - スコープ、グローバル
ProductInstance API は、製品インスタンス識別子 (PID) を生成し、PID 構成データを取得し、モデル カテゴリが製品インスタンスであるかどうかを判断するためのメソッドを提供します。
この API は sn_cmdb 名前空間で実行され、category_manager または snc_internal ロールが必要です。モデルカテゴリ [cmdb_model_category] テーブルのアクセス制御リスト (ACL) を持つユーザーにもアクセス権が付与されます。テーブル [sys_db_object] テーブルで ACL を表示できます。
PID は製品インスタンスの一意の識別子であり、資産、構成アイテム (CI)、およびインストールベースアイテム (IBI) をリンクして、一般的な製品表現間で更新を同期します。製品インスタンスは、特定のモデルカテゴリの資産に関連付けられています。
インストールベースアイテムにアクセスするには、カスタマーサービスインストールベース管理 (com.snc.install_base) プラグインが必要です。
ProductInstance – generatePID(String className, String modelCategorySysId, Object jsonKeyValues)
製品インスタンスのハッシュ値を生成して返します。
このメソッドは、呼び出し元アプリケーションのパフォーマンスに影響を与えることなく、何度でも呼び出すことができます。このメソッドは、データベース内のデータを変更せず、PID の計算に必要なデータをキャッシュします。
製品インスタンス識別子 (PID) は、製品インスタンスの一意の識別子であり、資産、CI、およびインストールベースアイテム (IBI) をリンクします。
- PID 構成 (読み取り専用)
- 各構成にアサインされた注文
| 名前 | タイプ | 説明 |
|---|---|---|
| className | 文字列 | 生成する PID のテーブル名。 |
| モデルカテゴリ SysID | 文字列 | モデルカテゴリ [cmdb_model_category] テーブルのモデルカテゴリのsys_id。詳細については、「Model categories」を参照してください。 |
| jsonKeyValue | オブジェクト | 製品インスタンス識別子構成 [product_instance_identifier_configuration] テーブルで構成された PID パラメーターの JSON キーと値のペア。 キーと値のペアには、属性名とそれに対応する値が含まれています。これらの値は、PID に定義された構成プロパティによって異なります。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | PID の生成に使用される情報。 オブジェクトは、次の条件で空のproduct_instance_idプロパティ値を返します。
|
| <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 のハッシュ値をこのプロパティに設定して、次のいずれかのテーブルのオブジェクトの共通値を同期できます。
データタイプ:文字列 |
次の例は、医療資産 [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(String className, String modelCategorySysId)
階層とクラス名に基づいて、モデルカテゴリに関連付けられた PID 構成を取得します。
このメソッドは、モデル カテゴリのすべての階層をスキャンし、最初に見つかったモデル カテゴリの PID 構成を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| className | 文字列 | 生成する PID のテーブル名。 |
| モデルカテゴリ SysID | 文字列 | モデルカテゴリ [cmdb_model_category] テーブルのモデルカテゴリのsys_id。詳細については、「Model categories」を参照してください。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 指定されたクラス名とモデルカテゴリに関連付けられた PID 構成を含む JSON オブジェクト。 |
| <Object>.model_category_sysId | モデルカテゴリ [cmdb_model_category] テーブルの製品カテゴリのsys_id。 モデルカテゴリ階層を使用して PID が生成された場合、この値は入力値とは異なる場合があります。 データタイプ:文字列 |
| <Object>.configs | 指定されたモデルカテゴリに関連付けられている各構成のリスト。データタイプ:アレイ |
| <Object>.configs.configuration_order | 製品インスタンス識別子パラメーター [product_instance_identifier_parameters] テーブルで定義された構成の順序を返します。 データタイプ:数値 |
| <Object>.configs.parameters | 構成とその順序に関連付けられているすべてのパラメーターのリスト。データタイプ:オブジェクトのアレイ |
| <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() メソッドを呼び出す前にビジネスルールで使用できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| モデルカテゴリ SysID | 文字列 | モデルカテゴリ [cmdb_model_category] テーブルのモデルカテゴリのsys_id。詳細については、「Model categories」を参照してください。 |
| タイプ | 説明 |
|---|---|
| ブール | 指定されたモデルカテゴリが製品インスタンスであるかどうかを示すフラグ。 有効な値:
|
次の例は、指定されたモデルカテゴリが製品インスタンスであるかどうかを判断する方法を示しています。
var isProductInstance = sn_cmdb.ProductInstance.isProductInstance('4b8aa89a77710110dd5fca22fe5a9984');
gs.info(isProductInstance);
出力:
true