GlideForm - Client

The GlideForm API provides methods to customize forms. GlideForm.js is the JavaScript class containing the methods. The global object g_form is used to access GlideForm methods. GlideForm methods are only used on the client.

These methods are used to make custom changes to the form view of records. All validation of examples was done using Client Scripts.

Some of these methods can also be used in other client scripts (such as Catalog Client Scripts or Wizard Client Scripts), but must first be tested to determine whether they will work as expected.

Note: The methods getControl(), getElement(), and getFormElement() are deprecated for mobile devices. For information on using GlideForm for mobile, see Mobile Client GlideForm (g_form) Scripting.

There is no constructor for the GlideForm class. Access GlideForm methods using the g_form global object.

GlideForm - addDecoration(String fieldName, String icon, String title)

Adds an icon on a field’s label.

Adding the same item twice is prevented; however, you can add the same icon with a different title.
Note: This method is not supported by Service Catalog.
Table 1. Parameters
Name Type Description
fieldName String The field name.
icon String The font icon to show next to the field. Supported icons - icon-user, icon-user-group, icon-lightbulb, icon-home, icon-mobile, icon-comment, icon-mail, icon-locked, icon-database, icon-book, icon-drawer, icon-folder, icon-catalog, icon-tab, icon-cards, icon-tree-right, icon-tree, icon-book-open, icon-paperclip, icon-edit, icon-trash, icon-image, icon-search, icon-power, icon-cog, icon-star, icon-star-empty, icon-new-ticket, icon-dashboard, icon-cart-full, icon-view, icon-label, icon-filter, icon-calendar, icon-script, icon-add, icon-delete, icon-help, icon-info, icon-check-circle, icon-alert, icon-sort-ascending, icon-console, icon-list, icon-form, and icon-livefeed.
title String The text title for the icon.
Table 2. Returns
Type Description
void
g_form.addDecoration('caller_id', 'icon-star', 'preferred member');

GlideForm - addDecoration(String fieldName, String icon, String title, String color)

Adds an icon on a field’s label.

Adding the same item twice is prevented; however, you can add the same icon with a different title.
Note: This method is not supported by Service Catalog.
Table 3. Parameters
Name Type Description
fieldName String The field name.
icon String The font icon to show next to the field. Supported icons - icon-user, icon-user-group, icon-lightbulb, icon-home, icon-mobile, icon-comment, icon-mail, icon-locked, icon-database, icon-book, icon-drawer, icon-folder, icon-catalog, icon-tab, icon-cards, icon-tree-right, icon-tree, icon-book-open, icon-paperclip, icon-edit, icon-trash, icon-image, icon-search, icon-power, icon-cog, icon-star, icon-star-empty, icon-new-ticket, icon-dashboard, icon-cart-full, icon-view, icon-label, icon-filter, icon-calendar, icon-script, icon-add, icon-delete, icon-help, icon-info, icon-check-circle, icon-alert, icon-sort-ascending, icon-console, icon-list, icon-form, and icon-livefeed.
title String The text title for the icon.
color String A CSS color.
Table 4. Returns
Type Description
void
g_form.addDecoration('caller_id', 'icon-star', 'Mark as Favorite', 'color-green');

GlideForm - addErrorMessage(String message)

Displays the error message at the top of the form.

Table 5. Parameters
Name Type Description
message String The message to display.
Table 6. Returns
Type Description
void
g_form.addErrorMessage('This is an error');

GlideForm - addInfoMessage(String message)

Adds an informational message to the top of the form.

Table 7. Parameters
Name Type Description
message String The message to display.
Table 8. Returns
Type Description
void

g_form.addInfoMessage('The top five fields in this form are mandatory');

GlideForm - addOption(String fieldName, String choiceValue, String choiceLabel)

Adds a choice to the end of a choice list field.

Table 9. Parameters
Name Type Description
fieldName String The name of the field.
choiceValue String The value to be stored in the database.
choiceLabel String The value displayed.
Table 10. Returns
Type Description
void

g_form.addOption('priority', '6', '6 - Really Low');

GlideForm - addOption(String fieldName, String choiceValue, String choiceLabel, Number choiceIndex)

Adds a choice to the choice list field at the position specified.

