GlideElementDynamicAttributeStore : global

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 7 minutes de lecture
  • L’API GlideElementDynamicAttributeStore fournit des méthodes de script pratiques pour la gestion des attributs dynamiques dans l’enregistrement Glide actuel. Utilisez ces méthodes conjointement avec l’API GlideRecord pour obtenir et définir des valeurs d’attributs dynamiques définis.

    Pour utiliser cette API afin de créer des attributs dynamiques, vous devez disposer du rôle dynamic_schema_writer. Pour lire des données dynamiques à l’aide de cette API, vous devez disposer du rôle dynamic_schema_reader.

    Cette API étend l’API GlideElement : global .

    Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section Dynamic Schema.

    GlideElementDynamicAttributeStore : getDynamicAttribute(String attributePath)

    Renvoie un objet GlideElementDynamicAttribute représentant l’attribut dynamique situé sur le chemin d’accès de l’attribut dynamique spécifié.

    Tableau 1. Paramètres
    Nom Type Description
    attributePath Chaîne Chemin d’accès de l’attribut à utiliser pour localiser l’attribut de schéma dynamique associé.
    Format : « group_name->attr_name »
    • group_name : nom du groupe auquel l’attribut est associé. Situé dans le champ Nom de la table Groupe d’attributs dynamiques [dynamic_attribute_group] ou dans le champ Groupe de la table Attribut dynamique [dynamic_attribute].
    • attr_name : nom de l’attribut dynamique au sein du groupe dynamique. Situé dans le champ Nom de la table Attribut dynamique [dynamic_attribute].

    Par exemple : « car->color »

    Tableau 2. Renvoie
    Type Description
    Attribut GlideElementDynamicAttribute Objet contenant les attributs dynamiques spécifiés.

    Si le attributePath paramètre contient des informations non valides, renvoie une valeur null.

    L’exemple de code suivant montre comment appeler cette méthode.

    //Gets all the values of the make attribute from the u_inc_dynamic_schema dynamic attribute store column on the incident table
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    while(gr_Inc.next()) {
        var attr = gr.getDynamicAttribute('inc_dynamic_schema->cars->make');
        gs.info(attr.getValue());
    }
    
    //You can also use if(gr_Inc.next()) if you don't want all the values
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    if(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttribute('inc_dynamic_schema->cars->make');
        gs.info(attr.getValue());
    }

    GlideElementDynamicAttributeStore : getDynamicAttributeDisplayValue (String attributePath)

    Renvoie la valeur d’affichage de l’attribut dynamique situé au chemin d’accès d’attribut spécifié dans un magasin d’attributs dynamiques. Si une valeur d’affichage n’est pas disponible, elle renvoie la valeur interne.

    Tableau 3. Paramètres
    Nom Type Description
    attributePath Chaîne Chemin d’accès de l’attribut à utiliser pour localiser l’attribut de schéma dynamique associé.
    Format : « group_name->attr_name »
    • group_name : nom du groupe auquel l’attribut est associé. Situé dans le champ Nom de la table Groupe d’attributs dynamiques [dynamic_attribute_group] ou dans le champ Groupe de la table Attribut dynamique [dynamic_attribute].
    • attr_name : nom de l’attribut dynamique au sein du groupe dynamique. Situé dans le champ Nom de la table Attribut dynamique [dynamic_attribute].

    Par exemple : « car->color »

    Tableau 4. Renvoie
    Type Description
    Objet Valeur de l’attribut dynamique associé dans un format lisible par l’homme.

    Si le attributePath paramètre contient des informations non valides, renvoie une valeur null.

    L’exemple de code suivant montre comment appeler cette méthode.

    //Gets all the display values of the luxury attribute from the inc_dynamic_schema dynamic attribute store column on the incident table
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    while(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttributeDisplayValue('inc_dynamic_schema->cars->luxury');
        gs.info(attr);
    }
    
    //You can also use if(gr.next()) if you don't want all the values
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    
    if(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttributeDisplayValue('inc_dynamic_schema->cars->luxury');
        gs.info(attr);
    }

    GlideElementDynamicAttributeStore : getDynamicAttributeValue(String attributePath)

    Renvoie la valeur interne de l’attribut dynamique pointé par un chemin d’accès d’attribut transmis dans un magasin d’attributs dynamiques.

    Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section Dynamic Schema.

    Tableau 5. Paramètres
    Nom Type Description
    attributePath Chaîne Chemin d’accès de l’attribut à utiliser pour localiser l’attribut de schéma dynamique associé.
    Format : « group_name->attr_name »
    • group_name : nom du groupe auquel l’attribut est associé. Situé dans le champ Nom de la table Groupe d’attributs dynamiques [dynamic_attribute_group] ou dans le champ Groupe de la table Attribut dynamique [dynamic_attribute].
    • attr_name : nom de l’attribut dynamique au sein du groupe dynamique. Situé dans le champ Nom de la table Attribut dynamique [dynamic_attribute].

    Par exemple : « car->color »

    Tableau 6. Renvoie
    Type Description
    Objet Valeur de l’attribut dynamique pointé par le chemin d’accès de l’attribut transmis.

    Si le attributePath paramètre contient des informations non valides, renvoie une valeur null.

    L’exemple de code suivant montre comment appeler cette méthode.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    
    while(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttributeValue('inc_dynamic_schema->cars->luxury');
        gs.info(attr);
    }
    Sortie :
    
    *** Script: 1

    GlideElementDynamicAttributeStore : setDynamicAttributeValue(String attributePath, valeur de l’objet)

    Définit l’attribut pointé par un chemin d’accès d’attribut spécifié dans un magasin d’attributs dynamique à une valeur spécifiée.

    Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section Dynamic Schema.

    Tableau 7. Paramètres
    Nom Type Description
    attributePath Chaîne Chemin d’accès de l’attribut à utiliser pour localiser l’attribut de schéma dynamique associé.
    Format : « group_name->attr_name »
    • group_name : nom du groupe auquel l’attribut est associé. Situé dans le champ Nom de la table Groupe d’attributs dynamiques [dynamic_attribute_group] ou dans le champ Groupe de la table Attribut dynamique [dynamic_attribute].
    • attr_name : nom de l’attribut dynamique au sein du groupe dynamique. Situé dans le champ Nom de la table Attribut dynamique [dynamic_attribute].

    Par exemple : « car->color »

    valide Objet Valeur à définir dans l’attribut spécifié.
    Remarque :
    Pour les attributs dynamiques, seuls les types de données suivants sont pris en charge :
    • Booléen (vrai/faux)
    • Décimal
    • Nombre à virgule flottante
    • Date Glide
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 8. Renvoie
    Type Description
    GlideElementDynamicAttributeStore Renvoie un objet GlideElementDynamicAttributeStore contenant la valeur spécifiée.

    Si le groupAttributePath paramètre contient des informations non valides, l’attribut n’est pas mis à jour.

    L’exemple de code suivant montre comment appeler cette méthode.

    //This simple example inserts a make attribute on the inc_dynamic_schema column where the value of the make attribute is Ford.
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.setDynamicAttributeValue('inc_dynamic_schema->cars->make', 'Ford');
    gr_Inc.insert();

    GlideElementDynamicAttributeStore : setDynamicAttributeValues(valeurs GlideDynamicAttributeStore)

    Définit les valeurs spécifiées dans l’objet GlideElementDynamicAttrbuteStore transmis dans le magasin d’attributs dynamiques de l’élément GlideRecord actuel. Le type de données de l’élément actuel doit être défini sur Magasin d’attributs dynamiques.

    Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section Dynamic Schema.

    Tableau 9. Paramètres
    Nom Type Description
    valeurs GlideDynamicAttributeStore Objet qui contient les valeurs à définir dans le schéma dynamique de l’élément actuel. Les valeurs non spécifiées dans cet objet ne sont pas mises à jour.
    Tableau 10. Renvoie
    Type Description
    GlideElementDynamicAttributeStore Objet GlideElementDynamicAttributeStore mis à jour.

    L’exemple de code suivant montre comment appeler cette méthode.

    var gr_Inc = new GlideRecord('incident');
    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color", "black");
    das.setDynamicAttributeValue("cars->make","Honda");
    das.setDynamicAttributeValue("cars->model","CRV");
    gr_Inc.setDynamicAttributeValues('inc_dynamic_schema', das);
    gr_Inc.insert();

    Cet exemple de code insère ce qui suit dans la colonne u_inc_dynamic_schema :

    {
      "cars" : {
        "color" : "black",
        "make" : "Honda",
        "model" : "CRV"
      }
    }

    GlideElementDynamicAttributeStore : setDynamicAttributeDisplayValue(String attributePath)

    Définit la valeur d’affichage de l’attribut dynamique situé sur un chemin spécifié dans le magasin d’attributs dynamiques de l’élément GlideRecord actuel.

    Tableau 11. Paramètres
    Nom Type Description
    attributePath Chaîne Chemin d’accès de l’attribut à utiliser pour localiser l’attribut de schéma dynamique associé.
    Format : « group_name->attr_name »
    • group_name : nom du groupe auquel l’attribut est associé. Situé dans le champ Nom de la table Groupe d’attributs dynamiques [dynamic_attribute_group] ou dans le champ Groupe de la table Attribut dynamique [dynamic_attribute].
    • attr_name : nom de l’attribut dynamique au sein du groupe dynamique. Situé dans le champ Nom de la table Attribut dynamique [dynamic_attribute].

    Par exemple : « car->color »

    valide Objet Valeur à définir dans l’élément d’attribut dynamique actuel.
    La valeur transmise doit appartenir à l’un des types de données suivants :
    • Booléen (vrai/faux)
    • Décimal
    • Nombre à virgule flottante
    • Date Glide
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 12. Renvoie
    Type Description
    GlideElementDynamicAttributeStore Objet contenant l’élément Glide mis à jour.

    L’exemple de code suivant montre comment appeler cette méthode.

    var grFleet = new GlideRecord('u_car_fleet');
    grFleet.setDynamicAttributeValue('u_dyn_attr_store', 'car->color', 'Yellow');
    grFleet.setDynamicAttributeValue('u_dyn_attr_store', 'car->make', 'Ford');
    var sysId = grFleet.insert();
    gs.info("Inserted: " + grFleet.u_dyn_attr_store);
    
    var daStore = new GlideDynamicAttributeStore();
    daStore.setDynamicAttributeValue('car->color', 'Green');
    daStore.setDynamicAttributeValue('car->model', 'Bronco');
    
    var geDynAttrStore = grFleet.getElement('u_dyn_attr_store');
    geDynAttrStore.setDynamicAttributeDisplayValues(daStore);
    grFleet.update();
    gs.info("Updated:  " + grFleet.u_dyn_attr_store);

    Sortie :

    *** Script: Inserted: {"car":{"color":"Yellow","make":"Ford"}}
    *** Script: Updated:  {"car":{"color":"Green","make":"Ford","model":"Bronco"}}

    L’exemple de code suivant montre comment une valeur d’affichage booléenne est stockée en tant que « 1 » mais est renvoyée en tant que « vrai ».

     var gr_Inc = new GlideRecord('incident');
    gr_Inc.setDynamicAttributeDisplayValue('u_inc_dynamic_schema->u_cars->u_luxury', '1');
    gr_Inc.insert()

    Valeur renvoyée :

    {
      "u_cars" : {
        "u_luxury" : "true"
      }
    }

    GlideElementDynamicAttributeStore : setDynamicAttributeDisplayValues(valeurs GlideDynamicAttributeStore)

    Définit les valeurs d’affichage spécifiées dans l’objet GlideDynamicAttrbuteStore transmis dans les attributs dynamiques de l’élément GlideRecord actuel. Le type de données de l’élément actuel doit être défini sur Magasin d’attributs dynamiques dans la table associée.

    Tableau 13. Paramètres
    Nom Type Description
    valeurs GlideDynamicAttributeStore Objet qui contient les valeurs d’affichage à définir dans le magasin d’attributs dynamiques de l’élément actuel. Les valeurs d’affichage non spécifiées dans cet objet ne sont pas mises à jour. Cet objet doit contenir à la fois le chemin d’accès de l’attribut et la valeur d’affichage de chaque attribut à stocker.
    Par exemple :
    {
      "car":{
        "color":"Blue",
        "make":"Ford",
        "model":"Mustang"
      }
    }
    Tableau 14. Renvoie
    Type Description
    GlideElementDynamicAttributeStore Objet contenant l’élément Glide mis à jour.

    L’exemple de code suivant montre comment appeler cette méthode.

    var daStore = new GlideDynamicAttributeStore();
    daStore.setDynamicAttributeValue('car->make', 'Ford');
    daStore.setDynamicAttributeValue('car->model', 'Mustang');
    daStore.setDynamicAttributeValue('car->color', 'Blue');
    gs.info("daStore: " + daStore);
    
    var gr_Car = new GlideRecord('u_car_fleet');
    gr_Car.query();
    while(gr_Car.next()) {
      var glideElement = gr_Car.getElement('u_dyn_attr_store');
      glideElement.setDynamicAttributeValues(daStore);
      gr_Car.update();
    }