GlideDynamicAttributeStore : global

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 10 minutes de lecture
  • L’API GlideDynamicAttributeStore permet d’accéder à un type de données de magasin d’attributs dynamiques, similaire à d’autres types de données tels que chaîne, date ou date/heure.

    Cette API fournit des méthodes qui vous permettent d’obtenir et de définir des attributs de schéma dynamique dans un objet GlideDynamicAttribute. Ces attributs dynamiques permettent à chaque ligne d’une table de contenir différents champs. Les champs sur lesquels ce type de données est appliqué sont affichés sous forme de dynamic_attribute_store dans la description du type de données de colonne de la table. Pour plus de détails sur les attributs dynamiques, consultez Schéma dynamique.

    Pour utiliser cette API et 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.

    La capture d’écran suivante montre le groupe d’attributs dynamiques et les attributs dynamiques associés qui sont utilisés dans les exemples de code pour cette API. Les attributs définis fournissent un exemple de chacun des types de données pris en charge par l’implémentation du schéma dynamique.
    Configuration des groupes d’attributs dynamiques

    Il existe des méthodes dans cette API qui ont les mêmes fonctionnalités que les méthodes de schéma dynamique dans l’API GlideRecord . Utilisez cette API si vous souhaitez définir le même groupe d’attributs dynamiques sur plusieurs enregistrements. À l’aide de cette API, vous pouvez mettre en lots un objet GlideDynamicAttributeStore avec les attributs souhaités, puis copier cet objet dans plusieurs GlideRecords à l’aide des différentes méthodes setDynamicAttributeValues(). L’utilisation de méthodes de schéma dynamique similaires dans l’API GlideRecord effectue les actions sur un GlideRecord spécifié.

    GlideDynamicAttributeStore : clear()

    Efface tous les attributs et leurs valeurs de l’objet GlideDynamicAttributeStore.

    Tableau 1. Paramètres
    Nom Type Description
    Aucun
    Tableau 2. Renvoie
    Type Description
    Aucun

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg",24.5234);
    das.setDynamicAttributeValue("cars->total_miles",5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.clear();
    gs.info('das: ' + das.getDisplayValue());

    Sortie :

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:29:52",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }
    *** Script: das: null

    GlideDynamicAttributeStore : getDisplayValue()

    Renvoie la représentation de carte JSON des valeurs stockées dans l’objet GlideDynamicAttributeStore actuel.

    Cette méthode renvoie :
    • Valeurs booléennes comme « vrai » et « faux » au lieu de 1 et 0.
    • Valeurs de date/heure dans les paramètres régionaux de l’utilisateur au lieu d’UTC.
    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Chaîne Carte JSON lisible par l’homme des valeurs stockées dans l’objet GlideDynamicAttributeStore. Le contenu de cette chaîne dépend de votre définition de schéma dynamique.

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    Sortie :

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore : getDynamicAttributes()

    Renvoie l’ensemble des définitions d’attributs dynamiques présentes dans le magasin.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    Type Description
    Tableau Tableau contenant tous les attributs dynamiques transitoires et non transitoires présents dans le magasin.
    • Objet GlideDynamicAttribute . Les attributs dynamiques sont définis dans la table Attribut dynamique [dynamic-attribute] avec un type de données et un sys-id.
    • Objet GlideTransientDynamicAttribute . Les attributs dynamiques transitoires sont des attributs dynamiques qui ont été ajoutés à un champ DynamicAttributeStore sans définition dans la table Attribut dynamique [dynamic_attribute]. Les attributs dynamiques transitoires sont traités comme des chaînes et n’ont pas de sys_id.

    L’exemple suivant montre comment récupérer des attributs dynamiques transitoires et non transitoires.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue('a->b', 5);    // transient (adding here)
    das.setDynamicAttributeValue('a->c', 10);   // defined in dynamic_attribute table
    
    var attributes = das.getDynamicAttributes();
    gs.info(attributes);
    
    for (var i = 0; i < attributes.length; i++) {
        var attr = attributes[i];
    	
        gs.info("");
        gs.info("[" + i + "].getPath()      = " + attr.getPath());
        gs.info("[" + i + "].getName()      = " + attr.getName());
        gs.info("[" + i + "].getSysId()     = " + attr.getSysId());
        gs.info("[" + i + "].isTransient()  = " + attr.isTransient());
        gs.info("[" + i + "].getType()      = " + attr.getType());
    }

    Sortie :

    *** Script: a->c,a->b
    *** Script: 
    *** Script: [0].getPath()      = a->c
    *** Script: [0].getName()      = c
    *** Script: [0].getSysId()     = 8bc411a94fc01210b8ddc0e552ce0b3c
    *** Script: [0].isTransient()  = false
    *** Script: [0].getType()      = integer
    *** Script: 
    *** Script: [1].getPath()      = a->b
    *** Script: [1].getName()      = b
    *** Script: [1].getSysId()     = undefined
    *** Script: [1].isTransient()  = true
    *** Script: [1].getType()      = string

    GlideDynamicAttributeStore : getDynamicAttributeValue(String groupAttrPath)

    Renvoie la valeur de l’attribut spécifié dans l’élément de magasin d’attributs dynamiques.

    Tableau 7. Paramètres
    Nom Type Description
    groupAttrPath Chaîne Chemin d’accès d’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é.

      Table : dans le champ Nom de la table Groupe d’attributs dynamiques [dynamic_attribute_group] ou dans le champ Groupe de la table Attributs dynamiques [dynamic_attribute].

    • attr_name : nom de l’attribut dynamique au sein du groupe dynamique.

      Table : dans le champ Nom de la table Attribut dynamique [dynamic_attribute].

    Par exemple : « car->color »

    Tableau 8. Renvoie
    Type Description
    Objet Valeur de l’attribut de schéma dynamique référencé par le chemin d’accès de groupe/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 das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getDynamicAttributeValue(): ' + das.getDynamicAttributeValue("cars->color"));
    gs.info('Value returned by getDynamicAttributeValue(): ' + das.getDynamicAttributeValue("cars->luxury"));
    

    Sortie :

    *** Script: Value returned by getDynamicAttributeValue(): blue
    *** Script: Value returned by getDynamicAttributeValue(): 1

    GlideDynamicAttributeStore : getValue()

    Renvoie la représentation de chaîne compacte du contenu de l’objet GlideDynamicAttributeStore actuel.

    Cette méthode renvoie :
    • Valeurs booléennes comme 1 et 0 au lieu de « vrai » et « faux ».
    • Valeurs de date/heure en UTC au lieu des paramètres régionaux de l’utilisateur.
    Tableau 9. Paramètres
    Nom Type Description
    Aucun
    Tableau 10. Renvoie
    Type Description
    Chaîne Représentation sous forme de chaîne compacte des valeurs stockées dans l’objet GlideDynamicAttributeStore. Le contenu de cette chaîne dépend de votre définition de schéma dynamique.

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    Sortie :

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore : setDisplayValue(valeur d’objet)

    Efface l’objet GlideDynamicAttributeStore actif, puis stocke la carte JSON transmise dans l’objet GlideDynamicAttributeStore.

    D’un point de vue fonctionnel, cette méthode est la même que GlideDynamicAttributeStore : setValue(valeur d’objet), sauf qu’elle suppose que toutes les valeurs de date sont fournies dans les paramètres régionaux de l’utilisateur.

    Tableau 11. Paramètres
    Nom Type Description
    valide Objet Valeur à définir dans l’objet de magasin d’attributs dynamiques actuel.
    La valeur transmise doit être de l’un des types de données suivants :
    • Booléen (vrai/faux)
    • Décimal
    • Nombre à virgule flottante
    • Date GlideDate
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 12. Renvoie
    Type Description
    Aucun

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.setDisplayValue('{"cars":{"luxury":false}}');
    gs.info('das: ' + das.getDisplayValue());

    Sortie :

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5",
        "color" : "blue",
        "cost" : "12000.0",
        "date_purchased" : "2024-04-19 14:16:49",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324.0"
      }
    }
    *** Script: das: {
      "cars" : {
        "luxury" : "false"
      }
    }

    GlideDynamicAttributeStore : setDynamicAttributeDisplayValue(String, groupAttrPath, Object value)

    Définit la valeur de l’attribut dynamique situé sur un chemin d’accès spécifié dans un élément de magasin d’attributs dynamiques.

    Cette méthode fonctionne de la même manière que la GlideDynamicAttributeStore : setDynamicAttributeValue(String, groupAttrPath, Object value) méthode, sauf dans sa gestion des valeurs booléennes et date/heure. Cette méthode suppose que toutes les valeurs de date/heure sont fournies dans les paramètres régionaux de l’utilisateur.

    Tableau 13. Paramètres
    Nom Type Description
    groupAttrPath Chaîne Chemin d’accès d’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é.

      Table : dans le champ Nom de la table Groupe d’attributs dynamiques [dynamic_attribute_group] ou dans le champ Groupe de la table Attributs dynamiques [dynamic_attribute].

    • attr_name : nom de l’attribut dynamique au sein du groupe dynamique.

      Table : 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 GlideDate
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 14. Renvoie
    Type Description
    Objet Objet GlideDynamicAttributeStore mis à jour.

    Si le groupAttrPath paramètre n’est pas valide, la méthode lève une exception IllegalArgumentException.

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeDisplayValue("cars->color","blue");
    das.setDynamicAttributeDisplayValue("cars->make","Toyota");
    das.setDynamicAttributeDisplayValue("cars->model","CRV");
    das.setDynamicAttributeDisplayValue("cars->luxury","true");
    das.setDynamicAttributeDisplayValue("cars->cost",12000.5);
    das.setDynamicAttributeDisplayValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeDisplayValue("cars->total_miles", 5324);    
    das.setDynamicAttributeDisplayValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.setDisplayValue('{"cars":{"luxury":"false"}}');
    gs.info('das: ' + das.getDisplayValue());

    Sortie :

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 10:40:45",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }
    *** Script: das: {
      "cars" : {
        "luxury" : "false"
      }
    }

    GlideDynamicAttributeStore : setDynamicAttributeValue(String, groupAttrPath, Object value)

    Définit l’attribut dynamique référencé par un chemin d’accès de groupe/d’attribut spécifié sur une valeur spécifiée.

    Tableau 15. Paramètres
    Nom Type Description
    groupAttrPath Chaîne Chemin d’accès d’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é.

      Table : dans le champ Nom de la table Groupe d’attributs dynamiques [dynamic_attribute_group] ou dans le champ Groupe de la table Attributs dynamiques [dynamic_attribute].

    • attr_name : nom de l’attribut dynamique au sein du groupe dynamique.

      Table : 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 GlideDate
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 16. Renvoie
    Type Description
    Objet Objet GlideDynamicAttributeStore mis à jour.

    Si le groupAttrPath paramètre n’est pas valide, la méthode lève une exception IllegalArgumentException.

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    Sortie :

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore : setDynamicAttributeValues(Valeur d’objet)

    Définit le stockage JSON interne du champ sur la représentation Chaîne de la valeur transmise. Si la valeur transmise est une autre instance d’un objet GlideDynamicAttributeStore, elle copie les valeurs de cet objet vers l’objet actuel.

    Tableau 17. Paramètres
    Nom Type Description
    valide Objet Objet JSON à stocker en tant que valeur dans le GlideRecord associé. La méthode ignore toutes les valeurs JSON non valides.
    Tableau 18. Renvoie
    Type Description
    Objet Objet GlideDynamicAttributeStore mis à jour.

    L’exemple suivant montre comment stocker des paires attribut/valeur dans un objet GlideDynamicAttributeStore, puis copier ces mêmes valeurs d’un objet à un autre.

    var das = new GlideDynamicAttributeStore();
    var otherValues = new GlideDynamicAttributeStore();
    otherValues.setDynamicAttributeValue("position->x", 5);
    otherValues.setDynamicAttributeValue("position->y", 6);
    
    das.setDynamicAttributeValues(otherValues);
    gs.info(das);

    Sortie :

    {"_position":{"x":"5.0","y":"6.0"}}

    GlideDynamicAttributeStore : setValue(valeur d’objet)

    Efface l’objet GlideDynamicAttributeStore actuel, puis stocke la carte JSON transmise dans cet objet GlideDynamicAttributeStore.

    Cette méthode est fonctionnellement la même, GlideDynamicAttributeStore : setDisplayValue(valeur d’objet) sauf qu’elle suppose que toutes les valeurs de date sont en UTC.

    Tableau 19. Paramètres
    Nom Type Description
    valide Objet Objet de carte JSON à stocker dans l’objet GlideDynamicAttributeStore.

    Par exemple : '{"cars » :{"cost » :"12500"}}'

    Cette méthode ignore toutes les valeurs JSON non valides.
    Tableau 20. Renvoie
    Type Description
    Aucun

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);    
    das.setDynamicAttributeValue("cars->date_purchased", new GlideDateTime());
    gs.info('das: ' + das.getValue());
    das.setValue('{"cars":{"luxury":false}}');
    gs.info('das: ' + das.getValue());

    Sortie :

    *** Script: das: {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":true,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 17:28:47"}}
    *** Script: das: {"cars":{"luxury":false}}

    GlideDynamicAttributeStore : toString()

    Renvoie le contenu de l’objet GlideDynamicAttributeStore sous forme de chaîne.

    Tableau 21. Paramètres
    Nom Type Description
    Aucun
    Tableau 22. Renvoie
    Type Description
    Chaîne Objet GlideDynamicAttribute sous forme de chaîne.

    Par exemple : '{"group » :{"attr2 » :"true »,"attr1 » :"42.0"}}'

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

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000);
    das.setDynamicAttributeValue("cars->avg_mpg",24.5);
    das.setDynamicAttributeValue("cars->total_miles",5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.toString());

    Sortie :

    *** Script: das: {"cars":{"cost":"12000.0","color":"blue","avg_mpg":"24.5","date_purchased":"2024-04-19 14:05:00","luxury":"true","model":"CRV","make":"Toyota","total_miles":"5324.123"}}