Instance de produit : dans le champ d’application, global

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 6 minutes de lecture
  • L’API ProductInstance fournit des méthodes pour générer un identificateur d’instance de produit (PID), récupérer les données de configuration PID et 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 avec des 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 d’une instance de produit qui relie l’actif, l’élément de configuration (CI) et un élément de base d’installation (IBI) pour synchroniser les mises à jour entre les représentations de produits courantes. 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 requises pour calculer le PID.

    Un identificateur d’instance de produit (PID) est un identificateur unique d’une instance de produit qui relie les actifs, les CI et les éléments de base d’installation (IBI).

    Un PID est généré en fonction des éléments suivants définis dans la table Configurations des identificateurs d’instances de produits [product_instance_identifier_configuration] :
    • Configurations PID (lecture seule)
    • Ordre affecté à chaque configuration
    Voir aussi Product Instance feature in Hardware Asset Management.
    Tableau 1. Paramètres
    Nom Type Description
    className Chaîne Nom de la table pour le PID à générer.
    modelCategorySysId Chaîne 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 des paramètres PID configurés dans la table Configurations des identificateurs d’instances de produits [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.

    Tableau 2. Renvoie
    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 :
    • Les attributs de configuration PID requis sont manquants dans le PID. La configuration PID se trouve dans la table Configurations des identificateurs d’instances de produits [product_instance_identifier_configuration].
    • La classe donnée n’a pas d’instance de produit associée.
    {
      "model_category_sysId": "String",
      "parameters": [Array],
      "product_instance_id": "String"
    }
    <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 de la catégorie 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 des identificateurs d’instances de produits [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 des objets de l’une des tables suivantes :
    • Actifs [alm_asset]
    • Éléments de configuration [cmdb_ci]
    • Éléments de base d’installation [sn_install_base_item]
    Les éléments de base d’installation nécessitent le module d’extension Gestion de la base d’installation du Service clientèle (com.snc.install_base).

    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 la classe.

    Cette méthode analyse toutes les hiérarchies 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.

    Tableau 3. Paramètres
    Nom Type Description
    className Chaîne Nom de la table pour le PID à générer.
    modelCategorySysId Chaîne 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) ;
    Tableau 4. Renvoie
    Type Description
    Objet Objet JSON contenant les configurations PID associées au nom de classe et à la catégorie de modèle donnés.
    {
      "model_category_sysId": "String",
      "configs": [Array]
    }
    <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 de la catégorie 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.
    
    "configs": [
     {
      "configuration_order": Number,
      "parameters": [Array]
     }
    ]

    Type de données : tableau

    <Object>.configs.configuration_order Renvoie l’ordre de la configuration défini dans la table Paramètres de l’identificateur d’instance de produit [product_instance_identifier_parameters].

    Type de données : nombre

    <Object>.configurations.paramètres Liste de tous les paramètres associés à la configuration et son ordre.
    "parameters": [
      {
       "parameter_class_attribute_name": "String",
       "parameter_class_name": "String",
       "parameter_name": "String",
       "parameter_order": Number
      }
    ]

    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 pour 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.

    Si les deux conditions suivantes sont remplies, la catégorie de modèle est considérée comme une instance de produit :
    • La valeur du marqueur de is_model_category de la catégorie de modèle est vrai.
    • Une configuration valide est définie pour la catégorie de modèle dans la table Configurations des identificateurs d’instances de produits [product_instance_identifier_configuration].

    Cette méthode peut être utilisée dans les règles métier avant d’invoquer la méthode generatePID( ).

    Tableau 5. Paramètres
    Nom Type Description
    modelCategorySysId Chaîne 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) ;
    Tableau 6. Renvoie
    Type Description
    Booléen Marqueur indiquant si la catégorie de modèle fournie est une instance de produit.
    Valeurs valides :
    • vrai : la catégorie de modèle fournie est une instance de produit.
    • false : la catégorie de modèle fournie n’est pas une instance de produit.

    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