Create a multi-table processor

  • Release version: Xanadu
  • Updated August 1, 2024
  • 1 minute to read
  • Create a multi-table processor that reports the number of rows in any table on your instance. This feature is deprecated.

    Before you begin

    Role required: admin

    About this task

    Note:
    This feature is deprecated. While legacy, existing custom processors continue to be supported, creating new custom processors has been deprecated. Instead, use the Scripted REST APIs

    The multi-table processor protects itself from performance and security violations by confirming that the user is authorized to read the table. It does not report on certain tables that are too large to query safely.

    Procedure

    1. Navigate to All > System Definition > Processors.
      The list of processors appears.
    2. SelectNew.
    3. Enter the following information.
      Name TableSize
      Type Choose Javascript
      Description Return number of records in a table
      Parameters SIZE
      Path <leave empty>

      Script:

      g_response.setContentType('text/html;charset=UTF-8');
      if(g_target === 'sys_email' || g_target === 'sys_log' ) 
      {
        g_processor.writeOutput(g_target + ' table is too large to quickly count');
        } else {   
          var count = new GlideAggregate(g_target);
          if( count.canRead() ) {
            count.addAggregate('COUNT');
            count.query();
            var records = 0;
            if (count.next()) {
              records = count.getAggregate('COUNT');
             }
             g_processor.writeOutput('table ' + g_target + ' has ' + records + ' records');
            } else {
             g_processor.writeOutput('You do not have access to table ' + g_target);
        }
      }            
    4. Select Save.
    5. Test the new processor by entering the following URLs:
      https://<instancename>.service-now.com/incident.do?SIZE and https://<instancename>.service-now.com/sys_user.do?SIZE
      Your instance reports the number of records in the table. For example, table incident has 82 records.