Table 11. Parameters
Name Type Description
fieldName String The field name.
choiceValue String The value stored in the database.
choiceLabel String The value displayed.
choiceIndex Number Order of the choice in the list. The index is into a zero based array.
Table 12. Returns
Type Description
void

g_form.addOption('priority', '2.5', '2.5 - Moderately High', 3);

GlideForm - clearMessages()

Removes all informational and error messages from the top of the form.

Removes informational and error messages added with g_form.addInfoMessage() and g_form.addErrorMessage().

Table 13. Parameters
Name Type Description
None
Table 14. Returns
Type Description
void

g_form.clearMessages();

GlideForm - clearOptions(String fieldName)

Removes all options from the choice list.

Table 15. Parameters
Name Type Description
fieldName String Name of the field.
Table 16. Returns
Type Description
void


      
    

GlideForm - clearValue(String fieldName)

Removes any value(s) from the field.

Table 17. Parameters
Name Type Description
fieldName String Name of the field.
Table 18. Returns
Type Description
void


      
    

GlideForm - disableAttachments()

Prevents file attachments from being added.

This method is not available on the mobile platform. If this method is run on a mobile platform, no action occurs.

Table 19. Parameters
Name Type Description
None
Table 20. Returns
Type Description
void

GlideForm - enableAttachments()

Allows file attachments to be added. Shows the paper clip icon

This method is not available on the mobile platform. If this method is run on a mobile platform, no action occurs.

Table 21. Parameters
Name Type Description
None
Table 22. Returns
Type Description
void

GlideForm - flash(String widgetName, String color, Number count)

Used to draw attention to a particular field. Flashes the specified color the specified number of times in the specified field.

This method is not supported by Service Catalog.

This method is not available on the mobile platform. If this method is run on a mobile platform, no action occurs.

Table 23. Parameters
Name Type Description
widgetName String Specifies the field in the as <table name>.<fieldname.
color String RGB color or acceptable CSS color.
count Number Specifies how long the label will flash.
  • use 2 for a 1-second flash
  • use 0 for a 2-second flash
  • use -2 for a 3-second flash
  • use -4 for a 4-second flash
Table 24. Returns
Type Description
void
g_form.flash("incident.number", "#FFFACD", 0);

GlideForm - getActionName()

Returns the most recent action name, or, for a client script, the sys_id of the UI action clicked.

Note: Not available in Wizard client scripts.
Table 25. Parameters
Name Type Description
None
Table 26. Returns
Type Description
String The current action name.

function onSubmit() {
   var action = g_form.getActionName();
   alert('You pressed ' + action);
}

GlideForm - getBooleanValue(String fieldName)

Returns a Boolean value for the specified field.

Table 27. Parameters
Name Type Description
fieldName String Name of the field.
Table 28. Returns
Type Description
Boolean Returns false if the field value is false or undefined; otherwise returns true.


      
    

GlideForm - getControl(String fieldName)

Returns the HTML element for the specified field.

Compound fields may contain several HTML elements. This method is generally not necessary as there are built-in methods that use the fields on a form.

If the field is a reference field and the control is a choice list, getControl() may not return a control as expected. In this case, use sys_select.<table name>.<field name>.

This method is not available in mobile scripts or Service Portal scripts.

Table 29. Parameters
Name Type Description
fieldName String Name of the field.
Table 30. Returns
Type Description
HTMLElement The field's HTML element.

GlideForm - getDecimalValue(String fieldName)

Returns the decimal value of the specified field.

Table 31. Parameters
Name Type Description
fieldName String The name of the field.
Table 32. Returns
Type Description
String The decimal value of the specified field.

function onChange(control, oldValue, newValue, isLoading) {
   alert(g_form.getValue('percent_complete'));
}

GlideForm - getElement(String id)

Returns the HTML element specified by the parameter.

Compound fields may contain several HTML elements. This method is generally not necessary as there are built-in methods that use the fields on a form.

This method is not available in mobile scripts or Service Portal scripts.

Table 33. Parameters
Name Type Description
id String The field id.
Table 34. Returns
Type Description
HTMLElement The field's HTML element.

GlideForm - getFormElement()

Returns the HTML element for the form.

This method is not available in mobile scripts or Service Portal scripts.

Table 35. Parameters
Name Type Description
None
Table 36. Returns
Type Description
HTMLFormElement The HTML element for the form.

