0

List Tables

by
Published 4 days ago

List the instance tables (sys_db_object) with API name, label, and sys_id. Optionally filter by a name/label substring.

Script servicenow Verified

The script

Submitted by hugo989 Typescript (fetch-only)
Verified 5 days ago
1
//native
2

3
function authHeader(auth: RT.Servicenow) {
4
  return auth.token
5
    ? `Bearer ${auth.token}`
6
    : `Basic ${btoa(`${auth.username}:${auth.password}`)}`
7
}
8

9
/**
10
 * List Tables
11
 * List the instance's tables (sys_db_object) with their API name, label, and sys_id. Optionally filter by a substring matched against name or label.
12
 */
13
export async function main(
14
  auth: RT.Servicenow,
15
  name_filter: string | undefined
16
) {
17
  const url = new URL(`${auth.instance_url}/api/now/table/sys_db_object`)
18
  url.searchParams.append("sysparm_fields", "name,label,sys_id")
19
  if (name_filter !== undefined && name_filter !== "") {
20
    url.searchParams.append(
21
      "sysparm_query",
22
      `nameLIKE${name_filter}^ORlabelLIKE${name_filter}`
23
    )
24
  }
25
  url.searchParams.append("sysparm_limit", "10000")
26

27
  const response = await fetch(url, {
28
    method: "GET",
29
    headers: {
30
      Authorization: authHeader(auth),
31
      Accept: "application/json",
32
    },
33
  })
34

35
  if (!response.ok) {
36
    throw new Error(`${response.status} ${await response.text()}`)
37
  }
38

39
  return await response.json()
40
}
41