A
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:
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.
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.
That did it. Thanks, Mark.
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?
Regards,
Paul
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.
Regards,
Paul
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.
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.
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.
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.
Thanks,
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.
Thanks,
Mark
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
Stig
Typical Stanger elegance. Thanks.
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?
Thanks,
Michael
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.
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!
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.
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!
content_site
content_page
content_block
content_block_header
content_block_menu
content_block_programmatic
content_block_lists
content_block_static
content_block_flash
content_link
content_block_iframe
content_theme
content_css
sys_ui_macro
db_image_list
content_config
content_block_detail
content_type
content_page_rule
sys_widgets
Thanks Scott. I’ve added these to the update set and posted the new version.
Hi Mark, Can you add another table that came with Eureka; sys_filter_option_dynamic Thanks in advance.
I must be the one of the few people that has become dependent search. Can you also add catalog variables (item_option_new)
Thanks!
Hey Scott, thanks for the feedback! This one may already be included, but even if it isn’t, you can add any additional tables whenever you want just by adding them to the Search group.
http://wiki.servicenow.com/index.php?title=Administering_Global_Text_Search#Search_Groups
does this plugin work with fuji? I loaded it today, but I do not see it listed our modules
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.