API ProductInstance - incluse dans le périmètre, globale

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 6 minutes de lecture
  • 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).

    Un PID est généré en fonction des éléments suivants définis dans la table Configurations de l’identificateur d’instance de produit [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 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.

    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 :
    • Le PID n’a pas les attributs de configuration PID requis. La configuration du PID se trouve dans la table Configurations des identificateurs d’instance de produit [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 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 :
    • 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 Customer Service Install Base Management (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 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.

    Tableau 3. Paramètres
    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) ;
    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 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.
    
    "configs": [
     {
      "configuration_order": Number,
      "parameters": [Array]
     }
    ]

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

    Si les deux conditions suivantes sont remplies, la catégorie de modèle est qualifiée comme 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( ).

    Tableau 5. Paramètres
    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) ;
    Tableau 6. Renvoie
    Type Description
    Booléen Marqueur indiquant si la catégorie de modèle fournie est une instance de produit.
    Valeurs valides :
    • true : 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