API ProductInstance - incluse dans le périmètre, globale
L’API ProductInstance génère un identificateur d’instance de produit (PID), récupère les données de configuration PID et détermine 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 d’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 et relie l’actif, le CI et un é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 aux actifs d’une catégorie de modèle particulière.
Pour accéder aux éléments de base d’installation, vous devez disposer du 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 |
|---|---|---|
| Classname | Chaîne | Nom de table pour lequel le PID doit être généré. |
| modelCategorySysId (ID de catégorie modèle) | Chaîne | sys_id de la catégorie de modèle dans la table Catégories de modèles [cmdb_model_category]. (pour en savoir plus, consultez Model categories) ; |
| jsonKeyValues | Objet | Paire clé-valeur JSON de paramètres PID configurés 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 | sys_id de la catégorie de produit 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 dans 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 catégories de modèles et renvoie la ou les configurations PID pour la première catégorie de modèle trouvée.
| Nom | Type | Description |
|---|---|---|
| Classname | Chaîne | Nom de table pour lequel le PID doit être généré. |
| modelCategorySysId (ID de catégorie modèle) | Chaîne | sys_id de la catégorie de modèle dans la table Catégories de modèles [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 | sys_id de la catégorie de produit 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 du 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 dans 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(String 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 pour elle dans la table Configurations des identificateurs 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 (ID de catégorie modèle) | Chaîne | sys_id de la catégorie de modèle dans la table Catégories de modèles [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