GlideForm - getIntValue(String fieldName)

Returns the integer value of the field.

Table 37. Parameters
Name Type Description
fieldName String The field name.
Table 38. Returns
Type Description
Number Integer value of the field.


      
    

GlideForm - getLabelOf(String fieldName)

Returns the plain text value of the field label.

Table 39. Parameters
Name Type Description
fieldName String The field name
Table 40. Returns
Type Description
String The label text.

if (g_user.hasRole('itil')) {
    var oldLabel = g_form.getLabelOf('comments');
    g_form.setLabelOf('comments', oldLabel + ' (Customer visible)');
}

GlideForm - getOption(String fieldName, String choiceValue)

Returns the option element for a selected box named fieldName where choiceValue matches the option value.

Note: This method does not work on read-only fields.
Table 41. Parameters
Name Type Description
fieldName String Name of the field.
choiceValue String Value of the option.
Table 42. Returns
Type Description
HTMLElement The HTMLElement for the option. Returns null if the field or option is not found.


      
    

GlideForm - getReference(String fieldName, Function callBack)

Returns the GlideRecord for a specified field.

If a callback function is present, this routine runs asynchronously, and browser (and script) processing will continue normally until the server returns the reference value, at which time the callback function will be invoked. If a callback function is not present, this routine runs synchronously and processing will halt (causing the browser to appear to hang) while waiting on a server response.

Important: It is strongly recommended that a callback function be used.

Callback function support for ServiceCatalogForm.getReference is available.

Note: This requires a call to the server so using this function will require additional time and may introduce latency to your page. Use with caution. See Avoid Server Lookups.
Table 43. Parameters
Name Type Description
fieldName String Name of the field.
callBack Function Name of the call back function.
Table 44. Returns
Type Description
GlideRecord The GlideRecord object for the specified field. If the specified reference cannot be found, then it returns an initialized GlideRecord object where currentRow = -1 and rows.length = 0.

function onChange(control, oldValue, newValue, isLoading) {
   var caller = g_form.getReference('caller_id', doAlert); // doAlert is our callback function
}
function doAlert(caller) { //reference is passed into callback as first arguments
  if (caller.vip == 'true')
    alert('Caller is a VIP!');
}

GlideForm - getSectionNames()

Returns all section names, whether visible or not.

Table 45. Parameters
Name Type Description
None
Table 46. Returns
Type Description
Array of strings The section names.

GlideForm - getSections()

Returns an array of the form's sections.

This method is not available on the mobile platform. If this method is run on a mobile platform, no action occurs.

Table 47. Parameters
Name Type Description
None
Table 48. Returns
Type Description
Array of HTML elements The form's sections.
function onChange(control, oldValue, newValue, isLoading) {
   //this example was run on a form divided into sections (Change form)
   // and hid a section when the "state" field was changed
   var sections = g_form.getSections();
   if (newValue == '2') {
      g_form.setSectionDisplay(sections[1], false);
   } else {
      g_form.setSectionDisplay(sections[1], true);
   }
}

GlideForm - getTableName()

Returns the name of the table to which this record belongs.

On the server side, the table for the current record can be retrieved with current.sys_class_name or current.getTableName().

Table 49. Parameters
Name Type Description
None
Table 50. Returns
Type Description
String Name of the table.

