GlideDynamicAttributeStore : global

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 9 minutes de lecture
  • L’API GlideDynamicAttributeStore permet d’accéder à un nouveau type de données de magasin d’attributs dynamiques intégré, 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 auxquels ce type de données est appliqué sont affichés comme dynamic_attribute_store dans la description du type de données de colonne de la table. Pour plus d’informations sur les attributs dynamiques, reportez-vous à la rubrique Schéma dynamique.

    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.

    La capture d’écran suivante montre le groupe d’attributs dynamiques et les attributs dynamiques associés 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 de schéma dynamique.
    Configuration de 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 créer 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 la carte JSON des valeurs stockées dans l’objet GlideDynamicAttributeStore actuel.

    Cette méthode renvoie :
    • Les valeurs booléennes sont « vrai » et « faux » au lieu de 1 et 0.
    • Valeurs date/heure dans les paramètres régionaux de l’utilisateur au lieu de 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 la définition de votre 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 : getDynamicAttributeValue(String groupAttrPath)

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

    Tableau 5. Paramètres
    Nom Type Description
    groupAttrPath (en anglais seulement) 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 de schéma dynamique référencé par le chemin d’accès du 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 :
    • Les valeurs booléennes sont 1 et 0 au lieu de « vrai » et « faux ».
    • Valeurs date/heure en UTC au lieu des paramètres régionaux de l’utilisateur.
    Tableau 7. Paramètres
    Nom Type Description
    Aucun
    Tableau 8. Renvoie
    Type Description
    Chaîne Représentation de chaîne compacte des valeurs stockées dans l’objet GlideDynamicAttributeStore. Le contenu de cette chaîne dépend de la définition de votre 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 de l’objet)

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

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

    Tableau 9. Paramètres
    Nom Type Description
    valide Objet Valeur à définir dans l’objet du magasin d’attributs dynamiques 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 10. 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, valeur de l’objet)

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

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

    Tableau 11. Paramètres
    Nom Type Description
    groupAttrPath (en anglais seulement) 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 12. 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, valeur de l’objet)

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

    Tableau 13. Paramètres
    Nom Type Description
    groupAttrPath (en anglais seulement) 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 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.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 de l’objet)

    Définit le stockage JSON interne du champ sur la représentation sous forme de 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 15. 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 16. Renvoie
    Type Description
    Objet Objet GlideDynamicAttributeStore mis à jour.

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

    var das = new GlideDynamicAttributeStore();
    var otherValues = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValues(otherValues); 

    GlideDynamicAttributeStore : setValue(valeur de l’objet)

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

    D’un point de vue fonctionnel, cette méthode est la même, GlideDynamicAttributeStore : setDisplayValue (valeur de l’objet) sauf qu’elle suppose que toutes les valeurs de date sont en UTC.

    Tableau 17. 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 18. Renvoie
    Type Description
    nul

    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 19. Paramètres
    Nom Type Description
    Aucun
    Tableau 20. Renvoie
    Type Description
    Chaîne 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"}}