ProductInstance - Inclus, global
L’API ProductInstance fournit des méthodes permettant de générer un identificateur d’instance de produit (PID), de récupérer les données de configuration du PID et de déterminer si une catégorie de modèle est une instance de produit.
Cette API s’exécute dans l’espace de noms sn_cmdb et nécessite le rôle category_manager ou snc_internal. L’accès est également accordé aux utilisateurs disposant de listes de contrôle d’accès (ACL) pour la table Catégorie de modèle [cmdb_model_category]. Vous pouvez afficher les ACL dans la table Table [sys_db_object].
Un PID est un identificateur unique pour une instance de produit qui relie l’actif, l’élément de configuration (CI) et l’élément de base d’installation (IBI) pour synchroniser les mises à jour entre les représentations courantes du produit. Une instance de produit est associée à des actifs d’une catégorie de modèle particulière.
L’accès aux éléments de base d’installation nécessite le module d’extension Customer Service Install Base Management (com.snc.install_base).
ProductInstance – generatePID(String className, String modelCategorySysId, Object jsonKeyValues)
Génère la valeur hachée de l’instance de produit et la renvoie.
Cette méthode peut être invoquée plusieurs fois sans affecter les performances de l’application appelante. Cette méthode ne modifie aucune donnée de la base de données et met en cache les données nécessaires au calcul du PID.
Un identificateur d’instance de produit (PID) est un identificateur unique pour une instance de produit et relie les actifs, les CI et les éléments de base d’installation (IBI).
- Configurations PID (lecture seule)
- Ordre affecté à chaque configuration
| Nom | Type | Description |
|---|---|---|
| Nom de classe | Chaîne | Nom de table du PID à générer. |
| modelCategorySysId (en anglais seulement) | Chaîne | Le sys_id de la catégorie de modèle dans la table Catégories de modèle [cmdb_model_category]. (pour en savoir plus, consultez Model categories) ; |
| jsonKeyValues | Objet | Paire clé-valeur JSON de paramètres PID configurée dans la table Configurations de l’identificateur d’instance de produit [product_instance_identifier_configuration]. Les paires clé-valeur contiennent des noms d’attributs avec leurs valeurs correspondantes. Ces valeurs varient en fonction des propriétés de configuration définies pour le PID. |
| Type | Description |
|---|---|
| Objet | Informations utilisées pour générer le PID. L’objet est renvoyé avec une valeur de propriété product_instance_id vide dans les conditions suivantes :
|
| <Object>.model_category_sysId | Le sys_id de la catégorie de produits dans la table Catégories de modèles [cmdb_model_category]. Cette valeur peut être différente de la valeur d’entrée si la hiérarchie des catégories de modèle a été utilisée pour générer le PID. Type de données : chaîne |
| <Object>.Paramètres | Liste des paramètres utilisés pour générer le PID et définis dans la table Configurations de l’identificateur d’instance de produit [product_instance_identifier_configuration]. Type de données : tableau de chaînes |
| <Object>.product_instance_id | PID dans le champ product_instance_id d’un actif, d’un CI ou d’un élément de base d’installation. La valeur hachée du PID peut être définie sur cette propriété pour synchroniser les valeurs communes dans les objets de l’une des tables suivantes :
Type de données : chaîne |
L’exemple suivant montre comment créer un PID pour un actif dans la table Actifs médicaux [sn_ent_medical_asset]. Cette table est incluse avec le module d’extension Customer Service Install Base Management (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'));
Sortie :
{
"model_category_sysId": "4b8aa89a77710110dd5fca22fe5a9984",
"product_instance_id": "tw8QgznsS4cP3b4U0+rSbnbIWxirYpeVSquk3g81K/8=",
"parameters": [
"serial_number"
]
}
ProductInstance – getPIDConfig(String className, String modelCategorySysId)
Obtient la configuration PID associée à la catégorie de modèle en fonction de la hiérarchie et du nom de classe.
Cette méthode analyse toutes les hiérarchies à la recherche de la catégorie de modèle et renvoie la ou les configurations PID pour la première catégorie de modèle trouvée.
| Nom | Type | Description |
|---|---|---|
| Nom de classe | Chaîne | Nom de table du PID à générer. |
| modelCategorySysId (en anglais seulement) | Chaîne | Le sys_id de la catégorie de modèle dans la table Catégories de modèle [cmdb_model_category]. (pour en savoir plus, consultez Model categories) ; |
| Type | Description |
|---|---|
| Objet | Objet JSON contenant les configurations PID associées au nom de classe et à la catégorie de modèle donnés. |
| <Object>.model_category_sysId | Le sys_id de la catégorie de produits dans la table Catégories de modèles [cmdb_model_category]. Cette valeur peut être différente de la valeur d’entrée si la hiérarchie des catégories de modèle a été utilisée pour générer le PID. Type de données : chaîne |
| <Object>.configs | Liste de chaque configuration associée à la catégorie de modèle donnée.Type de données : tableau |
| <Object>.configs.configuration_order | Renvoie l’ordre de la configuration définie dans la table Paramètres d’identificateur d’instance de produit [product_instance_identifier_parameters]. Type de données : nombre |
| <Object>.configs.parameters | Liste de tous les paramètres associés à la configuration et son ordre.Type de données : tableau d’objets |
| <Object>.configs.parameters.parameter_class_attribute_name | Nom de paramètre associé à la propriété parameter_class_name. Cette chaîne représente le nom de la colonne correspondant à cette classe. Type de données : chaîne |
| <Object>.configs.parameters.parameter_class_name | Nom de classe associé au paramètre défini dans la table Paramètres d’identificateur d’instance de produit [product_instance_identifier_parameters]. Type de données : chaîne |
| <Object>.configs.parameters.parameter_name | Nom de paramètre défini dans la table Paramètres d’identificateur d’instance de produit [product_instance_identifier_parameters]. Type de données : chaîne |
| <Object>.configs.parameters.parameter_order | Ordre du paramètre défini dans la table Paramètres d’identificateur d’instance de produit [product_instance_identifier_parameters]. Type de données : nombre |
L’exemple suivant montre comment récupérer les détails de configuration d’une catégorie de modèle nommée dans la table Actifs médicaux [sn_ent_medical_asset]. Cette table est incluse avec le module d’extension Customer Service Install Base Management (com.snc.install_base).
var config = sn_cmdb.ProductInstance.getPIDConfig('sn_ent_medical_asset', '4b8aa89a77710110dd5fca22fe5a9984');
gs.info(JSON.stringify(config,null,'\t'));
Sortie :
{
"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 (chaîne modelCategorySysId)
Vérifie si une catégorie de modèle donnée est une instance de produit.
- La valeur du marqueur is_model_category de la catégorie de modèle est true.
- La catégorie de modèle a une configuration valide définie dans la table Configurations de l’identificateur d’instance de produit [product_instance_identifier_configuration].
Cette méthode peut être utilisée dans les règles métier avant d’invoquer la méthode generatePID().
| Nom | Type | Description |
|---|---|---|
| modelCategorySysId (en anglais seulement) | Chaîne | Le sys_id de la catégorie de modèle dans la table Catégories de modèle [cmdb_model_category]. (pour en savoir plus, consultez Model categories) ; |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si la catégorie de modèle fournie est une instance de produit. Valeurs valides :
|
L’exemple suivant montre comment déterminer si la catégorie de modèle fournie est une instance de produit.
var isProductInstance = sn_cmdb.ProductInstance.isProductInstance('4b8aa89a77710110dd5fca22fe5a9984');
gs.info(isProductInstance);
Sortie :
true