Crossfuze Global Script and Config Search

//Crossfuze Global Script and Config Search

Crossfuze Global Script and Config Search


s a ServiceNow administrator, one of the most common challenges is trying to find a particular script or configuration in your own instance. Whether you’re troubleshooting or just trying to understand how something works, it would be very useful to be able to search scripts and configurations from the entire instance all at once. The problem is that there’s no built-in solution to search all of your scripts and configurations which can leave you hunting through 50 or more tables to find what you’re looking for.

In order to solve this problem, Crossfuze Solutions developed the Crossfuze Global Search!

This customization includes the following features:

  • Search 50+ tables all at once!
  • Leverages built-in ServiceNow ‘Search Groups’ functionality to make it easy to customize the search to fit your needs.
Let us know if there are tables that should be added to this search functionality. We’re also interested to hear any other general improvements you think could be made!

Important!!! All of the global search group tables in this update set need to be indexed before proper search results will be returned! This happens normally through a business rule on the search group table references but since no business rules get run during the application of an update set you’ll need to force the index creation manually after committing the update set in each instance.

I’ve added a UI action link to the ‘Crossfuze Search’ Search Group record that makes this easier. Simply navigate to the ‘System Definition -> Search Groups’ module in the instance left nav, then click the ‘Force Index Creation’ UI action link on the form. This may take a minute or two depending on your instance creation, but will only need to be done once. Once that’s complete, search indexing will be initiated for all of the tables in the search group and should function normally.

Related Links:

By | 2018-07-09T14:59:54-06:00 June 12th, 2012|Categories: System Definition|Tags: , |23 Comments

