Journal field type
Summarize
Summary of Journal field type
ServiceNow provides three types of journal fields—journal,journalinput, andjournallist—each designed to capture and display user input differently. These fields are commonly used for comments, work notes, and activity streams on forms and lists.
Show less
Journal Field Types and Uses
- journal: Allows input, stores it, and displays all combined inputs below the input box. It appears in both the activity stream on the form and list views.
- journalinput: Allows and stores input but does not display combined previous inputs. Entries only appear with the associated record and not in the activity stream on the list view.
- journallist: Does not allow input; it displays content from other journal fields it depends on, merging multiple journal entries chronologically. It shows content in a separate block, not in the activity stream.
Managing Journal Entries in Notifications
Administrators can control how many journal entries are included in email notifications using the glide.email.journal.lines system property. The property accepts an integer where -1 includes all entries, and its default value is 3. This helps manage notification size and relevance.
Working with Journal Fields Programmatically
- You can retrieve all journal entries as a single string and split them into an array for iteration using scripting techniques.
- The setValue() method is not supported for journal fields. Instead, assign values directly to the journal field property in scripts to add entries.
- Journal fields render text wrapped in code tags as HTML, enabling formatted content display.
Considerations and Configuration
- Journal fields can significantly increase the size of task records due to potentially large string inputs.
- Multi-line text fields have a default character limit of 4000. To assist users, enable the glide.ui.textarea.charactercounter property to display a character counter, helping users manage input length effectively.
There are three types of journal field: journal, journal_list, and journal_input.
| Journal field types | Description |
|---|---|
| journal | Allow and store input, and display the combined inputs below the input box. Journal fields display in the activity stream in the form and in the list view. |
| journal_input | Allow and store input, but do not display the combined inputs. Journal input fields only display with the record they are associated with, so they do not display in the activity stream on the list view. |
| journal_list | Do not allow or store input; they merely display the contents of other Journal fields upon which the journal_list field is dependent. If a journal_list field is dependent on more than one Journal field, it will chronologically interweave those fields' inputs. The journal_list field does not display content within the activity stream, but rather in a separate block. |
The example image contains the three available journal field types. The first is a journal field, with its inputs displayed below the field. The second is a journal input field, which does not show its previous inputs. The third is Journal list field, which is configured to show the input from the journal input field above it.
Restricting journal entries sent in a notification
Administrators can control the number of journal entries notifications include with the following system property.
| Property | Label | Description |
|---|---|---|
| glide.email.journal.lines | Number of journal entries (Additional comments, Work notes, etc.) included in email notifications (-1 means all). | Specifies the number of entries from a journal field (such as Additional comments and Work notes) included in email notifications. A value of -1 includes all journal entries.
|
Code for getting the contents of a journal field into an array
To put the contents of a journal field into an array so that you can iterate through each entry, you can use the code in this page.
var notes = current.work_notes.getJournalEntry(-1);
//gets all journal entries as a string where each entry is delimited by '\n\n'
var na = notes.split("\n\n");
//stores each entry into an array of strings
for (var i = 0; i < na.length; i++)
gs.print(na[i]);Journal field script values
The setValue() method is not supported for journal fields. Instead, assign values in script as in the following example.
var now_GR = new GlideRecord('incident');
//query priority 1 incidents in the state of either 'new' or 'active'.
gr.addQuery('priority', 1);
var gc = gr.addQuery('state', 1);
gc.addOrCondition('state', 2);
gr.query();
while(gr.next())
{
//print a list of the incident numbers updated
gs.print(gr.number);
//add an entry to the 'work notes' journal field for each incident
gr.work_notes = "This is a high-priority incident. Please prioritize.";
gr.update();
}