GlideDynamicAttribute - Global
The GlideDynamicAttribute API provides access to dynamic attribute metadata.
This API provides methods that enable you to get dynamic schema values defined in the Dynamic Attribute [dynamic_attribute] table. Dynamic attributes have a defined data type and a sys_id. For more details on dynamic attributes, see Dynamic schema.
To use this API to create dynamic attributes you must have the dynamic_schema_writer role. To read dynamic data using this API you must have the dynamic_schema_reader role.
- addAggregate()
- addHaving()
- getDynamicAttributeValue()
- getDynamicAttributeDisplayValue()
- getValue()
- groupBy()
- orderBy()
- orderByAggregate()
- addQuery()
- getDisplayValue()
- getDynamicAttribute()
- getDynamicAttributeDisplayValue()
- getDynamicAttributeValue()
- getValue()
- orderBy()
- orderByDesc()
- setDisplayValue()
- setDynamicAttributeDisplayValue()
- setDynamicAttributeValue()
- setDynamicAttributeValues()
- setValue()
GlideDynamicAttribute - getGroupName()
Gets the value of the group name property of a dynamic attribute object.
As of the Zurich release, dynamic groups have been removed from dynamic schema. For dynamic attributes defined with an associated dynamic attribute group before the Zurich release, this method continues to work for backwards compatibility. Customers are urged to migrate to the current Dynamic Attribute definitions to take advantage of future improvements in features and functionality.
You can use dynamic attributes in dynamic categories to simplify administration and improve the dynamic schema user experience. For more information, see Working with Dynamic Schema.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| String | Value of the dynamic attribute's group name property. |
In the following example, the value of the dynamic attribute object group name is displayed as a.
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 + "].getGroupName() = " + attr.getGroupName());
gs.info("[" + i + "].isTransient() = " + attr.isTransient());
gs.info("[" + i + "].getType() = " + attr.getType());
}
Output:
*** Script: a->c,a->b
*** Script:
*** Script: [0].getPath() = a->c
*** Script: [0].getName() = c
*** Script: [0].getGroupName() = a
*** Script: [0].isTransient() = false
*** Script: [0].getType() = integer
*** Script:
*** Script: [1].getPath() = a->b
*** Script: [1].getName() = b
*** Script: [1].getGroupName() = a
*** Script: [1].isTransient() = true
*** Script: [1].getType() = string
GlideDynamicAttribute - getName()
Gets the value of the name property of a dynamic attribute object.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| String | Value of the dynamic attribute's name property. |
The following example shows how to return the value of the dynamic attribute object name.
var used_car = new GlideDynamicAttributeStore('u_product/u_car_inventory');
used_car.setDynamicAttributeValue('mfg_year', 2014); // transient (adding here)
used_car.setDynamicAttributeValue('u_total_miles', 53246); // defined in dynamic_attribute table
var attributes = used_car.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 + "].getNamespaceName() = " + attr.getNamespaceName());
gs.info("[" + i + "].getNamespacedName() = " + attr.getNamespacedName());
gs.info("[" + i + "].isTransient() = " + attr.isTransient());
gs.info("[" + i + "].getType() = " + attr.getType());
}
Output:
*** Script: mfg_year,u_total_miles
*** Script:
*** Script: [0].getPath() = mfg_year
*** Script: [0].getName() = mfg_year
*** Script: [0].getNamespaceName() = u_product/u_car_inventory
*** Script: [0].getNamespacedName() = u_product/u_car_inventory/mfg_year
*** Script: [0].isTransient() = true
*** Script: [0].getType() = string
*** Script:
*** Script: [1].getPath() = u_total_miles
*** Script: [1].getName() = u_total_miles
*** Script: [1].getNamespaceName() = u_product/u_car_inventory
*** Script: [1].getNamespacedName() = u_product/u_car_inventory/u_total_miles
*** Script: [1].isTransient() = false
*** Script: [1].getType() = integer
GlideDynamicAttribute - getNamespacedName()
Gets the name of a dynamic attribute within its namespace.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| String | Name of the dynamic attribute within its namespace. Format: |
The following example shows how to return the dynamic attribute name within a namespace called u_product/u_car_inventory.
var used_car = new GlideDynamicAttributeStore('u_product/u_car_inventory');
used_car.setDynamicAttributeValue('mfg_year', 2014); // transient (adding here)
used_car.setDynamicAttributeValue('u_total_miles', 53246); // defined in dynamic_attribute table
var attributes = used_car.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 + "].getNamespaceName() = " + attr.getNamespaceName());
gs.info("[" + i + "].getNamespacedName() = " + attr.getNamespacedName());
gs.info("[" + i + "].isTransient() = " + attr.isTransient());
gs.info("[" + i + "].getType() = " + attr.getType());
}
Output:
*** Script: mfg_year,u_total_miles
*** Script:
*** Script: [0].getPath() = mfg_year
*** Script: [0].getName() = mfg_year
*** Script: [0].getNamespaceName() = u_product/u_car_inventory
*** Script: [0].getNamespacedName() = u_product/u_car_inventory/mfg_year
*** Script: [0].isTransient() = true
*** Script: [0].getType() = string
*** Script:
*** Script: [1].getPath() = u_total_miles
*** Script: [1].getName() = u_total_miles
*** Script: [1].getNamespaceName() = u_product/u_car_inventory
*** Script: [1].getNamespacedName() = u_product/u_car_inventory/u_total_miles
*** Script: [1].isTransient() = false
*** Script: [1].getType() = integer
GlideDynamicAttribute - getNamespaceName()
Gets the name of a dynamic attribute namespace.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| String | Name of the dynamic attribute namespace. |
The following example shows how to return the dynamic attribute namespace, u_product/u_car_inventory.
var used_car = new GlideDynamicAttributeStore('u_product/u_car_inventory');
used_car.setDynamicAttributeValue('mfg_year', 2014); // transient (adding here)
used_car.setDynamicAttributeValue('u_total_miles', 53246); // defined in dynamic_attribute table
var attributes = used_car.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 + "].getNamespaceName() = " + attr.getNamespaceName());
gs.info("[" + i + "].getNamespacedName() = " + attr.getNamespacedName());
gs.info("[" + i + "].isTransient() = " + attr.isTransient());
gs.info("[" + i + "].getType() = " + attr.getType());
}
Output:
*** Script: mfg_year,u_total_miles
*** Script:
*** Script: [0].getPath() = mfg_year
*** Script: [0].getName() = mfg_year
*** Script: [0].getNamespaceName() = u_product/u_car_inventory
*** Script: [0].getNamespacedName() = u_product/u_car_inventory/mfg_year
*** Script: [0].isTransient() = true
*** Script: [0].getType() = string
*** Script:
*** Script: [1].getPath() = u_total_miles
*** Script: [1].getName() = u_total_miles
*** Script: [1].getNamespaceName() = u_product/u_car_inventory
*** Script: [1].getNamespacedName() = u_product/u_car_inventory/u_total_miles
*** Script: [1].isTransient() = false
*** Script: [1].getType() = integer
GlideDynamicAttribute - getPath()
Gets the value of the path property of a dynamic attribute object.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| String | Value of the dynamic attribute's path. |
The following example shows how to return the value of the dynamic attribute object path.
var used_car = new GlideDynamicAttributeStore('u_product/u_car_inventory');
used_car.setDynamicAttributeValue('mfg_year', 2014); // transient (adding here)
used_car.setDynamicAttributeValue('u_total_miles', 53246); // defined in dynamic_attribute table
var attributes = used_car.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 + "].getNamespaceName() = " + attr.getNamespaceName());
gs.info("[" + i + "].getNamespacedName() = " + attr.getNamespacedName());
gs.info("[" + i + "].isTransient() = " + attr.isTransient());
gs.info("[" + i + "].getType() = " + attr.getType());
}
Output:
*** Script: mfg_year,u_total_miles
*** Script:
*** Script: [0].getPath() = mfg_year
*** Script: [0].getName() = mfg_year
*** Script: [0].getNamespaceName() = u_product/u_car_inventory
*** Script: [0].getNamespacedName() = u_product/u_car_inventory/mfg_year
*** Script: [0].isTransient() = true
*** Script: [0].getType() = string
*** Script:
*** Script: [1].getPath() = u_total_miles
*** Script: [1].getName() = u_total_miles
*** Script: [1].getNamespaceName() = u_product/u_car_inventory
*** Script: [1].getNamespacedName() = u_product/u_car_inventory/u_total_miles
*** Script: [1].isTransient() = false
*** Script: [1].getType() = integer
GlideDynamicAttribute - getType()
Gets the value of the type property of a dynamic attribute object.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| String | Value of the dynamic attribute's data type. |
In the following example, the value of the dynamic attribute object type is displayed as string for the transient attribute and integer for the non-transient attribute.
var used_car = new GlideDynamicAttributeStore('u_product/u_car_inventory');
used_car.setDynamicAttributeValue('mfg_year', 2014); // transient (adding here)
used_car.setDynamicAttributeValue('u_total_miles', 53246); // defined in dynamic_attribute table
var attributes = used_car.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 + "].getNamespaceName() = " + attr.getNamespaceName());
gs.info("[" + i + "].getNamespacedName() = " + attr.getNamespacedName());
gs.info("[" + i + "].isTransient() = " + attr.isTransient());
gs.info("[" + i + "].getType() = " + attr.getType());
}
Output:
*** Script: mfg_year,u_total_miles
*** Script:
*** Script: [0].getPath() = mfg_year
*** Script: [0].getName() = mfg_year
*** Script: [0].getNamespaceName() = u_product/u_car_inventory
*** Script: [0].getNamespacedName() = u_product/u_car_inventory/mfg_year
*** Script: [0].isTransient() = true
*** Script: [0].getType() = string
*** Script:
*** Script: [1].getPath() = u_total_miles
*** Script: [1].getName() = u_total_miles
*** Script: [1].getNamespaceName() = u_product/u_car_inventory
*** Script: [1].getNamespacedName() = u_product/u_car_inventory/u_total_miles
*** Script: [1].isTransient() = false
*** Script: [1].getType() = integer
GlideDynamicAttribute - isTransient()
Returns whether an object is a transient dynamic attribute.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| Boolean | Flag that indicates if a dynamic attribute is transient. Valid values:
|
In the following example, the isTransient() method returns false for the non-transient object.
var used_car = new GlideDynamicAttributeStore('u_product/u_car_inventory');
used_car.setDynamicAttributeValue('mfg_year', 2014); // transient (adding here)
used_car.setDynamicAttributeValue('u_total_miles', 53246); // defined in dynamic_attribute table
var attributes = used_car.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 + "].getNamespaceName() = " + attr.getNamespaceName());
gs.info("[" + i + "].getNamespacedName() = " + attr.getNamespacedName());
gs.info("[" + i + "].isTransient() = " + attr.isTransient());
gs.info("[" + i + "].getType() = " + attr.getType());
}
Output:
*** Script: mfg_year,u_total_miles
*** Script:
*** Script: [0].getPath() = mfg_year
*** Script: [0].getName() = mfg_year
*** Script: [0].getNamespaceName() = u_product/u_car_inventory
*** Script: [0].getNamespacedName() = u_product/u_car_inventory/mfg_year
*** Script: [0].isTransient() = true
*** Script: [0].getType() = string
*** Script:
*** Script: [1].getPath() = u_total_miles
*** Script: [1].getName() = u_total_miles
*** Script: [1].getNamespaceName() = u_product/u_car_inventory
*** Script: [1].getNamespacedName() = u_product/u_car_inventory/u_total_miles
*** Script: [1].isTransient() = false
*** Script: [1].getType() = integer