Blog

ServiceNow Archaeology

What are the oldest remains of ServiceNow still lurking within?

Last week I was spelunking in the sys_glide_object table (Field classes) with a fellow adventurer. There was a record created on March 14, 2004 by "pat".  

Pat Casey was one of the earliest ServiceNow developers I believe, and he still has an stamp on a lot of the old records. However is that the oldest ServiceNow record?  Does that even matter as ServiceNow has gone through many technological advancements over the years? Well, it is truly amazing that something started in 2004 turned into the massive platform it is today.

 I had to know...what is the oldest record out there? So I went on a excavation of the table structure.

Data

Here are my findings on oldest 50 records in ServiceNow.  These were scanned on a Kingston Patch 1 release.

Rank | Table name | Sys Id | Created | Created By

  1. sys_number | f95fc1b3c31231003d2ae219cdba8f4c | 2004-02-24 15:00:00 | admin
  2. sys_ui_list | 9c276077c0a8016600b2035205b0e72f | 2004-03-11 00:00:00 | GUEST
  3. sys_script | 30000000000000000000000000000000 | 2004-03-16 00:00:00 | GUEST
  4. sys_ui_element | c22a276dc61122860088b8584e4e890f | 2004-04-04 00:00:00 | GUEST
  5. sys_ui_section | c21e426cc611228600cb1edcea93989d | 2004-04-04 00:00:00 | GUEST
  6. sys_app_application | c63ddb08c61122860198dc1999e3ff39 | 2004-04-05 00:00:00 | GUEST
  7. sys_app_module | c63ea301c61122860096e59959c682fb | 2004-04-05 00:00:00 | GUEST
  8. sys_ui_related_list | e4b4dbccc611228600eb213368193176 | 2004-04-11 00:00:00 | GUEST
  9. sys_user | 5136503cc611227c0183e96598c4f706 | 2004-05-02 00:00:00 | GUEST
  10. sys_glide_object | 9f7cc345c6112278008bfdea20d5758f | 2004-05-17 00:00:00 | pat
  11. sys_choice | a4938177c6112278001de498db9d9ea0 | 2004-05-18 00:00:00 | guest
  12. sys_calendar | bea4c03cc611227801d411166792a145 | 2004-05-26 00:10:26 | pat
  13. sys_cal_day | bea53913c611227801ae2c6fdbdef342 | 2004-05-26 00:10:57 | pat
  14. sys_job | 053a1b26c6112276008985875803029e | 2004-06-08 10:06:59 | pat
  15. sys_perspective | c4061c10c611228701127c4d6fd07dcb | 2004-07-15 18:17:40 | pat
  16. sys_ui_form | ee936660c0a8016400fd981a628f2c73 | 2004-07-24 00:36:03 | fred.luddy
  17. sys_ui_form_section | ee94c4b9c0a801640039316767f8a31f | 2004-07-24 00:37:32 | fred.luddy
  18. sys_ui_list_element | a1c487c00a000641317b6c2e02388729 | 2004-08-02 17:43:06 | pat
  19. sys_dashboard_detail | 20a36e78c0a8000901a8ecf45dfdbf6b | 2004-08-02 17:54:34 | pat
  20. sys_dashboard | 20982907c0a8000901652e61b003134a | 2004-08-03 00:42:16 | pat
  21. sys_gauge | 259affe7c0a8000901420fea550aff0a | 2004-08-03 17:03:28 | pat
  22. cmdb_ci_hardware | b0c25d1bc0a800090168be1bfcdcd759 | 2004-08-30 17:33:41 | pat
  23. cmdb_ci | b0c25d1bc0a800090168be1bfcdcd759 | 2004-08-30 17:33:41 | pat
  24. cmdb$par1 | b0c25d1bc0a800090168be1bfcdcd759 | 2004-08-30 17:33:41 | pat
  25. cmdb_ci_computer | b0c25d1bc0a800090168be1bfcdcd759 | 2004-08-30 17:33:41 | pat
  26. cmdb_ci_server | b0c25d1bc0a800090168be1bfcdcd759 | 2004-08-30 17:33:41 | pat
  27. cmdb | b0c25d1bc0a800090168be1bfcdcd759 | 2004-08-30 17:33:41 | pat
  28. sys_ui_message | cae2a472c0a80164019db21fe68975e7 | 2004-09-04 19:19:04 | admin
  29. question_choice | d1e1f476c0a8000900412f4bee45e5c7 | 2004-09-06 03:55:39 | pat
  30. sysrule_assignment | 4e44245c7f0000010031f73734d19e40 | 2004-11-19 00:38:36 | fred.luddy
  31. sysrule | 4e44245c7f0000010031f73734d19e40 | 2004-11-19 00:38:36 | fred.luddy
  32. sys_properties | 4fad0bf4c611228e01d9e895a86316c3 | 2005-01-08 00:15:35 | fred.luddy
  33. sys_trigger | 91616b03c611227b014e3d95b7f9d1dd | 2005-01-20 18:27:56 | admin
  34. sys_ui_style | a660ca267f00000101a21389acc8474a | 2005-01-24 20:19:16 | system_bootstrap
  35. sys_user_preference | f37064797f00000101d4cb4bb69a4e4e | 2005-02-08 19:27:04 | fred.luddy
  36. sys_dictionary | 0823ea33b8130300651775b34d8f51c4 | 2005-02-17 01:33:59 | system_bootstrap
  37. sys_user_role | 282bf1fac6112285017366cb5f867469 | 2005-02-19 01:12:11 | fred.luddy
  38. sysrule_escalate | 43ee9f34c0a8016501cb4caeba544bf8 | 2005-04-15 03:37:21 | admin
  39. sysrule_escalate_interval | 43efa45cc0a80165017dff153e62a011 | 2005-04-15 03:38:28 | admin
  40. sc_cat_item | e212a942c0a80165008313c59764eea1 | 2005-05-15 20:36:43 | admin
  41. core_company | 0c43af40c6112275011a4bd4c0143fbf | 2005-05-24 01:14:19 | guest
  42. cmdb_ci_spkg | 0c43baaac61122750182c132ee74bcf0 | 2005-05-24 01:14:22 | guest
  43. cmdb_software_instance | 0c452c79c611227500bfed5a8817f5dd | 2005-05-24 01:15:56 | guest
  44. cmn_location | 1059cb53c6112275003052ce61c907e8 | 2005-05-24 20:16:57 | glide.maint
  45. cmdb_related | 107bd3abc6112275009b3e5e148f28eb | 2005-05-24 20:54:07 | glide.maint
  46. cmdb_ci_netgear | 10884798c61122750108b095e21e4080 | 2005-05-24 21:07:43 | glide.maint
  47. cmdb_ci_msd | 109562a3c611227500a7b7ff98cc0dc7 | 2005-05-24 21:22:02 | glide.maint
  48. sys_report | 11e2935bc0a8016501aba72e1525e6f7 | 2005-05-25 03:25:58 | glide.maint
  49. cmdb_ci_database | 14ab928dc6112275008c6e047597484d | 2005-05-25 16:24:45 | glide.maint
  50. ast_contract_instance | 15c132c1c611227501829c6b8f97cabe | 2005-05-25 21:27:59 | glide.maint