About the Author:


  1. Brian Arndt June 13, 2012 at 10:03 am - Reply

    This is great, Mark. Couple of issues:

    1. When I select the new module, I get the search box and a message ‘No search groups available to you, contact your admin for details’. I noticed in the macro that the search group name doesn’t match: tsgroups.addQuery(‘name’, ‘Scripts and Config’) should be tsgroups.addQuery(‘name’, ‘Crossfuze Search’).

    2. Performing a search from the new module’s UI page leads to no results. Searching from the global search box does indeed include the new search group, so that part is awesome.

    • Mark Stanger June 13, 2012 at 11:12 am - Reply

      That’s what I get for trying to change something at the last minute! I’ve uploaded a new update set that should solve these problems. Give that a try and let me know how it goes.

  2. Paul Hicks June 18, 2012 at 7:32 am - Reply

    Thanks Mark – implemented into our Dev environment a few minutes ago. It’s picking up Business Rules, Script Includes and Client scripts, but not:
    + Dictionary entries (table/column names)
    + Code included in Scheduled Job scripts
    + Transform Map scripts

    Is there a way of adding these?


    • Paul Hicks June 18, 2012 at 7:57 am - Reply

      Sorry – having played a little further, I’ve found it incredibly easy to work this out… I’ve added three tables to the Crossfuze search group definition and now have scheduled scripts, dictionary entries and transform maps included in the search results.

      Are there any performance implications of turning on additional tables?

      This looks like a very promising solution. Thanks for your time and expertise Mark.

      • Mark Stanger June 18, 2012 at 8:04 am - Reply

        Glad you figured it out! FYI, dictionary entries should have already been there so you’ll want to double check and make sure it isn’t in the search group twice now. There are performance implications whenever you add more tables to a search. The first is due to the fact that the table has to be indexed, and some of these admin-only tables aren’t by default. The second is the actual searching, which depends on the volume of items and tables you’re dealing with. I think you just need to use a bit of discretion and make sure that you’re only adding items that you really need to search on like this.

  3. scott halverson June 19, 2012 at 2:18 pm - Reply

    Any reason why you didn’t just use the built global search on the top right?

    I added another text search group that is limited to the role of admin. Your approach adds to an already busy left nav.

    • Mark Stanger June 19, 2012 at 2:25 pm - Reply

      A couple of reasons. The main one being that I don’t think it’s a good idea to always search on all of these items every time you perform a search using the widget in the top-right corner. The other reason is that you generally don’t want to see all of your regular task search items mixed in with all of the script and config results. They really serve two different purposes so it makes little sense in my mind to combine the two. “Busyness” cuts both ways :). Having said that, it’s built so that you can customize it as you like since I realize it’s impossible to make everybody happy with a single solution.

  4. Arlen July 13, 2012 at 4:52 am - Reply

    Hello Mark, this is receiving rave reviews from users 🙂

    Is it possible to add the wf_activity to the search group? Depending on the activity type, the variable field could be a script. It would be very handy to have the ability to search that field also.


    • Mark Stanger July 16, 2012 at 8:03 am - Reply

      Hi Arlen,
      It should be possible but I don’t think it’s as simple as indexing ‘wf_activity’ because the actual scripts are stored in a separate variables field. I purposely left it out because I didn’t have the time to dig in and figure it out at the time. This is definitely on the list of improvements if I get a few free moments to investigate. If you figure anything out in the interim please let me know.

  5. Stig Brandt September 21, 2012 at 2:55 am - Reply

    Very useful tool, but thought I’d give you some feedback and maybe you want to add some functionality.

    As we often are sending update sets between instances (consultants, partners, customers), It could be nice to somehow have

    – Updated by on all the records
    you can then see who(username) last updated the record
    – color on records last updated by the system (ServiceNow updates etc.)
    – color on records updated by user
    – Maybe a baseline and compare functionality, so you can make a search 1/2-2012 and then again 1/3-2012.

    Well just a couple of suggestions.

    Have a nice day

  6. Jim Uomini December 21, 2012 at 3:48 pm - Reply

    Typical Stanger elegance. Thanks.

  7. Michael Domke April 9, 2013 at 9:29 am - Reply

    Maybe I’m missing something but I just downloaded this update set and it seems there are only entries in the update set for the ts_search table. There’s mention in these comments about a new module and UI Macro. But those seem to be missing from the update set.

    Am I missing something?


    • Mark Stanger April 9, 2013 at 10:58 am - Reply

      Not missing anything. The original functionality leveraged these components, but ServiceNow crippled it with the Berlin release. The functionality now is just the standard global search so a dedicated module and macro aren’t necessary.

  8. Scott Halverson March 12, 2014 at 12:08 pm - Reply

    Hi Mark,

    I’ve got some additional ones I’d like to see added:
    Table Transform Map (sys_transform_map)
    Field Map (sys_transform_map)
    Dictionary Entry Override (sys_dictionary_override)
    View Table (sys_db_view_table)
    Email Client Canned Messages (sys_email_canned_message)
    Event Registration (sysevent_register)

    And one I’d like to see removed
    Application (cmdb_ci_appl)

    Also how does this work when applying an update set? I’m curious because for all the non-indexed tables, the dictionary attribute has to get flipped (index = true) and an event get fired to do the indexing. When applying via update sets business rules don’t run.

    Thanks – great work!

    • Mark Stanger March 12, 2014 at 3:30 pm - Reply

      Thanks Scott, I appreciate the feedback. I’ve made the table modifications you suggested and updated the download accordingly. Also, regarding your question on the indexing you’re correct that the business rules won’t be run, therefore the tables won’t be indexed as they should. I’ve added a UI action to the ‘Search Group’ form along with instructions in the article above that should address that.

  9. Scott Halverson December 2, 2014 at 1:01 pm - Reply

    Thanks so much for adding those additional tables to the search. Now that I’m doing more CMS could you also add the below tables to the solution. Thanks!


    • Mark Stanger December 2, 2014 at 6:02 pm - Reply

      Thanks Scott. I’ve added these to the update set and posted the new version.

  10. Scott Halverson January 14, 2015 at 9:19 am - Reply

    Hi Mark, Can you add another table that came with Eureka; sys_filter_option_dynamic Thanks in advance.

  11. Scott Halverson February 5, 2015 at 2:18 pm - Reply

    I must be the one of the few people that has become dependent search. Can you also add catalog variables (item_option_new)

  12. kevin August 25, 2015 at 10:10 am - Reply

    does this plugin work with fuji? I loaded it today, but I do not see it listed our modules

    • Mark Stanger August 25, 2015 at 11:22 am - Reply

      It does, but it hasn’t included its own module for a while now. It just works using the standard global search box in the top-right corner. Search results for admin tables will be available for the admin role.

Leave A Comment