---
sourceDocument: Australia API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/api-reference

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideElementDescriptor - Scoped, Global

# GlideElementDescriptor - Scoped, Global {#ariaid-title1}

Release version: Australia  
Updated March 12, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 5 minutes to read  
The GlideElementDescriptor API provides information about individual fields in a glide record.

There is no constructor for this class. Use the GlideElement or GlideRecord
getED() method to obtain a GlideElementDescriptor object.

## GlideElementDescriptor - getAttachmentEncryptionType() {#ariaid-title2}

Returns the encryption type used for attachments on the element's table.
This method is for use with the Edge Encryption plugin.
{#r_ScopedGlideElementDescriptorGetAttachmentEncyrptionType__table_a3m_cg4_yr__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 1. Parameters]

{#r_ScopedGlideElementDescriptorGetAttachmentEncyrptionType__table_a3m_cg4_yr} {#r_ScopedGlideElementDescriptorGetAttachmentEncyrptionType__table_b3m_cg4_yr__entry__2}

| Type | Description |
|-|-|
| String | The encryption type used on attachments. Returns null if attachments on the element's table are not being encrypted. |
[Table 2. Returns]

{#r_ScopedGlideElementDescriptorGetAttachmentEncyrptionType__table_b3m_cg4_yr}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');

    var field = grInc.getElement('priority');
    var ed = field.getED();

    var isEdge = ed.getAttachmentEncryptionType();
    gs.info(isEdge);

Output:

    null

## GlideElementDescriptor - getEncryptionType() {#ariaid-title3}

Returns the element's encryption type.
This method is for use with the Edge Encryption plugin.
{#r_ScopedGlideElementDescriptorGetEncryptionType__table_icz_j24_yr__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 3. Parameters]

{#r_ScopedGlideElementDescriptorGetEncryptionType__table_icz_j24_yr} {#r_ScopedGlideElementDescriptorGetEncryptionType__table_jcz_j24_yr__entry__2}

| Type | Description |
|-|-|
| String | The element's encryption type. Returns null if the element is not encrypted. |
[Table 4. Returns]

{#r_ScopedGlideElementDescriptorGetEncryptionType__table_jcz_j24_yr}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');

    var field = grInc.getElement('priority');
    var ed = field.getED();

    sEdge = ed.getEncryptionType();
    gs.info(isEdge);

Output:

    null

## GlideElementDescriptor - getInternalType() {#ariaid-title4}

Returns the element's internal data type.
{#r_ScopedGlideElementDescriptorGetInternalType__table_rcc_gv3_yr__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 5. Parameters]

{#r_ScopedGlideElementDescriptorGetInternalType__table_rcc_gv3_yr} {#r_ScopedGlideElementDescriptorGetInternalType__table_scc_gv3_yr__entry__2}

| Type | Description |
|-|-|
| String | The element's internal data type. Possible values: * boolean * char * collection * conditions * date * decimal * documentation_field * domain_id * due_date * email * field_name * file_attachment * float * glide_date * glide_date_time * glide_duration * glide_list * GUID * html * image * integer * long * longint * multi_two_lines * journal * journal_input * numeric * order_index * password * ph_number * reference * script * script_plain * string * sys_class_name * table_name * template_value * timer * translated_field * url * user_image * user_input * user_roles * video * workflow {#r_ScopedGlideElementDescriptorGetInternalType__ul_g4m_znv_bkb} |
[Table 6. Returns]

{#r_ScopedGlideElementDescriptorGetInternalType__table_scc_gv3_yr}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');
     
    var field = grInc.getElement('priority');
    var ed = field.getED();
     
    var isEdge = ed.getInternalType();
    gs.info(isEdge);

Output:

    integer

## GlideElementDescriptor - getLabel() {#ariaid-title5}

Returns the element's label.
{#r_ScopedGlideElementDescriptorGetLabel__table_ypm_sw3_yr__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 7. Parameters]

{#r_ScopedGlideElementDescriptorGetLabel__table_ypm_sw3_yr} {#r_ScopedGlideElementDescriptorGetLabel__table_zpm_sw3_yr__entry__2}

| Type | Description |
|-|-|
| String | The element's label. |
[Table 8. Returns]

{#r_ScopedGlideElementDescriptorGetLabel__table_zpm_sw3_yr}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');
     
    var field = grInc.getElement('priority');
    var ed = field.getED();
     
    var isEdge = ed.getLabel();
    gs.info(isEdge);

Output:

    Priority

## GlideElementDescriptor - getLength() {#ariaid-title6}

Returns the element's length.
{#r_ScopedGlideElementDescriptorGetLength__table_hpy_3x3_yr__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 9. Parameters]

{#r_ScopedGlideElementDescriptorGetLength__table_hpy_3x3_yr} {#r_ScopedGlideElementDescriptorGetLength__table_ipy_3x3_yr__entry__2}

| Type | Description |
|-|-|
| Number | The element's size. |
[Table 10. Returns]

{#r_ScopedGlideElementDescriptorGetLength__table_ipy_3x3_yr}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');
     
    var field = grInc.getElement('priority');
    var ed = field.getED();
     
    var isEdge = ed.getLength();
    gs.info(isEdge);

Output:

    40

## GlideElementDescriptor - getName() {#ariaid-title7}

Returns the element's name.
{#r_ScopedGlideElementDescriptorGetName__table_sh3_zx3_yr__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 11. Parameters]

{#r_ScopedGlideElementDescriptorGetName__table_sh3_zx3_yr} {#r_ScopedGlideElementDescriptorGetName__table_th3_zx3_yr__entry__2}

| Type | Description |
|-|-|
| String | The element's name. |
[Table 12. Returns]

{#r_ScopedGlideElementDescriptorGetName__table_th3_zx3_yr}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');
     
    var field = grInc.getElement('priority');
    var ed = field.getED();
     
    var isEdge = ed.getName();
    gs.info(isEdge);

Output:

    priority

## GlideElementDescriptor - getPlural() {#ariaid-title8}

Returns the element's plural label.
{#r_SGED-getPlural__table_zqp_j1z_dv__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 13. Parameters]

{#r_SGED-getPlural__table_zqp_j1z_dv} {#r_SGED-getPlural__table_arp_j1z_dv__entry__2}

| Type | Description |
|-|-|
| String | The element's plural label. |
[Table 14. Returns]

{#r_SGED-getPlural__table_arp_j1z_dv}  

    var now_GR = new GlideRecord('incident');
    now_GR.query();
    var ed = now_GR.getED();
    gs.info(ed.getPlural());

Output:

    Incidents

## GlideElementDescriptor - hasAttachmentsEncrypted() {#ariaid-title9}

Returns true if an encrypted attachment has been added to the table.
This method is for use with the Edge Encryption plugin.
{#r_ScopedGlideElementDescriptorHasAttachmentsEncrypted__table_pwt_1h4_yr__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 15. Parameters]

{#r_ScopedGlideElementDescriptorHasAttachmentsEncrypted__table_pwt_1h4_yr} {#r_ScopedGlideElementDescriptorHasAttachmentsEncrypted__table_qwt_1h4_yr__entry__2}

| Type | Description |
|-|-|
| Boolean | Returns true if an encrypted attachment has been added to the table. |
[Table 16. Returns]

{#r_ScopedGlideElementDescriptorHasAttachmentsEncrypted__table_qwt_1h4_yr}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');

    var field = grInc.getElement('priority');
    var ed = field.getED();

    var isEdge = ed.hasAttachmentsEncrypted();
    gs.info(isEdge);

Output:

    false

## GlideElementDescriptor - isAutoOrSysID() {#ariaid-title10}

Returns true if the element is an automatically generated or system field.
Automatically generated and system fields cannot be encrypted. This method is for use with
the Edge Encryption plugin.
{#r_ScopedGlideElementDescriptorIsAutoOrSysID__table_y3g_nd4_yr__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 17. Parameters]

{#r_ScopedGlideElementDescriptorIsAutoOrSysID__table_y3g_nd4_yr} {#r_ScopedGlideElementDescriptorIsAutoOrSysID__table_z3g_nd4_yr__entry__2}

| Type | Description |
|-|-|
| Boolean | True if the element is automatically generated or a system field. |
[Table 18. Returns]

{#r_ScopedGlideElementDescriptorIsAutoOrSysID__table_z3g_nd4_yr}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');
    var field = grInc.getElement('priority');
    var ed = field.getED();

    isEdge = ed.isAutoOrSysID();
    gs.info(isEdge);

Output:

    false

## GlideElementDescriptor - isChoiceTable() {#ariaid-title11}

Returns true if the element is defined as a dropdown choice in its dictionary
definition.
Choice fields cannnot be encrypted.
{#r_ScopedGlideElementDescriptorIsChoiceTable__table_upl_31s_ls__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 19. Parameters]

{#r_ScopedGlideElementDescriptorIsChoiceTable__table_upl_31s_ls} {#r_ScopedGlideElementDescriptorIsChoiceTable__table_vpl_31s_ls__entry__2}

| Type | Description |
|-|-|
| Boolean | Returns true if the element is defined as a dropdown choice. Returns true even if there are no entries defined in the choice table. The last choice type, suggestion, does not return true. |
[Table 20. Returns]

{#r_ScopedGlideElementDescriptorIsChoiceTable__table_vpl_31s_ls}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');

    var field = grInc.getElement('priority');
    var ed = field.getED();

    var isChoiceTable = ed.isChoiceTable();
    gs.info(isChoiceTable);

Output:

    true

## GlideElementDescriptor - isEdgeEncrypted() {#ariaid-title12}

Returns true if an element is encrypted.
This method is for use with the Edge Encryption plugin.
{#r_ScopedGlideElementDescriptorIsEdgeEncrypted__table_jq2_gf4_yr__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 21. Parameters]

{#r_ScopedGlideElementDescriptorIsEdgeEncrypted__table_jq2_gf4_yr} {#r_ScopedGlideElementDescriptorIsEdgeEncrypted__table_kq2_gf4_yr__entry__2}

| Type | Description |
|-|-|
| Boolean | Returns true if the element is encrypted, false otherwise. |
[Table 22. Returns]

{#r_ScopedGlideElementDescriptorIsEdgeEncrypted__table_kq2_gf4_yr}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');

    var field = grInc.getElement('priority');
    var ed = field.getED();

    var isEdge = ed.isEdgeEncrypted();
    gs.info(isEdge)

Output:

    false

## GlideElementDescriptor - isEncrypted() {#ariaid-title13}

Returns whether the field represented by this descriptor is configured for field encryption.
Use this method to programmatically detect encrypted fields before reading or writing sensitive data, or to enforce access policies based on a field's encryption status.

Required plugins: Field Encryption Starter (com.glide.field.encryption.starter). Without this plugin, isEncrypted() returns false.
{#SGED-isEncrypted__table_jx1_tmp_z3c__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 23. Parameters]

{#SGED-isEncrypted__table_jx1_tmp_z3c} {#SGED-isEncrypted__table_kx1_tmp_z3c__entry__2}

| Type | Description |
|-|-|
| Boolean | Flag that indicates whether the field is configured for field encryption. Valid values: * true: Field is configured for field encryption. * false: Field isn't encrypted, or the Field Encryption Starter (com.glide.field.encryption.starter) plugin isn't active. {#SGED-isEncrypted__ul_ent_dnp_z3c} |
[Table 24. Returns]

{#SGED-isEncrypted__table_kx1_tmp_z3c}  
The following server-side script uses isEncrypted() to check whether the short_description field on the Incident table is encrypted before logging its value. Copy this into a Background Script or Business Rule on your instance to test.  
Note:  
Use the [GlideRecord - getED()](https://servicenow-prod.fluidtopics.net/kEnhxKeOH9ksdDjzH~63~A#r_GlideRecord-getED "Returns the element's descriptor.") or [Scoped GlideElement - getED()](https://servicenow-prod.fluidtopics.net/0uBO8a8nrf04myF8TCZaWA#r_ScopedGlideElementGetED "Returns the field's element descriptor.") method to obtain a GlideElementDescriptor object.

    // Retrieve a sample Incident record
    var gr = new GlideRecord('incident');
    gr.setLimit(1);
    gr.query();

    if (gr.next()) {
        // Get the GlideElement for the field you want to inspect
        var element = gr.getElement('short_description');

        // Retrieve the descriptor from the element
        var descriptor = element.getED();

        // Check whether the field is configured for Field Encryption
        if (descriptor.isEncrypted()) {
            gs.info('short_description is encrypted. Value: ' + element.getDisplayValue());
        } else {
            gs.info('short_description is NOT encrypted. Value: ' + gr.getValue('short_description'));
        }
    }

Output (unencrypted):

    short_description is NOT encrypted. Value: Unable to connect to network

Output (encryption enabled on the field):

    short_description is encrypted. Value: Unable to connect to network

## GlideElementDescriptor - isMandatory() {#ariaid-title14}

Determines whether the element is mandatory and must contain a value before the record
can be saved.
{#SGED-isMandatory__table_xxq_xwv_shb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 25. Parameters]

{#SGED-isMandatory__table_xxq_xwv_shb} {#SGED-isMandatory__table_yxq_xwv_shb__entry__2}

| Type | Description |
|-|-|
| Boolean | Flag that indicates whether the associated element is mandatory and must contain a value before the record containing the element can be saved. Possible values: * true: element must contain a value; mandatory field * false: element does not have to contain a value {#SGED-isMandatory__ul_l1h_kxv_shb} |
[Table 26. Returns]

{#SGED-isMandatory__table_yxq_xwv_shb}  
This example shows how to check whether the name field is mandatory.

    var isRecordValid;
    var now_GR = new GlideRecord('my_table');
    var field = now_GR.getElement('name');
    var elementDescriptor = field.getED();
    now_GR.query();
    while (now_GR.next()) {
    if (elementDescriptor.isMandatory() && !now_GR.name) {
           isRecordValid = false;
      }
    }

## GlideElementDescriptor - isVirtual() {#ariaid-title15}

Returns true if the element is a virtual element.
A virtual element is a calculated field as set by the dictionary definition of the field.
Virtual fields cannot be encrypted.
{#r_ScopedGlideElementDescriptorIsVirtual__table_xzh_ybs_ls__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 27. Parameters]

{#r_ScopedGlideElementDescriptorIsVirtual__table_xzh_ybs_ls} {#r_ScopedGlideElementDescriptorIsVirtual__table_yzh_ybs_ls__entry__2}

| Type | Description |
|-|-|
| Boolean | Returns true if the element is a virtual element. |
[Table 28. Returns]

{#r_ScopedGlideElementDescriptorIsVirtual__table_yzh_ybs_ls}  

    var grInc = new GlideRecord('incident');
    grInc.query('priority', '1');

    var field = grInc.getElement('priority');
    var ed = field.getED();

    var isVirtual = ed.isVirtual();
    gs.info(isVirtual);

Output:

    false