function onLoad() {
    if (g_form.isNewRecord() {
        var tableName = g_form.getTableName(); //Get the table name
    }
}

GlideForm - getUniqueValue()

Returns the sys_id of the record displayed in the form.

Table 51. Parameters
Name Type Description
None
Table 52. Returns
Type Description
String The record's sys_id.

function onLoad() {
   var incSysid = g_form.getUniqueValue();
   alert(incSysid);
}

GlideForm - getValue(String fieldName)

Returns the value of the specified field.

Table 53. Parameters
Name Type Description
fieldName String The field name.
Table 54. Returns
Type Description
String The value of the specified field.
function onChange(control, oldValue, newValue, isLoading) {
   alert(g_form.getValue('short_description'));
}

GlideForm - hideAllFieldMsgs()

Hides all field messages.

Table 55. Parameters
Name Type Description
None
Table 56. Returns
Type Description
void


      
    

GlideForm - hideAllFieldMsgs(String type)

Hides all field messages of the specified type.

Table 57. Parameters
Name Type Description
type String The type of message, info or error.
Table 58. Returns
Type Description
void


      
    

GlideForm - hideErrorBox(String fieldName)

Hides the error message placed by showErrorBox().

Whenever possible, use hideFieldMsg() rather than this method whenever possible.

Table 59. Parameters
Name Type Description
fieldName String The name of the field or control.
Table 60. Returns
Type Description
void


      
    

GlideForm - hideFieldMsg(String fieldName)

Hides the last message placed by showFieldMsg().

Table 61. Parameters
Name Type Description
fieldName String Name of the field.
Table 62. Returns
Type Description
void


      
    

GlideForm - hideFieldMsg(String fieldName, Boolean clearAll)

Hides the messages placed by showFieldMsg().

Table 63. Parameters
Name Type Description
fieldName String Name of the field.
clearAll Boolean When true, all messages for the field are cleared. When false, only the last message is removed.
Table 64. Returns
Type Description
void

g_form.hideFieldMsg('impact', true);

GlideForm - hideRelatedList(String listTableName)

Hides the specified related list on the form.

This method is not available on the mobile platform. If this method is run on a mobile platform, no action occurs.

Table 65. Parameters
Name Type Description
listTableName String Name of the related list. Use the sys_id to hide a list through a relationship.
Table 66. Returns
Type Description
void

GlideForm - hideRelatedLists()

Hides all related lists on the form.

This method is not available on the mobile platform. If this method is run on a mobile platform, no action occurs.

Table 67. Parameters
Name Type Description
None
Table 68. Returns
Type Description
void

GlideForm - isMandatory(String fieldName)

Returns true if the field is mandatory.

Table 69. Parameters
Name Type Description
fieldName String Name of the field.
Table 70. Returns
Type Description
Boolean True if the field is required, false otherwise.


      
    

GlideForm - isNewRecord()

Returns true if the record has never been saved.

Table 71. Parameters
Name Type Description
None
Table 72. Returns
Type Description
Boolean Returns true if the record has not been saved; otherwise false.

function onLoad() {
   if(g_form.isNewRecord()){
      alert('New Record!');
   }
}

GlideForm - isSectionVisible(String sectionName)

Returns true if the section is visible.

Table 73. Parameters
Name Type Description
None
Table 74. Returns
Type Description
Boolean Returns true when the section is visible; otherwise, false is returned.


      
    

GlideForm - refreshSlushbucket(String fieldName)

You can update a list collector variable.

Table 75. Parameters
Name Type Description
fieldName String Name of the slush bucket.
Table 76. Returns
Type Description
void
g_form.refreshSlushbucket('bucket');

GlideForm - removeDecoration(String fieldname, String icon, String title)

Removes the icon from the specified field that matches the icon and title.

Note: This method is not supported by Service Catalog.
Table 77. Parameters
Name Type Description
fieldName String Field name.
icon String Name of the icon to remove.
title String The icon's text title (name).
Table 78. Returns
Type Description
void

function onChange(control, oldValue, newValue, isLoading) {
	// if the caller_id field is not present, then we can't add an icon anywhere
	if (!g_form.hasField('caller_id'))
		return;
 
	if (!newValue)
		return;
 
	g_form.getReference('caller_id', function(ref) {
		g_form.removeDecoration('caller_id', 'icon-star', 'VIP');
 
		if (ref.getValue('vip') == 'true')
			g_form.addDecoration('caller_id', 'icon-star', 'VIP');			
	});
}

GlideForm - removeDecoration(String fieldname, String icon, String title, String color)

Removes the icon from the specified field that matches the icon, title, and color.

Note: This method is not supported by Service Catalog.
Table 79. Parameters
Name Type Description
fieldName String Field name.
icon String Name of the icon to remove.
title String The icon's text title (name).
color String A CSS color
Table 80. Returns
Type Description
void

g_form.removeDecoration('caller_id', 'icon-star', 'VIP', 'blue');

GlideForm - removeOption(String fieldName, String choiceValue)

Removes the specified option from the choice list.

Table 81. Parameters
Name Type Description
fieldName String Name of the field.
choiceValue String The value stored in the database. This is not the label.
Table 82. Returns
Type Description
void

g_form.removeOption('priority', '1');

GlideForm - save()

Saves the record without navigating away (update and stay).

Table 83. Parameters
Name Type Description
None
Table 84. Returns
Type Description
void

GlideForm - setDisabled(String fieldName, Boolean disable)

Makes the specified field available or unavailable.

Table 85. Parameters
Name Type Description
fieldName String Name of the field.
disable Boolean When true disables the field. When false enables the field.
Table 86. Returns
Type Description
void


      
    

GlideForm - setDisplay(String fieldName, Boolean display)

Displays or hides a field.

This method cannot hide a mandatory field with no value. If the field is hidden, the space is used to display other items. Whenever possible, use a UI policy instead of this method.

Table 87. Parameters
Name Type Description
fieldname String Name of the field.
display Boolean When true displays the field, when false hides the field.
Table 88. Returns
Type Description
void

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   //If the page isn't loading
   if (!isLoading) {
      //If the new value isn't blank
      if (newValue != '') {
         g_form.setDisplay('priority', false);   
      }
      else 
         g_form.setDisplay('priority', true);
      }
   }