Data Analysis

service-now.com-logo.jpg

The oldest record remaining in ServiceNow is a Number Maintenance record for the "SLA Repair Log" written on February 24, 2004.  There has to be older records of course, this is just the oldest timestamp.  

Oldest Business Rule is "Get Number", wrtten on March 11, 2004.  Makes sense as that was frequently used back in the day.

Oldest application is Workflow.  I don't think that is true however, as I don't believe Workflow was around when I started using ServiceNow pre-Aspen.

Pat Casey does hold the title of oldest record with an actual user attached to it.  It is the Phone Number field, which is depreciated, but written on May 17, 2004. 

Fred Luddy created the change_request form on July 23, 2004.  Task table was created on May 24, 2005 by glide.maint, which is less interesting.

Fun to check this out!

Code

Here is the Background Script I used to gather this information:

(function() {
  var titleMessage = "Table name | Sys Id | Created | Created By";
  gs.log(titleMessage);
  //Create DB Object Array
  var dbObjectArray = [];
  var grDBObj = new GlideRecord('sys_db_object');
  grDBObj.addEncodedQuery('nameNOT LIKEitem_option_new_backup');
  grDBObj.addEncodedQuery('nameNOT LIKEts_c_');
  grDBObj.addEncodedQuery('nameNOT LIKEv_');
  grDBObj.addEncodedQuery('nameNOT LIKEsh$');
  grDBObj.addEncodedQuery('nameNOT LIKEnp$');
  grDBObj.addEncodedQuery('nameNOT LIKEsys_template');
  grDBObj.addEncodedQuery('nameNOT LIKEsyslog');
  grDBObj.addEncodedQuery('nameNOT LIKEsys_email');
  grDBObj.addEncodedQuery('nameNOT LIKEindex');
  grDBObj.addEncodedQuery('nameNOT LIKEsys_history');
  grDBObj.addEncodedQuery('nameNOT LIKEsys_translated');
  grDBObj.addEncodedQuery('nameNOT LIKEsysevent');
  grDBObj.addEncodedQuery('nameNOT LIKEsys_metadata');
  grDBObj.addEncodedQuery('nameNOT LIKEsys_schema');
  grDBObj.addEncodedQuery('nameNOT LIKEsys_attachment');
  grDBObj.addEncodedQuery('nameNOT LIKEsys_amb_message');
  grDBObj.addEncodedQuery('nameNOT LIKEts_word');
  grDBObj.addEncodedQuery('nameNOT LIKEts_phrase');
  grDBObj.addEncodedQuery('nameNOT LIKEts_document');
  grDBObj.addEncodedQuery('nameNOT LIKEecc_queue');
  grDBObj.addEncodedQuery('nameNOT LIKEwf_log');
  grDBObj.query();
    while (grDBObj.next()) {
        dbObjectArray.push(grDBObj.name.toString());
    }
  //gs.log(dbObjectArray);
  //Gather Table Information
  for (var i = 0; i < dbObjectArray.length; i++) {
    var grTable = new GlideRecord(dbObjectArray[i]);
    grTable.addQuery('sys_created_on','!=','');
    grTable.orderBy('sys_created_on');
    grTable.setLimit(1);
    grTable.query();
    if (grTable.next()){
      var message = dbObjectArray[i] + " | ";
      message += grTable.sys_id + " | ";
      message += grTable.sys_created_on + " | ";
      message += grTable.sys_created_by;
      gs.log(message);
    }
  }
})();