Record API - ServiceNow Fluent

  • Release version: Washingtondc
  • Updated January 30, 2025
  • 2 minutes to read
  • The Record API defines records in any table. Use the Record API to define application metadata that doesn't have a dedicated ServiceNow Fluent API.

    Record object

    Add data to any table with a record.

    Table 1. Properties
    Name Type Description
    $id String or Number Required. A unique ID for the metadata object. When you build the application, this ID is hashed into a unique sys_id.

    Format: Now.ID['String' or Number]

    table String Required. The name of the table to which the record belongs.
    data Object Fields and their values in the table. For example:
    data: {
       state: 'Ready',
       task: 'Add demo data'
    }
    To use text content from another file, refer to a file in the application using the Now.include syntax.
    data: {
       script: Now.include('./script-file.js'),
       html: Now.include('./html-file.html'),
       css: Now.include('./css-file.css')
     }
    $meta Object Metadata for the application metadata.
    With the installMethod property, you can map the application metadata to an output directory that loads only in specific circumstances.
    $meta: {
          installMethod: 'String'
    }
    Valid values for installMethod:
    • demo: Outputs the application metadata to the metadata/unload.demo directory to be installed with the application when the Load demo data option is selected.
    • first install: Outputs the application metadata to the metadata/unload directory to be installed only the first time an application is installed on an instance.
    In this example, a record defining a menu category is added to the Menu Category [sys_app_category] table. The menu category style is defined in the css-file.css file.
    import { Record } from "@servicenow/sdk/core";
    
    export const appCategory = Record({
       table: 'sys_app_category',
       $id: Now.ID[9],
       data: {
          name: 'example',
          style: Now.include('./css-file.css'),
       },
    })
    In this example, a record defining a script include is added to the Script Include [sys_script_include] table. The script include uses a script from the SampleClass.server.js file.
    import { Record } from "@servicenow/sdk/core";
    
    export const SampleClass = Record({
      $id: Now.ID["SampleClass"],
      table: "sys_script_include",
      data: {
        name: "SampleClass",
        apiName: "x_sample.SampleClass",
        access: "public",
        caller_access: "caller_tracking",
        protection_policy: "read-only",
        script: Now.include("./SampleClass.server.js"),
      },
    })
    In this example, a record defining an incident is added to the Incident [incident] table.
    import { Record } from '@servicenow/sdk/core';
    
    export const incident1 = Record({
      $id: Now.ID['incident-1'],
      table: 'incident',
      data: {
        active: 'true',
        approval: 'not requested',
        description: 'Unable to send or receive emails.',
        incident_state: '1',
        short_description: 'Email server is down.',
        subcategory: 'email',
        caller_id: '77ad8176731313005754660c4cf6a7de',
      }
    })
    In this example, a record defining a server is added to the Server [cmdb_ci_server] table.
    import { Record } from '@servicenow/sdk/core';
    
    export const ciserver1 = Record({
      $id: Now.ID['cmdb-ci-server-1'],
      table: 'cmdb_ci_server',
      data: {
        asset_tag: 'P1000199',
        attested: 'false',
        can_print: 'false',
        company: 'e7c1f3d53790200044e0bfc8bcbe5deb',
        cost: '2160',
        cost_cc: 'USD',
        cpu_speed: '633',
        cpu_type: 'GenuineIntel',
        disk_space: '100',
        manufacturer: 'b7e7d7d8c0a8016900a5d7f291acce5c',
        name: 'DatabaseServer1',
        os: 'Linux Red Hat',
        short_description: 'DB Server',
        subcategory: 'Computer',
      }
    })