GlideForm - setLabelOf(String fieldName, String label)

Sets the plain text value of the field label.

Note: This method is not supported by Service Catalog.
Table 89. Parameters
Name Type Description
fieldName String The field name.
label String The field text label.
Table 90. Returns
Type Description
void

if (g_user.hasRole('itil')) {
    var oldLabel = g_form.getLabelOf('comments');
    g_form.setLabelOf('comments', oldLabel + ' (Customer visible)');
}

GlideForm - setMandatory(String fieldName, Boolean mandatory)

Makes the specified field mandatory.

Whenever possible, use a UI policy rather than this method.

Table 91. Parameters
Name Type Description
fieldName String Name of the field.
mandatory Boolean When true makes the field mandatory. When false makes the field optional.
Table 92. Returns
Type Description
void


      
    

GlideForm - setReadOnly(String fieldName, Boolean readOnly)

Makes the specified field read only or editable.

Whenever possible, use a UI policy instead of this method.

Note: The function name setReadonly() also works.

To make a mandatory field read-only, you must first remove the mandatory requirement for that field by using the setMandatory() method.

Table 93. Parameters
Name Type Description
fieldName String Name of the field.
readOnly Boolean When true makes the field read only. When false makes the field editable.
Table 94. Returns
Type Description
void


      
    

GlideForm - setSectionDisplay(String sectionName, Boolean display)

Shows or hides a section.

Table 95. Parameters
Name Type Description
sectionName String The section name is lower case with an underscore replacing the first space in the name, and with the remaining spaces being removed, for example "Section Four is Here" becomes "section_fourishere". Other non-alphanumeric characters, such as ampersand (&), are removed. Section names can be found by using the getSectionNames() method.
display Boolean When true shows the section. When false hides the section.
Table 96. Returns
Type Description
Boolean Returns true when successful.

GlideForm - setValue(String fieldName, String value)

Sets the value of a field.

When defining a value in a choice list, be sure to use number value rather than the label.

To improve performance by preventing a round trip, include a display value in addition to the value, use setValue(fieldName, value, displayValue).

Note: The method setValue() can cause a stack overflow when used in an OnChange client script. This is because every time the value is set, it will register as a change, which may re-trigger the OnChange client script. To prevent this, perform a check that will validate that the new value will be different from the old value. For example, before performing setValue(shortDesc, newValue.toUpperCase());, validate that the short description is not already uppercase. This will prevent the client script from applying the toUpperCase() more than once.
Table 97. Parameters
Name Type Description
fieldName String Name of the field.
value String Value in the database.
Table 98. Returns
Type Description
void

g_form.setValue('short_description', 'replace this with appropriate text');

GlideForm - setValue(String fieldName, String value, String displayValue)

Sets the value and display value of the specified field.

When defining a value in a choice list, be sure to use number value rather than the label.

To improve performance by preventing a round trip, use this method not setValue(fieldName, value).

Note: The method setValue() can cause a stack overflow when used in an OnChange client script. This is because every time the value is set, it will register as a change, which may re-trigger the OnChange client script. To prevent this, perform a check that will validate that the new value will be different from the old value. For example, before performing setValue(shortDesc, newValue.toUpperCase());, validate that the short description is not already uppercase. This will prevent the client script from applying the toUpperCase() more than once.
Table 99. Parameters
Name Type Description
fieldName String Name of the field.
value String Value in the database.
displayValue String Value to be displayed.
Table 100. Returns
Type Description
void

g_form.setValue('short_description', 'replace this with appropriate text', 'Change this text');

GlideForm - setVisible(String fieldName, Boolean display)

Displays or hides the field.

If the field is hidden, the space is left blank. This method cannot hide mandatory fields with no value.

Use UI Policy rather than this method whenever possible.

Table 101. Parameters
Name Type Description
fieldName String The field name.
display Boolean When true displays the field. When false hides the field.
Table 102. Returns
Type Description
void
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   //If the page isn't loading
   if (!isLoading) {
      //If the new value isn't blank
      if(newValue != '') {
         g_form.setVisible('priority', false); 
      }
      else
         g_form.setVisible('priority', true); 
      }
   }

GlideForm - showErrorBox(String name, String message)

Displays an error message under the specified form field (either a control object or the name of the field). If the control or field is currently off the screen, the form scrolls to the control or field.

A global property (glide.ui.scroll_to_message_field) is available that controls automatic message scrolling when the form field is off screen (scrolls the form to the control or field). The showFieldMsg() method is a similar method that requires a type parameter.

Table 103. Parameters
Name Type Description
name String The name of the control or field.
message String The message to be displayed.
Table 104. Returns
Type Description
void


      
    

GlideForm - showErrorBox(String name, String message, Boolean scrollForm)

Displays an error message under the specified form field (either a control object or the name of the field). If the control or field is currently off the screen and the scrollForm parameter is true, the form scrolls to the control or field.

A global property (glide.ui.scroll_to_message_field) is available that controls automatic message scrolling when the form field is off screen (scrolls the form to the control or field). The showFieldMsg() method is a similar method that requires a type parameter.

Table 105. Parameters
Name Type Description
name String Name of the field or control.
message String Message to display.
scrollForm Boolean When true scrolls the form to the field. When false the form does not scroll to the field.
Table 106. Returns
Type Description
void


      
    

GlideForm - showFieldMsg(String field, String message, String type)

Displays either an informational or error message under the specified form field (either a control object or the name of the field). If the control or field is off the screen, the form scrolls to the field.

A global property (glide.ui.scroll_to_message_field) is available that controls automatic message scrolling when the form field is off screen (scrolls the form to the control or field).

The showErrorBox() method is a shorthand method that does not require the type parameter.

Note: This method does not work with the journal_field type field in UI16.
Table 107. Parameters
Name Type Description
field String Name of the field or control.
message String Message to display.
type String Either "error" or "info."
Table 108. Returns
Type Description
void

g_form.showFieldMsg('impact','Low impact response time can be one week','info');

GlideForm - showFieldMsg(String field, String message, String type, Boolean scrollForm)

Displays either an informational or error message under the specified form field (either a control object or the name of the field). If the control or field is off the screen and scrollForm is true, the form scrolls to the field.

A global property (glide.ui.scroll_to_message_field) is available that controls automatic message scrolling when the form field is off screen (scrolls the form to the control or field).

The showErrorBox() method is a shorthand method that does not require the type parameter.

Note: This method does not work with the journal_field type field in UI16.
Table 109. Parameters
Name Type Description
field String Name of the field or control.
message String Message to display.
type String Either "error" or "info."
scrollForm Boolean When true, the form scrolls to the field if it is off screen. When false, the form does not scroll.
Table 110. Returns
Type Description
void

g_form.showFieldMsg('impact','Low impact not allowed with High priority','error');

GlideForm - showRelatedList(String listTableName)

Displays the specified related list on the form.

This method is not available on the mobile platform. If this method is run on a mobile platform, no action occurs.

Table 111. Parameters
Name Type Description
listTableName String Name of the related list.
Table 112. Returns
Type Description
void

GlideForm - showRelatedLists()

Displays all the form's related lists.

This method is not available on the mobile platform. If this method is run on a mobile platform, no action occurs.

Table 113. Parameters
Name Type Description
None
Table 114. Returns
Type Description
void

GlideForm - submit()

Saves the record.

The user is taken away from the form, returning them to where they were.

Table 115. Parameters
Name Type Description
None
Table 116. Returns
Type Description
void