Quantcast
Channel: Blog - ServiceNow Elite
Viewing all 191 articles
Browse latest View live

Building an Enterprise Class CMDB

$
0
0

Are you storing information about your servers, laptops, and network equipment on spreadsheets or in a paper box?  Maybe you already have an CMDB, but it has a lot of issues and no one trusts it.

How do you even begin to get to an "enterprise-class" CMDB?  One that is powerful enough to manage the needs of your company and demands of users. This article will show you how and demonstrate some ideas make your journey a little bit easier.

What is Configuration Management (CMDB)?

From Wikipedia:

A configuration management database (CMDB) is a repository that acts as a data warehouse for information technology (IT) organizations. Its contents are intended to hold a collection of IT assets that are commonly referred to as configuration items (CI), as well as descriptive relationships between such assets.

Configuration Items can be Servers, Laptops, Databases, Network equipment, Printers, Application, Website, etc.  I usually think of a CMDB as the components that make up the company's network.  However that isn't exactly true, it is a collection of IT assets.  It can be a building, cloud resource, mobile phone, and even people sometimes.  It depends on your company and what assets are important for you to capture.

Building the CMDB

Deciding Configuration Item Types

ServiceNow includes over 215 Configuration Item Types in the base system.  These types are Servers, Laptops, Databases, Network equipment, Printers, Application, Website, etc. 

Should you capture information for all these types?  No.

Why is the answer no?  Building overly large CMDB will make searches slow and maintenance unwieldy.  Before you build your CMDB, plan out what data is important and capture that well. Capturing everything isn't necessarily wrong, but it usually introduces more issues than it helps.

CMDB Data Import and Discovery

There are various ways to import/create/populate the data in the CMDB.  The worst ways to do this are importing spreadsheets and manual input.  Using these methods usually mean your data will be out-of-date before you are done entering it.

I suggest getting CMDB data from a Discovery application such as ServiceNow Discovery, SCCM, Altiris, HP uCMDB, BMC Atrium etc.  These applications scan the network and update CMDB information automatically insuring data is correct.  

Which Discovery application to chose?  Read this article: ServiceNow Discovery vs Integration with other Discovery Applications

If possible, use Discovery before importing your old data into a new ServiceNow system.  Your old data is likely out of date, use the new information if you can.

Using the CMDB

Asset Management

One of the confusing parts of ServiceNow is why there is a CMDB and Asset Management.  The reason why can be summed up in this statement:

Asset management and configuration management (CMDB) are related, but have different goals. Asset management focuses on the financial tracking of company property. Configuration management focuses on building and maintaining elements that create an available network of services.

Once you have that CMDB framework, use Asset Management to make it even more valuable.  Put a cost to Configuration Items, make sure servers and laptops are deployed and retained properly.  

Build the CMDB using discovery, but pay with it using Asset Management.  Something like that.  

Service Catalog and Request Management

You can use the Service Catalog to have items for Server Builds, Server Decoms, and Server Updates.  By using the workflow that Request Management offers, you can insure certain data (that isn't discovered) is updated in ServiceNow and servers are correctly managed. 

Change Management

Change Management helps organizations understand and work to minimize risks of changes to the IT environment. By having a robust CMDB, you can detect collisions and notify users of impending changes to company infrastructure.  

Change Management is one of the most important applications in ServiceNow.  Without it a company infrastructure changes are timebombs. It is not a question that a costly outage will occur, the question is when.  Mitigate that risk by using Change Management. Change Management requires a CMDB to be truly effective.

Monitoring

Using a monitoring application, you can auto-create incidents against CIs in ServiceNow when an event occurs.  There are many different monitoring applications you can use with ServiceNow.   ServiceNow has Event Management, and you can use that or hook others up to ServiceNow with a plugin, Webservices, email, or other.  Event Monitoring requires a CMDB for best usage.

Incident and Problem Management

Of course using CMDB data in Incident and Problem management is great.  You can track an issue straight to the CI that caused it and find solutions.  You can run reports to track CIs with the most issues or important CIs.  You can run Incident and Problem without an CMDB, but the effectiveness is greatly diminished.

CMDB Maintenance

Running a CMDB unchecked is not a good idea.  Especially if you have ServiceNow Discovery or various data import sources, you should run reports to determine if the CMDB is accurate.

I suggest setting periodic meetings to check CMDB data for accuracy and eliminate duplicates.  One idea is to generate a monthly incident to make sure maintenance is completed.

Here is an article about how to build duplicate record reports: Duplicate Record Scripts

Here are some examples of other reports you can build (Some are included in the base system)

  • Blank IP
  • CIs Not Discovered
  • Duplicate CI by IP Address
  • Duplicate CI by Serial Number
  • Not Classified
  • Not Responding
  • Connection Errors

Good CMDBs are unnoticed

If you think you will get a parade based on your efforts with the CMDB, you are mistaken. People typically only notice issues with a CMDB, but never realize how well constructed it might be. A good CMDB is transparent to the user and they take it for granted. 

If you are receiving no complaints about your CMDB, this means you did a great job.  :)

Mike

 


Adapting to Disruptive Technology

$
0
0

Platforms such as ServiceNow can be radically different than the current processes at your company.  How do you adapt to these technologies and survive this dramatic change?

What is Disruptive Technology?

Definition from Wikipedia

A disruptive innovation is an innovation that helps create a new market and value network, and eventually disrupts an existing market and value network (over a few years or decades), displacing an earlier technology.

I like this quote in particular from Wikipedia

Technology, being a form of social relationship, always evolves. No technology remains fixed. Technology starts, develops, persists, mutates, stagnates, and declines, just like living organisms.[14] The evolutionary life cycle occurs in the use and development of any technology.

Examples of Disruptive Technology

In my lifetime, I have seen many examples of disruptive technology:

  • VHS Tapes  DVD Blu ray Digital Download
  • 5 1/4" Floppy → 3 1/2" Floppy Disc → 100MB Zip Disk → Tape Drive → External Hard Drive → Flash Drive → Cloud Storage
  • Rotary Telephone Push button Telephone Cordless Telephone Cell Phone (Nokia 5110) > Smart Phone
  • Incandescent Light Bulbs → CFL Light Bulbs → LED Light Bulbs

There are also many other examples of disruptive technologies available.  It is very exciting to think about the next 20 years.  They are even beginning to predict jobs that will be lost to robots

The Innovator's Dilemma and Survival Factors

There is a book called the The Innovator's Dilemma, which really discusses disruptive technology.  The book references that  successful companies can put too much emphasis on customers' current needs, and fail to adopt new technology or business models that will meet their customers' unstated or future needs. He argues that such companies will eventually fall behind.  Here are some survival factors relating to software innovation.

Denial and False Claims

Companies and people will tend to deny that a new technology will affect them or is better than they are currently using.  Although some people love to predict the next disruptive technology, their predictions are not always true.  This can leave an element of doubt and further impedes adoption of new technology.  

History and Change is Difficult

A few years ago, I was working on a ITSM software implementation and noticed it was difficult to get a projector, and the employees were obsessed with print layouts in the software.  Their current software they were using was difficult to use, and so they were used to printing everything.  I went to a Change Advisory Board meeting, and needed to use a moving cart to haul in the line feed printouts for the meeting.  

I suggested they get flat screen monitors or projectors in their conference rooms instead. They were wasting a lot of time and money printing out everything and plus it was a security risk. I was called a tree hugger and environmentalist.  I was laughed at.  They had always done things that way and I didn't know what I was talking about.

Three months later they were bought in a merger.  Turns out the buying company had flat screen monitors in every conference room.  They quickly installed monitors in their conference rooms...to avoid being laughed at. :)

This example just showcases that change is difficult, and it may take some time (or the right motivation) for people to change.

Sunk Costs

Many of us have started working on a project and mid-way through the project realize there is a better way to do things.  However since you already invested so much money, you can't cancel the project now.  Sunk costs are good in that they provide motivation to complete projects.  The negative aspect is you feel you need to continue using an application or finish an implementation no matter what because you have already invested so much.

In the Weeds

In the weeds is phrase that means, "Immersed or entangled in details or complexities."  Many of us are so busy in our daily tasks, that we don't notice or recognize a new technology is available.  These daily tasks are so demanding that selecting new technologies may be based on the one that looks the easiest to use, not necessarily the best technically or is innovative.  Sometimes you are just so late recognizing the business change that affects the entire company.  Examples of this are the video rental business, 

How to Adapt to Disruptive Technology

Create the Bandwagon

Just like the new football fans at every Superbowl, excitement and popularity brings fans to software. 

Try to build champions of the software within your companies.  Win over important stakeholders.  Create buzz with marketing, letting people know of prior success with the software and what it can do.  The fact that ITSM software often requires licenses, creates an perceived shortage.  Use this to your advantage, everyone wants to party at the best club.

It may not always easy to form that bandwagon.  You will get naysayers, haters, and doubters.  It isn't fun sometimes, but being the one that brought the great technology to the company is a great reward.

Be Adventurous

You have to take on risk to be innovative.  Not all ideas are successful.  Try new technologies and see if they work for your company.

Sometimes it takes certain people who love new gadgets and software to show you new technology.  This innovators are a vital asset to a company and their suggestions should be considered.  Monitor the results of new technology actively to see if it is success or a failure, giving it every possibility of success.

Trust and Reliability

Reliable and solid software builds trust and people will begin to trust it more than previously used technology.  Don't let the customer/employee down, build what they want if possible, and provide a great user experience.  Word gets out that your software does what they needed.

What is ServiceNow aiming to disrupt?

So far I've talked in general about disruptive technology, but not about ServiceNow.  Here are some ways I know of that ServiceNow has attempted to disrupt certain markets.

1. ITSM Software Market

On May 11, 2011, ServiceNow disrupted my life.  After hearing about ServiceNow repeatedly, I had tried it myself and changed to being a ServiceNow developer.  ServiceNow's programming and architecture were just so far ahead, I had to ditch my previous ITSM software knowledge and switch.  ServiceNow really dominated the ITSM software market so far, it has been a great change for all us old developers.

2. Custom Application Development

Next they went PaaS (Platform-as-a-Service).  ServiceNow Share, ServiceNow Store, were created.  ServiceNow gave developers an easy way to make applications.  This opened the door to replacing many existing applications at companies.

They are going after new applications and bringing them into ServiceNow as a platform, not just IT Service Management anymore.  They are trying to expand into HR, Facilities, Finance, Marketing, etc.

3. IT Operations Management

In the last few years, they have brought and built new applications just for IT Operations

  • Discovery. Capture infrastructure configuration details quickly and accurately
  • Service Watch. Discovery map, monitor, assure enterprise business services
  • Event Management. Rapdly respond to infrastructure events
  • Cloud Provisioning. Provision public and private clouds in minutes
  • Configuration Automation. Define, automat, and govern data center infrastructure
  • Orchestration. IT process automation and business process automation for the enterprise
  • Password Reset. Reduce service requests by 20%

4. Multi-Tenant Software Providers

If you watch the K15 Day 3 Keynote, you can see how ServiceNow is going after multi-tenant platform providers.  

5. Email

The next release of ServiceNow, Geneva, is being released in the fall.  Geneva introduces more of a chat experience within the application.  They are going after email, which I agree with.  Email is not a great way to conduct business.

Conclusion

Adapting to disruptive technologies means that you may be winning against other companies.  Building strategies and being proactive can bring great rewards.  ServiceNow is definitely on the right track, and makes them very exciting to see their next moves.

ServiceNow Performance Review

$
0
0

How is your ServiceNow instance running?  Here are some checks you can do to insure your ServiceNow instance is staying on rails rather than off.  You might find some issues in your instance after reading this!

Review User Accounts

  1. Are the self service accounts correct? Should these users have access to Self Service?
  2. How many active local accounts do you have?  Should you have local accounts?  A local account is one that doesn't come from Active Directory, Okta, etc and has the password stored in ServiceNow
  3. How many licenses do you have for ServiceNow Licensed access.  Do the users fall under that limit?
  4. Check Licensed User Accounts that haven't logged in in over 60 days
  5. Review admin users and remove unnecessary access
  6. Review access and rights for Service Accounts
  7. Review corporate accounts and determine if users are active in Active Directory, Okta, etc.

Find Stalled Tasks

  1. Open Tasks with Assigned to Deactivated
  2. Approval on Closed Tasks
  3. Approver is deactivated
  4. Caller is deactivated on incidents
  5. Requests with Requested By is deactivated

Deactivate Unused Applications and Functionality

  1. Deactivate Unused Applications
  2. Deactivate Unused Modules
  3. Deactivate UI Actions, related lists, and functionality that don't want being used.

Errors and Issues

  1. Request Stages properly set and Requests being closed at end of request
  2. Work Queues show correct and appropriate tasks
  3. Incidents being closed properly
  4. Check the error, warning, and script logs for errors
  5. Check stats.do for memory or performance issues

 Infrastructure and Data

  1. Mid Servers up and operational
  2. Discovery properly discovering CIs without errors
  3. ServiceNow Version is up-to-date and patched
  4. Check Table Row counts for large tables
  5. Look at Table Rotations to insure correct tables are rotated correctly
  6. Deleted Records table is correctly adding appropriate records to deleted records table
  7. Look at tables for Duplicate Records
  8. Check Reports and Dashboards for load times
  9. Expired KB Articles and Feedback
  10. Check for blank or bad homepages

Coding Practices

  1. Check number of update sets and update set naming convention
  2. Look for Descriptions in Update Sets
  3. Check Default Update Set for high number of records or admins using Default update set
  4. Review Code Migration Procedures
  5. Tasks Created in Development instance.  If you haven't locked out users from your Sandbox, Test, Dev, UAT instance, you should check to see if they are still using Production like they should.

Interfaces

  1. Check number and types of interfaces used in ServiceNow
  2. Review Transform Maps and deactivate unused maps and maps without an import set
  3. Review Scheduled Jobs

Hope that helps,
Mike

Find Active Requests with all Closed Requested Items

$
0
0

How to find any active requests that have all their requested items closed.  This can occur due to not setting the Stage field in your Item workflows.

In ServiceNow there is an important Business rule called "Close Parent if Required".  After each Requested Item is closed, it checks if all the related Requested Items are closed.  If all of them are closed, the Request is closed.

If you don't use Stages properly in your workflow, such as not using them at all, this can cause the Request to not close.

You can fix this by adjusting your workflows to have stages.  However to find all the existing Requests with this issue, you can run this script:

Find Active Requests with all Closed Requested Items

1. Elevate your privileges to security admin
2. In scripts - background run this script

findActiveRequestswithClosedItems();
function findActiveRequestswithClosedItems() {
var grRequest = new GlideRecord("sc_request");
grRequest.addActiveQuery();
grRequest.query();
gs.print('BAD REQUESTS, No Active Requested Items :(');
while (grRequest.next()) {
var grRequestedItem = new GlideRecord("sc_req_item");
grRequestedItem.addQuery("request",grRequest.sys_id);
grRequestedItem.addActiveQuery();
grRequestedItem.query();
if(grRequestedItem.getRowCount() == 0) {
gs.print(grRequest.number);
}
}
}

You can then use the results of this script to go out and close some requests.  

ServiceNow Event Management

$
0
0

This article covers the benefits of using ServiceNow event management, some example steps to implement, and tips and tricks for usage.

What is ServiceNow Event Management?

From the ServiceNow Wiki on Event Management:

ServiceNow Event Management (SN EM) automatically creates actionable alerts from events captured by third-party monitoring tools. A configurable dashboard provides a consolidated view of all service-impacting events, including a list of current active alerts, impacted services, and associated incidents. In order to generate qualified alerts, events are processed through filters that normalize and de-duplicate the incoming stream. Alerts are then mapped to configuration items (CIs) in the ServiceNow Configuration Management Database (CMDB) and rules may be applied to trigger automated actions.

In short, this allows events from Monitoring tools to go directly into ServiceNow. 

Benefits of using ServiceNow Event Management

  1. Event Management Incident Creation. Filter incoming events to reduce noise andautomatically generate only qualified alerts that create incidents. Automatically trigger IT processes for rapid remediation of service-impacting issues.  Prioritize issues appropriately to ensure the availability of critical business services.
  2. Costs. The ServiceNow cost per node for SN EM is likely less than using other "middle man" monitoring systems like Tivoli Netcool/Omnibus.  You can save thousands of licensing costs by making the switch.  Companies like FICO and Kimberly-Clark have done this and saved a lot.  I can't speak for FICO due to confidentiality, but I do know about Kimberly-Clark. Kimberly-Clark eliminated duplicate incidents, improved reporting and control, and saved $250,000 in annual maintenance costs.
  3. Leverage Existing Infrastructure Monitoring. Connect existing monitoring tools easily to ServiceNow through a simple, high throughput REST API or use SNMP Traps.  Consolidate and eliminate some monitoring tools to all feed into ServiceNow.
  4. Central Event/Alert Location.  With SN EM, events and alerts are now stored within ServiceNow instead of just in other monitoring tools.  You can filter and display that information any way you want with highly-customizable ServiceNow.  Show the technician on an incident the exact time an event occurred, the CI, and other critical monitoring information.  Use dashboards to view events, alerts, and associated incidents all within ServiceNow.
  5. Market Skillset.  At least in my situation, there are less monitoring developers around than ServiceNow JavaScript developers. You still need monitoring people with SN EM, but ServiceNow developers can assist while a monitoring person is out sick or on vacation.
  6. Upgrades.  Upgrades with many monitoring applications can be costly and you will require implementation services.  As you know with ServiceNow, upgrades are pretty easy and amazing.
  7. Availability and Scale.  ServiceNow has the proven availability.  Often on-premise solutions can't match 99%+ availability.  Also ServiceNow can easily scale to your enterprise.  
  8. Innovation.  ServiceNow is hungry in this space, and is willing to make SN EM a better product and innovative.  Other monitoring tools are not as innovative in comparison.

How it works

Here is the basic process on how ServiceNow Event Management works:

  1. Monitoring System: Event Occurs. Event occurs in a monitoring system.  An important event could an unreachable server, free disk space is low, high memory usage, cpu utilization, etc.
  2. Monitoring System: Event Trigger. Monitoring system triggers an action to send the event to SN EM.  This can be by REST API, SNMP Traps, Email (not recommended), or any integration method ServiceNow offers.  An integration needs to populate the em_event table in ServiceNow.
  3. ServiceNow: Receives Event.  ServiceNow will receive the event, but first it must pass event filters.  ServiceNow has event filters in SN EM that filter out the events you only care about keeping and whether you want events to duplicate.  I encourage keeping the filters within ServiceNow instead of the monitoring system, as you will be able to adjust them easier later in ServiceNow.  
  4. ServiceNow: Alert Creation. Using the event details in the "Additional information" field of an event,  Event Transform Rules and Event Transform Maps move event data to a new Alert record.
  5. ServiceNow: Incident Creation. Alert Rules determine when incidents or other records should be created from a created alert.  Often it would be a 1:1 ratio of alerts to incidents.  However if you have a maintenance window for certain CIs, an incident could be suppressed at that point.  

Implementation Step 1 - Acquire

You decided you want to use ServiceNow Event Management.  So to do that, you first need to purchase licenses and install the plugin.

To use SN EM you need to follow some steps to have it available in your ServiceNow Instance

  1. Get Licenses.  SN EM is licensed per node.  So if you are going to monitor 2000 servers, you need 2000 ServiceNow EM licenses.  Currently it is licensed on a tier setup, the more nodes you license, you get a discount per node.  Contact your ServiceNow account rep to get licenses.
  2. Request Plugin.  Once you get the licenses, you login into ServiceNow HI support and request the plugin to be installed.  

Implementation Step 2 - Initial Setup

After the plugin is installed, you can begin configuring SN EM.  Of course, you should do this in a Development instance first!  Without proper testing you can flood your ServiceNow instances with events, alerts, and incidents.  Although we were not able to break ServiceNow with events (and we tried), I think it would be possible if you did this without precaution.

  1. Import CIs into the CMDB.  You should have some CIs in your ServiceNow instance so you can automatically bind events to CIs.  I prefer to have discovery import the CIs, but if you have a validated source of CIs you should import them in ServiceNow.
  2. Setup Midservers.  Your event monitoring system needs to communicate with ServiceNow.  If it is not exposed to the internet (probably not and not advised), you need a mid server installed to communicate.  You might need more than 1 mid server setup depending on the monitoring systems you use and network setup.  
    1. Extract install files
    2. Install Mid server
    3. Configure config.xml: mid server name, username, password
  3. Monitoring User. Create a ServiceNow user to communicate between the monitoring system and ServiceNow.  Roles needed might include: all the soap roles, evt_mgmt_integration, rest_service, itil, mid_server
  4. Credentials (Optional).  For some monitoring systems you may need to install a credential.  REST API requires a credential.
    1. Discovery > Credentials > New
    2. Fields to enter: Name, Type, Applies to, Username and Password.
    3. Click Save
  5. Configure Connector Instance (Optional).  This part you might need help with a monitoring technician.  You need to add IPs, credentials, ports, and IP ranges for each connector.  You can use Connectors, SNMP Traps, or other methods to create events, so this may be optional depending on the method you want to use.
  6. Configure SNMP Trap Collector (Optional).  SNMP Trap Collectors are located in the Left Nav Bar under Mid Server > SNMP Trap Collectors.  You may need help from a monitoring person to get the correct port.  Note the default port to use is usually 162.  Use a different port if that conflicts with your environment setup.
  7. Import MIB Files (Optional).  If you are using SNMP traps, you would need to import MIB files and load them in the correct order.
  8. Restart Mid Server service.  Sometimes with Credential and mid server changes, you need to restart the mid server service.  That might just be superstition on my part however.

Implementation Step 3 - Configure Filters and Rules

  1. Monitoring On. Turn on monitoring to your development ServiceNow instance.  If you have successfully connected, you can watch the events pour in.  If not, go back to Step 2 and reconfigure.
  2. Configure Event Filters.  Now that events are coming in, setup some event filters to filter out the events you only care about keeping and whether you want events to duplicate.
  3. Configure Event Transform Rules and Event Transform Maps. Using the event details in the "Additional information" field of an event, setup Event Transform Rules and Event Transform Maps move event data to a Alert record.  There should be a ratio of many events to fewer alerts.  
  4. Configure Alert Rules.  Alert Rules determine when incidents or other records should be created from a created alert.  Often it would be a 1:1 ratio of alerts to incidents. However if you have a maintenance window for certain CIs or don't want to generate incidents for lower priority alerts, an incident could be suppressed.  That means the alert could be configured to not generate an incident.  
  5. Setup Event Properties.  There is a event properties file located at Event Management > Properties.  It contains some important properties you might consider changing such
    1. Resolving an incident closes the associated alerts
    2. Reopening alerts will create new incident
    3. Closing alerts will close the incident

Implementation Step 4 - Add Improvements

By step 4, you should have the the monitoring system creating events, events creating alerts, and alerts creating incidents.  At this point you will notice other improvements you can make. 

  • Business Rule to add additional info to Incident.  You can supply a template to map certain data from the alert to the incident.  However there is also other data you might want to move over.  You can create an "after" business rule on the em_alert table to do that.  In that business rule, you use a glide record query on the incident to update it. Hopefully this will be improved in later releases of SN EM so this Business Rules is no longer needed.
  • KB Articles to fix alert in incident notes.  Business rule to do that.
  • Event or Alert Updates in incident.  Maybe a business rule or related lists
  • Can't close incident with open alert.  This could be UI Policy or Business Rule.

There will lots of innovative ideas that can happen here.  This is one of the great benefits of SN EM is that you CAN do this in ServiceNow.

Implementation Step 5 - Testing and Production Cutover

After you get it configured and running.  You need to test it by flooding it with events and see how it is handled.  After testing, you might be ready to cutover to production.  Hopefully you captured all those updates in an update set!  

You may want to consider an "easier" cutover to production and move event management but have the incident creation turned off at first.  That way you can compare alerts and see if it is working properly.  I personally feel that testing should be done in test and not in production, so I don't really like that method.  It does lower the implementation risk however, so maybe it is better though.

Troubleshooting

Here is a list of things to check if things are not going to plan.

  • Mid Server Service is running.  You need that for the monitoring system to connect to ServiceNow.
  • Mid Server Service is upgraded to latest version.  Version difference might keep event management not working in upgraded versions of ServiceNow.  Mid Servers are supposed to automatically upgrade, but on some networks that may be restricted.
  • Monitoring application is running.  Of course that needs to work!
  • Events are being processed (Event Processing Statistics).  It will take a lot to break this, 250K event floods just slow it down.  We have seen a node stop and ServiceNow needed a restart to get events processing, but that was due to a mid server version issue.
  • Alert Rules, Event Transform Map, and Event Transform Rules are configured correctly. If need these configured correctly to create incidents in the end.  Did you recently make an update?  Check your update sets and versions.
  • Errors in Warning or Error logs.  A place to check for errors or warnings.  If you can't figure out what the error means, often ServiceNow HI Support is great at helping with that.

Hope this helps!
Mike

Creating ServiceNow CMS Sites

$
0
0

Tips and examples for creating ServiceNow CMS sites for your company.

Many CMS sites are designed similar to a company's intranet website.  Colors, layouts, and fonts from the company's website are all used to build a CMS site.  Other times a CMS site is built to hold new applications that have a easy layout to use.

Tips for learning CMS Development

Here are some tips for building your first CMS website with ServiceNow.

  1. Build a standard website.  You might not have time to do this, but if possible build a few standard websites on the internet before starting ServiceNow CMS.  I had built at least 15 websites before starting a ServiceNow CMS project. Even a basic site can teach you basic css, html tables, links, and anchor tags.
  2. "Adjust" a sandbox environment.  Go out to a ServiceNow sandbox environment and make all kinds of adjustments to prepare yourself for a first ServiceNow CMS site.
  3. Use a new login id. when you are ready to build your first ServiceNow CMS site in a development instance, use a new login id so that you can easily find items you created.
  4. Create a New Application.  In your ServiceNow Dev instance, create a new application to hold the new CMS site.  Applications are nice if you create a CMS site you dislike. You can delete the application and it will also delete all the CMS items you created.  Nice if you are experimenting with different CMS items.
  5. Copy the OOB Employee Self-Service Site.  Don't adjust the OOB site that comes with a ServiceNow instance.  Click the "Copy Site" button on the site and leave the OOB site alone.  Be aware copying a site takes a while sometimes and also can timeout the screen, but does copy the site.  Copying a site allows you a way out if you create a site you want to delete later.
  6. Use a short site name.  Don't name your new site a long name, like "Mike Awesome Site of 2014".  Keep it simple and short like initials of the company.  The page names have size limits and other issues with long site names.
  7. Learn Login Rules.  Learn login rules and other tricks to manage multiple CMS sites.
  8. Backup your site. Use an update set and backup your site to XML as needed.  You may need to delete the site or go back to previous version and you work through the development process.
  9. Learn how to delete your site.  Deleting a site isn't as simple as deleting the main site.  You have delete all the related pages and records.   You can delete all the CMS files you created by deleting the application you made.  Otherwise using an new login id will help to identify all those records for deletion.

Example: Adding a Background to a CMS Site

This is the OOB CMS site that ServiceNow provides.  Let's add a background to it!

Step 1: Add Image

Add a background image called: snebackground.jpg.  This can be added in the "Images" in the Left Navigator.

Step 2: Switch Layout

Switch Portal Page to Layout: CMS 1 Column

I find this layout easier to manipulate than other layouts.

Step 3: Add Background

Adjust this Style Sheet: Gray CSS - Base

BODY {
background: url(snebackground.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
height: auto;
margin: 0px;
padding: 0px;
border: 0;
font-weight: normal;
font-family: Arial, Helvetica, Geneva, sans-serif;
}

Step 4: Make sections transparent

Adjust this Style Sheet: Gray CSS - Base

Add these items to the Style Sheet:

/****** Content Body Styles ****************
********************************************/

.cms_layout_table_1_column
{
background: transparent;
}

.cms_layout_container_1_column
{
background: transparent;
} 

.cms_layout_table
{
background: transparent;
}

Step 5: Give a background to Section Blocks

Adjust this Style Sheet: Gray CSS - Menu

div.cms_menu_section_blocks {
width: 260px;
height: 260px;
float: left;
border-style: solid;
margin: 0px 12px 12px 0px ;
border: 1px solid #e0e0e0;
padding: 10px;
background: #EEEEEE; 
}

Step 6: Remove Decorative Top and Bottom Border

Edit Portal Page: Portal

Now we don't have the borders, but still have that top border above the section blocks.

Step 6: Remove Top border

Adjust this Style Sheet: Gray CSS - Base

TD#dropzone0{
padding-bottom: 20px;
}

Now we have no white border.  However we should adjust the spacing of the blocks.

Step 6: Adjust Block Spacing

Adjust this Style Sheet: Gray CSS - Menu

/***** NOTE: DIV.cms_menu_section_blocks HAS MULTIPLE EXTENSIONS ***********/ 
DIV.cms_menu_section_blocks { /* controls the actual grid and style of the menu contained within each of the supermenus */
width: 260px;
height: 260px;
border: 1px solid #e0e0e0;
float: left;
margin: 0px 10px 12px 12px;
padding: 10px;
list-style-type: none;
list-style-image: none;
}

Step 7: Change Color of Navigation Bar

Edit Portal Page: Portal
Edit Header
Change Bottom Menu Row to #000

And so on, you can continue to adjust CMS sites to anything you might ever want.

Hope that helps,
Mike

 

How to Consume Third-Party REST Webservices

Connect ServiceNow to Microsoft Excel with REST Webservices

$
0
0

I don't really like this post in a way, as I believe data should stay in ServiceNow.  When you migrate data outside of ServiceNow, you expose it to potential security and PCI issues.

However this is a good example of how to use REST Webservices with ServiceNow.

Here is the video from youtube that details how to do this.  The video shows the major points and it pretty cool. However it misses some critical steps which I detail below (Step 3 in particular)

 

How to Connect ServiceNow to Excel using REST Webservices

Step 1: Google Chrome Advanced REST Client Extension

1. Watch the video above.
2. Read the Wiki on REST Webservices
3. Download and install the Chrome Advanced Rest Client Extension
4. Use the Chrome REST Plugin to put in REST details
- GET (That pulls data from ServiceNow)
- Instance: https://<yourinstance>.service-now.com/api/now/table/incident
For <yourinstance>, try a developer instance of ServiceNow.  Don't try on your company's instance first.
5. Add Headers (in the form section)
Accept | application/xml
Authorization | Click Contruct in value field
Enter Basic login (Note the user account you use needs the admin, rest_webservices, and/or itil role)
6.  Run the query.  If successful, you will need to copy the details to notepad (especially the authorization string, which is something like Basic Yxxxxxxx32434Mw==)  You will need that in the excel part.

Step 2: Create the Excel File

1. Create a new excel file
2. Create two new worksheets: incidents, problem.  (Note the spelling is important)
2. Enable the "Developer" tab in the Ribbon if not enabled.
3. Click Developer > Visual Basic
4. Click New > Module
5. Paste this code in there from the video (switch out the InstanceURL and Authorization code lines with your info)

Sub ServiceNowRestAPIQuery()

' Replace with your Service Now Inctance URL
InstanceURL = "https://dev16551.service-now.com"
' Replace with your Authorization code
AuthorizationCode = "Basic YWRtaW46U0NONHF1aWw="
' Add more tables ascomma seperated with no spaces
TableNames = ("incident,problem")

Dim ws As Worksheet
Dim objHTTP As New WinHttp.WinHttpRequest
Dim columns As String
Dim Header As Boolean
Dim jsonString As String
Dim Resp As New DOMDocument
Dim Result As IXMLDOMNode
Dim ColumnsArray As Variant

TablesArray = Split(TableNames, ",")

For x = 0 To UBound(TablesArray)

'Table Choices
Select Case TablesArray(x)

 Case "incident"
Set ws = Sheets("incidents")
columns = "number,company,close_notes,impact,closed_at,assignment_group"
ColumnsArray = Split(columns, ",")
OtherSysParam = "&sysparm_limit=100000"
SysQuery = "&sysparm_query=active%3Dtrue"
 
Case "problem"
'Sheet name
Set ws = Sheets("problem")
'Columns to Query
columns = "number,short_description,state"
ColumnsArray = Split(columns, ",")
'Query filter Parameters
OtherSysParam = "&sysparm_query=state=1"
'Other Query Parameters
SysQuery = ""
 End Select

URL = InstanceURL & "/api/now/table/"
Table = TablesArray(x) & "?"
sysParam = "sysparm_display_value=true&sysparm_exclude_reference_link=true" & OtherSysParam & SysQuery & "&sysparm_fields=" & columns
URL = URL & Table & sysParam
objHTTP.Open "get", URL, False
objHTTP.SetRequestHeader "Accept", "application/xml"
objHTTP.SetRequestHeader "Content-Type", "application/xml"

' Authorization Code
objHTTP.SetRequestHeader "Authorization", AuthorizationCode
objHTTP.Send '("{" & Chr(34) & "short_description" & Chr(34) & ":" & Chr(34) & "Test API2" & Chr(34) & "}")

Debug.Print objHTTP.Status
Debug.Print objHTTP.ResponseText
ws.Select
Header = False
i = 1
Range("A1").Select
Cells.Clear

Resp.LoadXML objHTTP.ResponseText
For Each Result In Resp.getElementsByTagName("result")
 For n = 0 To UBound(ColumnsArray)
If Header = False Then
ActiveCell.Offset(0, n).Value = ColumnsArray(n)
End If
ActiveCell.Offset(i, n).Value = Result.SelectSingleNode(ColumnsArray(n)).Text
Next n
i = i + 1
Header = True
Next Result
 'MsgBox Time
Next x
End Sub

Step 3: Setup Visual Basic

1. Click the Play button in Visual Basic.  Notice that nothing works
2. Click View > Immediate Window
3. Click the Play button again in Visual Basic.  Notice the error messages in the immediate window.  It is missing important libraries to run.
4. Click Tools > References.  Check these libraries
- Microsoft WinHttp Services, version 5.1
- Microsoft xml v6.0
5. Click Ok
6. Run again.  Notice data in now in your excel sheets.


Withdraw RITM Button

$
0
0

Here is a button to withdraw a requested item.  It should be used sparingly, as some workflows may be halfway in progress

Name: Withdraw Item
Table: Requested Item [sc_req_item]
Form Context Menu: true
Condition: gs.hasRole('admin') && current.active == true
Script:
cancelRITM();
function cancelRITM() {
action.setRedirectURL(current);
var workflow = new Workflow();
workflow.cancel(current);
current.approval = "withdrawn";
current.stage = 'Request Cancelled';
current.state = 4;
current.active = false;
current.update();
gs.addInfoMessage("Requested Item "+current.number+" was withdrawn.");
}

Become a ServiceNow Developer and Pass the Exams

$
0
0

You want to become a ServiceNow developer?  No reason why not, so here are some tips to help you on this journey.

Motivation and Effort

When I was learning ServiceNow, I put in a lot of effort to teach myself.  For hours every night for months, I would build customizations on my own at home.  Customizations I used to build in HP Service Manager, I would build in ServiceNow.  I put in the effort so that I could look great on projects and get ahead.

Get a Developer instance

You can register on the ServiceNow Developer site to get your own instance to practice on.  I am proud of ServiceNow for doing this.  It has helped thousands of wanna-be developers learn the platform and become experts...maybe even ServiceNow ELITE!

ServiceNow Training

ServiceNow is also kind enough to offer free courses to help you. ServiceNow Online Learning. Also get on YouTube and watch all the ServiceNow videos.  

After you take the free stuff, you can take some paid courses.  I think the Admin course is exceptionally helpful, however the other courses might help you too.  

I took the admin course, talked my way into my first ServiceNow job, and then with a lot of motivation and effort kept that job and got others afterwards.  

Wiki and Forums

Read that ServiceNow wiki like it is the novel of the century.  Jump on the forums and start asking questions about things that confuse you.  People are just waiting for your questions so they can get their virtual points, post away!

User Group

Join a local user group.  There are a listing somewhere on the community site.  Maybe you can make friends with an expert.  Having an expert to ask questions to is a huge benefit, although not 100% necessary.

Exam Practice

If you are taking the Admin or other exams, there is often a blueprint or preparation documents.  Read that thoroughly and make sure you know all the areas and questions.

I have some Practice Tests I created on this site.  Did you know that over 10,000 people have taken the practice test?  Wow!  

The practice tests are not the questions you see on the test, but can show you the weak areas you may need to improve on.  If you are getting all the questions wrong or have no idea, you may need more experience before you can pass the exams.

No Blueprint for Success

You don't have be a coding wizard with a photographic memory.  Follow these steps and then practice more than you think you need to.  You have a lot of potential, apply yourself to a goal.  See what happens, that trip might be even better than the destination.

Don't give up if you don't understand at first, it takes many attempts sometimes.

Avoiding ServiceNow Design Pitfalls

$
0
0

Here are some tips to avoid some design and programming mistakes you can make with ServiceNow.

Duplicate Records

When you run any import with ServiceNow, you should always check to see if any duplicate records are being created.  When using ServiceNow Discovery or any CMDB imports this is especially important.

For instance if you are creating duplicate CIs, users will begin to tie those duplicate CIs to incidents, changes, etc.  Getting rid of a duplicate CI once it is related to a task is difficult.  You can deactivate the duplicate CI, but then you still have a CMDB with duplicates.  Deleting the CI means the task will lose that CI information.  Fixing the issue will have some bad consequences either way.

It is important to fix this issue immediately when it happens, so that it doesn't become a disaster.  I suggest running Duplicate Record reports monthly to catch these duplicates.  

current.update() in a Business Rule

Business Rules run before, after, and display of a record.  When you use current.update() in a business rule, that will cause a "double update" of a record or worse.  

Here are some examples of the chaos this can cause:

  • before Business rule and current.update():  Business rule runs, current.update() saves the record, remaining business rules run and record will saved again
  • after Business rule and current.update():  Record saves.  after Business rule runs, current.update() saves the record again
  • async Business rule and current.update():  Record saves.  async Business rule runs later on, current.update() saves the record again
  • display Business rule and current.update(): display Business rule runs every time the form is displayed and the form attempts to save due to current.update().  User might not have filled out the form all the way and it is an annoying experience to the user.

Don't use current.update() in a business rule!  There are certain situations when it is ok, but very rarely.  Same goes with using g_form.save() in a client script. 

License Count Check

Every user that has a role counts against your license count.  You have to periodically check to make sure you fall under those license counts. If you go over, you'll have to remove some full access or purchase more licenses.  If you go way over, you may have a big problem.

ServiceNow licensing is changing with these new releases.  Meet with your account representative to check your licensing restrictions.

Workflow Design Mistakes

Designing workflow for items in your Service Catalog is "easy" as long as you follow these guidelines

  1. Stages. Remember to setup and use Stages in your workflow.  If you don't have a closing stage (complete or Request Cancelled), the request will not close.  People will eventually ask you why their requests don't close, and you'll have to fix that issue.  This article helps if you made that mistake.
  2. Deadends.  Workflows today warn you if you are making a workflow with a dead end.  However if you ignore the error it is still possible to do.  Just remember to not leave any workflow activities not connected to the next activity or end.
  3. Broken Scripts. If you use scripts in your workflow, make sure to test thoroughly that they work.  Workflow will just stop if encounters a script error.  It doesn't throw an error to the user, and the workflow will just stop partially through if left that way.
  4. Workflow with wrong properties.  If you build a workflow with the wrong start condition for Requested Item, it may just take over for all requested items.  When building a new catalog item, test your catalog item and another catalog item to make sure you didn't affect other Requested items with your property settings.  I like to copy workflows to avoid this issue, but if you like to start from scratch, check your properties.
  5. Endless Loops.  It is possible to create endless loops in workflow.  Avoid doing that.  This issue is pretty easy to notice in testing and is kind of funny, but not really. 
  6. Complex Workflow.  Although you can make spaghetti workflow that looks like it could be used for a space shuttle launch, it isn't a good idea most of the time.  Try to make workflow people can understand and handle.  I have seen workflows that generate 100's of child tasks.  Usually that many tasks mean that they won't get closed due to user availability/interest, and the workflow is unsuccessful.

Error Log Ignorance

Not checking the error or warning logs is a good way to avoid the problems in your life.  Just like in life, if you ignore your problems for a long time, it can cause major issues.

Javascript is a resilient language, it can have errors and not crash.  However that doesn't mean your system is working great.  Check the error and warning logs and fix the issues..

No Update Sets

Teach yourself how to use update sets right away.  Don't wait until after your implementation date to start using them.  Without update sets, you might be inclined to write code directly in production.  This is a really bad idea for lots of reasons.  Especially if you are not exactly "servicenow elite" initially and might make a few mistakes.

Email Integration Reliance

In my opinion, email integrations are the worst integrations you can build.  They are prone to network error, can be difficult to maintain, and the more you have, the worse it gets.  Figure out how to build web services integrations, you will be glad you did.

Report Madness!

Do you need to build 1500 reports for your initial implementation of ServiceNow?  No!  People will not view that many reports.  Pick the important reports you need and have the users build their own additional reports.  It can actually be detrimental to the user to have that many reports to pick from, it is sea of reports they don't care about.

Another pitfall is homepages with slow reports or many gauges on them.  A useful technique is to run "Debug Homepage Render" on all your homepages.  That way you can tell what reports and homepages are slow and fix those issues.

Big Bang Approach

Sometimes you don't have a choice and have to implement ServiceNow all at once and not one application at time.  Try to avoid this if you can.  Once ServiceNow is in Production, that is when you really get feedback on how it works.  Using the Big Bang approach to implementations means you will get a lot of feedback on day 1 of the implementation.  It can be very stressful and not fun.

Many Related Lists

In ServiceNow, Related Lists are the lists that load at the bottom of the form.  They display records in another table that have a relationship to the current record.
 
These are most noticeable in Project Management, where there can be many related lists.  When you open a project form, ServiceNow has not only has to load that project record, but also do all the queries for the related lists before the form loads.  ServiceNow Fuji allows you to adjust the related list loading settings, which can greatly improve performance.

Reading the instruction manual

I do recommend reading the ServiceNow WikiServiceNow Share (and this website!) before you start building a new customization.  That customization might already exist.  ServiceNow has been around for a long time now, and there are no original ideas anymore. :)

Find all task types currently used

$
0
0

Here is a background script you can use to find all the task types that are used in your ServiceNow Instance. You can use this script in scripts - background or alter slightly to use a script include for a report.  

Background Script

findTaskTypesUsed();
function findTaskTypesUsed() {
var count = new GlideAggregate('task');
count.addAggregate('COUNT', 'sys_class_name');
count.query();
while (count.next()) {
var taskType = count.sys_class_name;
var taskTypeCount = count.getAggregate('COUNT', 'sys_class_name');
gs.log("The are currently " + taskTypeCount + " tasks with a task type of " + taskType);
}
}

Preparing for ServiceNow Geneva

$
0
0

When I say, "Preparing for ServiceNow Geneva", it sounds like I am talking about a hurricane. The truth is that Geneva is like a hurricane, it will change the way you do business at your company.  In a good way of course. I can't tell you how excited I am for this upcoming release.

The new UI is great as expected. However it was the "Connect Chat" that I didn't expect to so powerful.  

Being able to discuss all ServiceNow records in a conversation real-time, wow what a new experience.  I am used to putting in an additional comment/work note, then waiting for a response, then replying.  In ServiceNow Geneva, you can just chat about an incident or any ServiceNow record and that time delay is eliminated.  It is a lot more immersive and more collaborative experience.  I think people will really like that, I know I will.

There are also a lot of little improvements that will make a big difference.  Every effort that ServiceNow has made to improve the user experience with UI looks, speed, and functionality will improve user opinions of the product.  

How can you prepare for Geneva?

1. Fix your existing data issues.

Do a review of your current system and see if you have any issues today you can fix before the upgrade.  Here are some articles you can use to check.

2. Upgrade and Patch

Some of the upgrades and patches to get to ServiceNow Fuji Patch 9 are huge.  If you haven't patched, your upgrade to ServiceNow Geneva is going to take a long time.  Some of the upgrades, especially ServiceNow Fuji, had database changes that took hours to complete.  If you can't afford a significant downtime, it is a good idea in my opinion to patch now instead of waiting for the big Geneva release.  Here is an helpful article to help you patch ServiceNow:  Tips for Upgrading and Patching ServiceNow

Another good idea to to get your Knowledge Management upgraded

3. Learn new technologies

ServiceNow Geneva will feature new coding technologies you'll likely have to learn.  I would say you don't have to be an expert on them on day 1, but it doesn't hurt to read up on them ahead of time.

AngularJS - Apache Jelly is being replaced with AngularJS.   I was actually a good Jelly coder, however that skill will go away much like my KML-SA Script, HP SC RAD, HP Connect-IT, Tririga, and other code languages I no longer use.  A lot of people hated Jelly, but I didn't mind it.  AngularJS will introduce new speed and functionality that you'll likely want to use.  I expect there will be some examples on the ServiceNow Geneva release that we can use to build our own customizations.  

Bootstrap.  This will make ServiceNow mobile-first.  This will be new to me.  This site is built via SquareSpace.  It uses bootstrap I think, but I don't handle the technical aspects of that.

OpenFrame.  Openframe is mentioned many times in the Geneva code.  This will be new to me too.

4. Increase task.short_description to 160 characters

I noticed in ServiceNow Geneva that task.short_description is 160 characters.  People have asked me to change this for years.  I was always nervous to change that due to possible issues.

Since Geneva has it, now is a good time to change it and overcome any issues before the upgrade.

You just go into the dictionary for task.short_description and increase to 160.  Test in a development instance first.

5. Clean up the Activity field

The activities (filtered) field on incidents, changes, problems, etc can get really cluttered if you include a lot of things to be shown.  When ServiceNow Geneva is released, the activity section is more like a conversation and not a history area.  Might as well clean up the activity area now instead of waiting.

This is just my opinion here.  You don't have to do this, but I think it helps.

Activity field cleanup

1. On every form that uses the Activities (filtered) field.  Customize activities and only leave these fields:

  • Assignment Group
  • Assigned to
  • State
  • Additional Comments
  • Work Notes

People can use the "History > List" functionality to view field history information.

Add an Emails Related list

1. Go to Relationships.  Add this relationship:

Relationships:
Name: Emails
Application: Global
Applies to table: Task [task]
Queries from table: Email [sys_email]
Query with:
current.addQuery("target_table", parent.sys_class_name);
current.addQuery("instance", parent.sys_id);

2. Adjust the Email default form.  (I personalized the default email form, because you can use the "inbox" view for more detailed email information)

Personalize Form Layout:

Email Default Form:
Type
Target
|-split-|
Created
|- end split-|
Recipients
Subject
Body

3.  Add the email related list to a form (incident, change, etc)

  • Personalize > Related Lists > Emails

4. Add formatting to the list

  • List Control: Omit new button
  • List Layout: Subject, Recipients, Type, Created

6. Other

I am sure there are other things you can do too in order to prepare for Geneva.  I will add more to this post as I think of them.

Very exciting!
Mike

Configuration, Customization...or Personalization?

$
0
0

"Is this change a configuration or customization?"  This is one of the most popular questions during requirements gathering for a software implementation.

This is especially true when you are talking to someone familiar with older software.  In the "old days", a configuration could take minutes and a customization took hours.  It made a big difference in your decisions during requirements gathering.

I am from the old days, these young people have no idea how easy they have it now. :)

Low Code Development

Customizations are much easier to do than they were 10 years ago. This is due to advancements like drag-and-drop functionality, expression building, workflow, and other low-code/no code development.  When you can build an entire app in one hour without code...this means low code development has really changed the config or customize debate.

This doesn't mean life is easier for the development team, people have a lot more expectations than ever before. People believe software should be as easy at work as it is at home.  I mean if Facebook has it, ServiceNow should too!  

People will always ask to push software to the functionality limit.  Eventually you'll be writing Javascript, but the good news is you don't have to a Javascript expert on day one.

Personalization

Another advancement that has really changed is "Personalization".  It used to be that you only allowed people to change their list view.  Now they can change the form too, make reports, adjust their notification preferences, add themes, change how fields look, and all kinds of other features.  This "user enablement" along with Self Service, Service Catalog, and Knowledge Management have instilled a "DIY" approach to issue resolution at many companies.

How to Classify Code Changes

Customization, Configuration, and Personalization can be vague especially in flexible and customizable products like ServiceNow.  

This is my current breakdown:

ServiceNow Personalization

  • Lists
  • Accessibility and Themes
  • UI Look and Functionality
  • Date Time Look, Timezone, and Format
  • Form Fields, Tabbed Forms, Related List Loading
  • Notification Preferences
  • Reports, Filters, Gauges, and Homepages
  • Favorites and Tagged Records

ServiceNow Configuration

  • Adding Data Elements like Groups, Users, Departments, Users to Groups
  • Adjusting Properties Files
  • Creation of Fields, Field Layout, List Layouts, Views
  • Service Catalog Items
  • Templates
  • Home Page Changes
  • Surveys
  • Metrics and SLAs
  • UI and Data Policies
  • Style Sheets

ServiceNow Customization

  • Anything with Javascript
    • Business Rules
    • Client Scripts
    • UI Actions
    • Script Includes
    • UI Macros
    • UI Scripts
  • Major Data Changes
    • New Tables
    • New Applications
    • Integrations
  • Complex Security
    • Access Controls
  • Grey Areas (Kind of easy, but can be complex)
    • Workflow
    • Transform Maps
    • Email Notifications

Questions to help mark as a customization:

  1. May affect future upgrades
  2. Complex javascript needed
  3. Maintenance requires experienced developer

Hope this helps,
Mike

 

Performance Analytics Breakdowns


Insert variable Info into Catalog task description

$
0
0

Here is a script I use sometimes to insert variable information into a catalog task description.

I prefer to use the Variable Editor instead of this method.  However there are certain situations it is nice to use.

//insert variables on task if populated
var varown = new GlideRecord('sc_item_option_mtom');
varown.addQuery("request_item", current.sys_id);
varown.query();
while (varown.next()){
var visible = varown.sc_item_option.item_option_new.visible_summary;
//var question = Packages.com.glideapp.questionset.Question.getQuestion(varown.sc_item_option.item_option_new);
var question = GlideappQuestion.getQuestion(varown.sc_item_option.item_option_new); 
question.setValue(varown.sc_item_option.value);

if((question.getLabel() != '') && (question.getDisplayValue() != '') && (varown.sc_item_option.value != '') && (varown.sc_item_option.value != "0") && (varown.sc_item_option.value != "false")) {
catTask.description += "\n" + " " + question.getLabel() + " = " + question.getDisplayValue();
}
}

What is Service Watch?

$
0
0

What is Service Watch?

"ServiceNow ServiceWatch has an innovative, “top-down” approach to discovering and mapping the relationships between IT components that comprise specific business services, even in dynamic, virtualized environments. "

ServiceNow Information site for ServiceWatch

How is this different than ServiceNow Discovery?

ServiceNow Discovery uses a "bottom-up" approach to discovery.  With ServiceNow Discovery, you setup credentials and IP Range sets to discover CIs and some relationships based on those IP Ranges upward.

ServiceNow ServiceWatch uses a "top-down" approach.  You setup an Business Service "entry point" such as an url and it traverses down from that entry point to discover the CIs and relationships for that business service.

How does Service Watch help you?

Typically Business Service to CI relationships are maintained manually as they are not discovered.  The issue with these manual relationships is that as you soon as you are finished creating them, they quickly become out-of-date.

ServiceNow ServiceWatch uses a top down approach to discovery.  By using this approach, you can specify a Business Service entry point and find all the CI and relationships underneath. 

What are the obstacles to setting up ServiceNow Service Watch?

  1. Separate Product. Service Watch is a separate product from ServiceNow.  You have to script xml files on the collectors to send data to ServiceNow from Service Watch.  
  2. Event Management not integrated yet. Service Watch has some Event Management, however it is not integrated to ServiceNow for Incident creation.  You would have to build that with the REST API.  This may change with Geneva.  If you don't use event management, this doesn't apply.
  3. Collector install.  In order to discover CI and relationship information with Service Watch, you must install a collector service where all your ServiceNow Discovery Mid Servers are installed.
  4. Additional Credentials Needed.  If you already use ServiceNow Discovery, you can use those accounts you use for ServiceNow Discovery credentials with Service Watch.  However there will likely need to be additional access needed to use certain Service Watch entry points.
  5. Entry Point Setup. With traditional ServiceNow Discovery, you setup IP Ranges and credentials. and it if they are configured correctly, it will discover your CIs.  With Service Watch, you need to know what entry point type to use and what entry point parameters to use for each business service to discover.  You have to also setup IP ranges on the collector. It is more detail-oriented than ServiceNow Discovery in my opinion.
  6. Collector Setup.  Collectors have xml files that say what IP ranges to use and what data to send to Service Watch and ServiceNow.  Unlike ServiceNow discovery, where you configure these details within ServiceNow,  you need to login to a server and configure these xml files.  If you have multiple collectors, this isn't as easy as the ServiceNow Discovery interface.

All about the Business Services

Usage of Service Watch all depends on your usage of business services.  If your business services are used in ServiceNow or wanted to be used, this can have a lot of benefit.  Manually setting up the relationship between CIs and Business Services is a really maintenance intensive and error prone process.   Being able to automate those relationships can save a lot of time and increase accuracy.  

Reduce Email Processes with ServiceNow Self Service

$
0
0

Recently ServiceNow commissioned Lawless Research to design and conduct a study about the state of work in companies with 500 or more employees.   Their findings help confirm what we already knew, working via email processes is difficult and costly. See Productivity Drain report.

ServiceNow is very timely with this report.  In application software, there is a shift to avoid using email and use self service instead.  Some new applications don't even send email (Workday).  Why is that?  

People are no longer thrilled to get an email.  In fact,  some people get so many emails, they just dread it.  They avoid emails and filter many as they can directly to the trash can.   It is an frustrating and unproductive process to get work done via email.  

People want less emails and want different ways to communicate today.  This article talks about why email is being being downsized at companies, and how you can make it happen with ServiceNow.

People Expect Self Service

People are now requesting self service options online so that they can submit issues, check status, complete other tasks online.  Self Service is now expected, not a bonus. They want a central site to find anything they need from the company.  Tracking down the correct email address or phone number to get support is not a good user experience.  

People expect work software to be as easy to use as it is at home.  They are right.

Self Service is great as an end user, as they require no institutional knowledge to get assistance.  They don't have to wait on the phone, don't have to wait for email response, it is the new normal for customer services.

It is true that some like to call or email to check on the status of an issue, but show them self service and often those calls/emails are reduced and time/money is saved.

Customizable solutions like ServiceNow CMS and Service Catalog build the self service sites that people expect.

In a work situation, using emails to get things done is much slower than using an application like ServiceNow.  People want as quick as service as possible.

For example, by using ServiceNow Self Service, you can ask the end user specific questions about their issue and have that issue routed automatically to the appropriate group.  Just emailing ServiceNow email account is slower as they need to take extra steps to route the issue and often need to contact the user back for more information.  

In ServiceNow Geneva, "Connect" is going to change how people communicate and how issues are solved.   You can instantly talk with multiple people about an incident and the comments are stored in the incident.  Doing this by email instead is just not as fast or collaborative.

Not Everything is an Incident

If you are emailing in your issue to the helpdesk, ServiceNow is often setup to just classify inbound emails as incidents.  However, not every issue is an incident. Via ITIL terms:

An incident has a process to ensure normal service operation is restoration as quickly as possible and the business impact is minimized

An incident needs to be solves as quickly as possible.  Although my new hardware request is important, I don't think people need to drop everything to get me an iPad. Many issues are not incidents and are requests or other types of records.  In ServiceNow, requests have these advantages over incidents.

  • Multiple Item Ordering
  • Detailed Descriptions and Instructions to user
  • User Questions and Answers
  • Workflow and Orchestration

In order to classify records as requests and create less incidents, not using inbound email and using Self Service instead is preferred.

Workflow and Automation

By using an application like ServiceNow instead of email, you can generate tasks to multiple users to complete and consistently follow a process.  You can insure security by adding approvals.  You can even use orchestration to completely automate setup tasks.

Management  

Recently ServiceNow commissioned Lawless Research to design and conduct a study about the state of work in companies with 500 or more employees.   See Productivity Drain report.

In the study, most manager describe work processes as time consuming or frustrating.  44% of managers agreed that using email and spreadsheets for managing work reduces productivity

If everyone is using email to track their work, as a manager you are blind to many of the issues that many occur.

  1. Utilization and Status.  You don't know if a person is overallocated/underallocated.  You are making guesses on their workload and what they are working on.  Sure they can send you a status report, but it is a lot easier to just login and see their status.  
  2. PTO/Sick Time.  If you use ServiceNow to track work, you can more easily fill in for people out-of-the-office.
  3. Monitor Communications.  Have an employee communicate with clients not the best? You can see that in the application and help them communicate better.  
  4. Prioritize and improve tasks.   When you can see a person's daily work in ServiceNow, you can see ways to improve that.  You'll find out they do tasks that maybe are not needed anymore, or can find ways to help speed up work.
  5. SLAs and Expectations.  Setting up SLAs is good for both the manager and employee in that you both know what is expected.  It gives you visible goals and

There is exponential impact to this.  If you take 500 managers, and look at all the spreadsheets, status reports, and manual tasks employees have to fill out for their manager.  It is a lot of wasted spending.

Collectively across the United States, companies are spending $575 billion a year on these unnecessary tasks and inefficiencies.
That equals 3.3% of the gross domestic product of the United States or approximately the combined annual profits of America’s 50 largest public companies.*

* This was calculated by the following. According to the Bureau of Labor Statistics, 2014 Occupational Outlook Handbook) the median salary for a manager is $88,885/year. The number of managers in US (Bureau of Labor Statistics, 2014 Labor Force Statistics) is 16,199,000. Multiplying 88,885 by 16,199,000 is $1,439,848,115,000/year. Forty percent of that is administrative work that equals $575,939,246,000/year. According to the GDP (Bureau of Economic Analysis, 2014 GDP) is $17.42 trillion. Dividing 17.42 trillion by 575,939,246,000 equals 3.3% of GDP.

ServiceNow Geneva is further reducing emails

Emails from ServiceNow are being reduced in ServiceNow Geneva.

  • Email bundling. Geneva Connect has email bundling.  Communications can be bundled into a single email.
  • Inactive emails. Emails are not turned on for some new applications on purpose.  Upgrading to Geneva can also give you a chance to further deactivate any extraneous notifications.
  • Notification Preferences and Alert Indicator. There is a notification bar in Geneva for alerts.  You can turn off email notifications and use that system in Geneva if you want.

ServiceNow can help

ServiceNow has the tools to help reduce email and admin work. From Self Service, Service Catalog, Workflow, Orchestration, Discovery, Work Queues, etc, there are many ways to improve your processes.

Learn more about ServiceNow at their website. www.servicenow.com

 

Geneva Themes

$
0
0

Here are some Geneva Themes I have built and the base Geneva Themes.  Some are better than others!

Blimey (System)

/* Header Colors */
/* Search text color */ 
$search-text-color: #3D9333 
/* Topbar background color*/
$navpage-header-bg: #7FAF5C 
/* Topbar text color */
$navpage-header-color: #fff
/* Bottom border color on topbar */ 
$navpage-header-divider-color: #399130

/* Left nav and navigation toolbar background color */
/* Navigator hover color */
$nav-highlight-main: #6C8A56
/* Background for expanded navigation items */
$subnav-background-color: #7EC24F 
/* Backgorund for navigator (left side only). */
$navpage-nav-bg: #fff 
/* Background for Favorites list, history list, and Connect list background. */
$navpage-nav-bg-sub: #eee 
/* Text color in main navigation */
$navpage-nav-color-sub: #fff
/* Text color when hovering over items in main nav */
$navpage-nav-mod-text-hover: #eee 
/* Divider color in Navigator */
$nav-hr-color: #399130

/* Navigator tabs */
/* Active nav item underneath search */
$nav-highlight-bar-active: #399130
/* Inactive nav items underneath search */
$nav-highlight-bar-inactive: #D6D6D6
/* Background for currently selected navigation item underneath search */
$navpage-nav-selected-bg: #7EC24F 
/* Color of icon for currently active nav item. */
$navpage-nav-selected-color: #eee 
/* Color of icons for non inactive nav items.*/
$navpage-nav-unselected-color: #399130

/* Navigator Application text */
/* Color for latest connect messages in right bar. */
$connect-latest-message: #7FAF5C
/* Timestamp header backgrounds in History tab*/
$nav-timeago-header-color: #7FAF5C
/* Core content text color */
$navpage-nav-app-text: #426028
/* Cpre content text color hover*/
$navpage-nav-app-text-hover: #eee 

/* Color of outline for search */
$navpage-nav-border: #7EC24F
/* Default button/icon colors */
$navpage-button-color:#399130 
/* Hover color for ^^^ */
$navpage-button-color-hover: #7EC24F 

Clean (System)

/* Header Colors */
/* Search text color */ 
$search-text-color: #4E4950
/* Topbar background color */
$navpage-header-bg: #e1e1e1
/* Topbar text color */
$navpage-header-color: #272428
/* Bottom border color on topbar */ 
$navpage-header-divider-color: #777777

/* Left nav and navigation toolbar background color */
/* Navigator hover color */
$nav-highlight-main: #00B9FF
/* Background for expanded navigation items */
$subnav-background-color: #d1d1d1
/* Backgorund for navigator (left side only). */
$navpage-nav-bg: #fff
/* Background for Favorites list, history list, and Connect list background. */
$navpage-nav-bg-sub: #fafafa
/* Text color in main navigation */
$navpage-nav-color-sub: #272428
/* Text color when hovering over items in main nav */
$navpage-nav-mod-text-hover: #fff
/* Divider color in Navigator */
$nav-hr-color: #454545

/* Navigator tabs */
/* Active nav item underneath search */
$nav-highlight-bar-active: #0098D2
/* Inactive nav items underneath search */
$nav-highlight-bar-inactive: #EAEAEA
/* Background for currently selected navigation item underneath search */
$navpage-nav-selected-bg: #00B9FF
/* Color of icon for currently active nav item. */
$navpage-nav-selected-color: #fff
/* Color of icons for non inactive nav items.*/
$navpage-nav-unselected-color: #777

/* Navigator Application text */
/* Color for latest connect messages in right bar. */
$connect-latest-message: #747470
/* Timestamp header backgrounds in History tab*/
$nav-timeago-header-color: #ddd
/* Core content text color */
$navpage-nav-app-text: #272428
/* Core content text color hover*/
$navpage-nav-app-text-hover: #01B0F0

/* Color of outline for search */
$navpage-nav-border: #747470
/* Default button/icon colors */
$navpage-button-color:#272428
/* Hover color for ^^^ */
$navpage-button-color-hover: #01B0F0
$navpage-header-button-color: #272428

Columbia

/* Header Colors */
/* Search text color */ 
$search-text-color: #eee
/* Topbar background color*/
$navpage-header-bg: #000000
/* Topbar text color */
$navpage-header-color: #DCDDCD
/* Bottom border color on topbar */ 
$navpage-header-divider-color: #DCDDCD

/* Left nav and navigation toolbar background color */
/* Navigator hover color */
$nav-highlight-main: #2D3033
/* Background for expanded navigation items */
$subnav-background-color: #0C98CF
/* Backgorund for navigator (left side only). */
$navpage-nav-bg: #2D3033
/* Background for Favorites list, history list, and Connect list background. */
$navpage-nav-bg-sub: #3A73B5
/* Text color in main navigation */
$navpage-nav-color-sub: #2D3033
/* Text color when hovering over items in main nav */
$navpage-nav-mod-text-hover: #DCDDCD
/* Divider color in Navigator */
$nav-hr-color: #244D81

/* Navigator tabs */
/* Active nav item underneath search */
$nav-highlight-bar-active: #3A93FA
/* Inactive nav items underneath search */
$nav-highlight-bar-inactive: #8DAECB
/* Background for currently selected navigation item underneath search */
$navpage-nav-selected-bg: #FFF568
/* Color of icon for currently active nav item. */
$navpage-nav-selected-color: #285080
/* Color of icons for non inactive nav items.*/
$navpage-nav-unselected-color: #FFF568

/* Navigator Application text */
/* Color for latest connect messages in right bar. */
$connect-latest-message: #c2d6ff
/* Timestamp header backgrounds in History tab*/
$nav-timeago-header-color: #316198
/* Core content text color */
$navpage-nav-app-text: #DCDDCD
/* Core content text color hover*/
$navpage-nav-app-text-hover: #DCDDCD

/* Color of outline for search */
$navpage-nav-border: #8cbaf2

Contrast UI (System)

/* Header Colors */
/* Search text color */ 
$search-text-color: #111
/* Topbar background color*/
$navpage-header-bg: #222
/* Topbar text color */
$navpage-header-color: #fff
/* Bottom border color on topbar */ 
$navpage-header-divider-color: #777

/* Left nav and navigation toolbar background color */
/* Navigator hover color */
$nav-highlight-main: #000
/* Background for expanded navigation items */
$subnav-background-color: #2F2F2F 
/* Backgorund for navigator (left side only). */
$navpage-nav-bg: #fff
/* Background for Favorites list, history list, and Connect list background. */
$navpage-nav-bg-sub: #fafafa
/* Text color in main navigation */
$navpage-nav-color-sub: #fff
/* Text color when hovering over items in main nav */
$navpage-nav-mod-text-hover: #fff 
/* Divider color in Navigator */
$nav-hr-color: #454545

/* Navigator tabs */
/* Active nav item underneath search */
$nav-highlight-bar-active: #999
/* Inactive nav items underneath search */
$nav-highlight-bar-inactive: #EAEAEA
/* Background for currently selected navigation item underneath search */
$navpage-nav-selected-bg: #2F2F2F 
/* Color of icon for currently active nav item. */
$navpage-nav-selected-color: #fff
/* Color of icons for non inactive nav items.*/
$navpage-nav-unselected-color: #000

/* Navigator Application text */
/* Color for latest connect messages in right bar. */
$connect-latest-message: #2f2f2f
/* Timestamp header backgrounds in History tab*/
$nav-timeago-header-color: #111
/* Core content text color */
$navpage-nav-app-text: #111
/* Core content text color hover*/
$navpage-nav-app-text-hover: #fff 

/* Color of outline for search */
$navpage-nav-border: #111 
/* Default button/icon colors */
$navpage-button-color:#2F2F2F
/* Hover color for ^^^ */
$navpage-button-color-hover: #888888

Flamingo Nights

/* Header colors */
$navpage-header-bg: #141414
$navpage-header-color: #a3dfe3

/* Left nav and navigation toolbar background color */
$navpage-nav-bg: #141414

/* Navigator tabs */
$navpage-nav-selected-bg: #ff65cb
$navpage-nav-selected-color: #141414
$navpage-nav-unselected-color: #a3dfe3

/* Navigation icons */
$navpage-nav-color: #ff65cb

/* Navigator Application text */
$navpage-nav-app-text: #fff
$navpage-nav-app-text-hover: #ff65cb
$navpage-nav-fav-icon: #ff65cb

/* Colors for the displayed modules in the selected application */
$navpage-nav-bg-sub: #fff
$navpage-nav-color-sub: #141414
$navpage-nav-mod-text-hover: #ff65cb

/* Borders in the navigator and side panel */
$navpage-nav-border: #a3dfe3

/* Sub text color on the history tab */
$navpage-nav-timeago-child: #727272

/* Background color for alt panels (collab and debug) */
$navpage-nav-side-panel: #141414

Halloween (System)

/* Header colors */
$navpage-header-bg: #e56923
$navpage-header-color: #fff

/* Left nav and navigation toolbar background color */
$navpage-nav-bg: #585858

/* Navigator tabs */
$navpage-nav-selected-bg: #e56923
$navpage-nav-selected-color: #fff
$navpage-nav-unselected-color: #fff

/* Navigation icons */
$navpage-nav-color: #fff

/* Navigator Application text */
$navpage-nav-app-text: #fff
$navpage-nav-app-text-hover: #bbb
$navpage-nav-fav-icon: #fff

/* Colors for the displayed modules in the selected application */
$navpage-nav-bg-sub: #ec9665
$navpage-nav-color-sub: #fff
$navpage-nav-mod-text-hover: #bbb

/* Borders in the navigator and side panel */
$navpage-nav-border: #fff

/* Sub text color on the history tab */
$navpage-nav-timeago-child: #585858

/* Background color for alt panels (collab and debug) */
$navpage-nav-side-panel: #585858

Ironman

/* Header Colors */
/* Search text color */ 
$search-text-color: #eee
/* Topbar background color*/
$navpage-header-bg: #E51B24
/* Topbar text color */
$navpage-header-color: #fff
/* Bottom border color on topbar */ 
$navpage-header-divider-color: #EFCE0B

/* Left nav and navigation toolbar background color */
/* Navigator hover color */
$nav-highlight-main: #111
/* Background for expanded navigation items */
$subnav-background-color: #666
/* Backgorund for navigator (left side only). */
$navpage-nav-bg: #333
/* Background for Favorites list, history list, and Connect list background. */
$navpage-nav-bg-sub: #222222
/* Text color in main navigation */
$navpage-nav-color-sub: #eee
/* Text color when hovering over items in main nav */
$navpage-nav-mod-text-hover: #eee
/* Divider color in Navigator */
$nav-hr-color: #444

/* Navigator tabs */
/* Active nav item underneath search */
$nav-highlight-bar-active: #800D07
/* Inactive nav items underneath search */
$nav-highlight-bar-inactive: #555
/* Background for currently selected navigation item underneath search */
$navpage-nav-selected-bg: #E51B24
/* Color of icon for currently active nav item. */
$navpage-nav-selected-color: #fff
/* Color of icons for non inactive nav items.*/
$navpage-nav-unselected-color: #9D202C

/* Navigator Application text */
/* Color for latest connect messages in right bar. */
$connect-latest-message: #E51B24
/* Timestamp header backgrounds in History tab*/
$nav-timeago-header-color: #333
/* Core content text color */
$navpage-nav-app-text: #eee
/* Core content text color hover*/
$navpage-nav-app-text-hover: #eee

/* Color of outline for search */
$navpage-nav-border: #FCFE05
/* Default button/icon colors */
$navpage-button-color:#fff
/* Hover color for ^^^ */
$navpage-button-color-hover: #9D202C

Michigan

/* Header Colors */
/* Search text color */ 
$search-text-color: #FFF
/* Topbar background color*/
$navpage-header-bg: #00274c
/* Topbar text color */
$navpage-header-color: #1352A2
/* Bottom border color on topbar */ 
$navpage-header-divider-color: #ffcb05

/* Left nav and navigation toolbar background color */
/* Navigator hover color */
$nav-highlight-main: #244973
/* Background for expanded navigation items */
$subnav-background-color: #3A73B8
/* Backgorund for navigator (left side only). */
$navpage-nav-bg: #285080
/* Background for Favorites list, history list, and Connect list background. */
$navpage-nav-bg-sub: #3A73B5
/* Text color in main navigation */
$navpage-nav-color-sub: #ffcb05
/* Text color when hovering over items in main nav */
$navpage-nav-mod-text-hover: #ffcb05
/* Divider color in Navigator */
$nav-hr-color: #244D81

/* Navigator tabs */
/* Active nav item underneath search */
$nav-highlight-bar-active: #3A93FA
/* Inactive nav items underneath search */
$nav-highlight-bar-inactive: #8DAECB
/* Background for currently selected navigation item underneath search */
$navpage-nav-selected-bg: #ffcb05
/* Color of icon for currently active nav item. */
$navpage-nav-selected-color: #FFD464
/* Color of icons for non inactive nav items.*/
$navpage-nav-unselected-color: #ffcb05

/* Navigator Application text */
/* Color for latest connect messages in right bar. */
$connect-latest-message: #c2d6ff
/* Timestamp header backgrounds in History tab*/
$nav-timeago-header-color: #316198
/* Core content text color */
$navpage-nav-app-text: #ffcb05
/* Core content text color hover*/
$navpage-nav-app-text-hover: #ffcb05

/* Color of outline for search */
$navpage-nav-border: #8cbaf2

Rose (System)

/* Header Colors */
/* Search text color */ 
$search-text-color: #C22E3A
/* Topbar background color*/
$navpage-header-bg: #CD5762
/* Topbar text color */
$navpage-header-color: #fff
/* Bottom border color on topbar */ 
$navpage-header-divider-color: #C12E3C

/* Left nav and navigation toolbar background color */
/* Navigator hover color */
$nav-highlight-main: #CD5762
/* Background for expanded navigation items */
$subnav-background-color: #C12E3C
/* Backgorund for navigator (left side only). */
$navpage-nav-bg: #eee
/* Background for Favorites list, history list, and Connect list background. */
$navpage-nav-bg-sub: #eee
/* Text color in main navigation */
$navpage-nav-color-sub: #eee
/* Text color when hovering over items in main nav */
$navpage-nav-mod-text-hover: #eee
/* Divider color in Navigator */
$nav-hr-color: #9D202C

/* Navigator tabs */
/* Active nav item underneath search */
$nav-highlight-bar-active: #8F232E
/* Inactive nav items underneath search */
$nav-highlight-bar-inactive: #D6D6D6
/* Background for currently selected navigation item underneath search */
$navpage-nav-selected-bg: #C12E3C
/* Color of icon for currently active nav item. */
$navpage-nav-selected-color: #eee
/* Color of icons for non inactive nav items.*/
$navpage-nav-unselected-color: #9D202C

/* Navigator Application text */
/* Color for latest connect messages in right bar. */
$connect-latest-message: #CD5762
/* Timestamp header backgrounds in History tab*/
$nav-timeago-header-color: #CD5762
/* Core content text color */
$navpage-nav-app-text: #c22c3a
/* Core content text color hover*/
$navpage-nav-app-text-hover: #eee

/* Color of outline for search */
$navpage-nav-border: #C12E3C
/* Default button/icon colors */
$navpage-button-color:#CD5762
/* Hover color for ^^^ */
$navpage-button-color-hover: #9C212D

Savannah

/* Header Colors */
/* Search text color */ 
$search-text-color: #2B9464
/* Topbar background color*/
$navpage-header-bg: #CD4B27
/* Topbar text color */
$navpage-header-color: #DCDDCD
/* Bottom border color on topbar */ 
$navpage-header-divider-color: #B0A472

/* Left nav and navigation toolbar background color */
/* Navigator hover color */
$nav-highlight-main: #2B9464
/* Background for expanded navigation items */
$subnav-background-color: #F2DC64
/* Backgorund for navigator (left side only). */
$navpage-nav-bg: #2B9464
/* Background for Favorites list, history list, and Connect list background. */
$navpage-nav-bg-sub: #F2DC64
/* Text color in main navigation */
$navpage-nav-color-sub: #2B9464
/* Text color when hovering over items in main nav */
$navpage-nav-mod-text-hover: #2D3033
/* Divider color in Navigator */
$nav-hr-color: #244D81

/* Navigator tabs */
/* Active nav item underneath search */
$nav-highlight-bar-active: #3A93FA
/* Inactive nav items underneath search */
$nav-highlight-bar-inactive: #8DAECB
/* Background for currently selected navigation item underneath search */
$navpage-nav-selected-bg: #F2DC64
/* Color of icon for currently active nav item. */
$navpage-nav-selected-color: #285080
/* Color of icons for non inactive nav items.*/
$navpage-nav-unselected-color: #F2DC64

/* Navigator Application text */
/* Color for latest connect messages in right bar. */
$connect-latest-message: #2D3033
/* Timestamp header backgrounds in History tab*/
$nav-timeago-header-color: #2B9464
/* Core content text color */
$navpage-nav-app-text: #2D3033
/* Core content text color hover*/
$navpage-nav-app-text-hover: #2D3033

/* Color of outline for search */
$navpage-nav-border: #8cbaf2

Terminal (System)

/* Header Colors */
/* Search text color */ 
$search-text-color: #eee
/* Topbar background color*/
$navpage-header-bg: #222
/* Topbar text color */
$navpage-header-color: #fff
/* Bottom border color on topbar */ 
$navpage-header-divider-color: #333

/* Left nav and navigation toolbar background color */
/* Navigator hover color */
$nav-highlight-main: #8EF03B
/* Background for expanded navigation items */
$subnav-background-color: #666
/* Backgorund for navigator (left side only). */
$navpage-nav-bg: #222
/* Background for Favorites list, history list, and Connect list background. */
$navpage-nav-bg-sub: #222
/* Text color in main navigation */
$navpage-nav-color-sub: #eee
/* Text color when hovering over items in main nav */
$navpage-nav-mod-text-hover: #000
/* Divider color in Navigator */
$nav-hr-color: #444

/* Navigator tabs */
/* Active nav item underneath search */
$nav-highlight-bar-active: #7EC24F
/* Inactive nav items underneath search */
$nav-highlight-bar-inactive: #555
/* Background for currently selected navigation item underneath search */
$navpage-nav-selected-bg: #8EF03B
/* Color of icon for currently active nav item. */
$navpage-nav-selected-color: #333
/* Color of icons for non inactive nav items.*/
$navpage-nav-unselected-color: #8EF03B

/* Navigator Application text */
/* Color for latest connect messages in right bar. */
$connect-latest-message: #D5FCB2
/* Timestamp header backgrounds in History tab*/
$nav-timeago-header-color: #8EF03B
/* Core content text color */
$navpage-nav-app-text: #eee
/* Core content text color hover*/
$navpage-nav-app-text-hover: #eee

/* Color of outline for search */
$navpage-nav-border: #7EC24F
/* Default button/icon colors */
$navpage-button-color:#fff
/* Hover color for ^^^ */
$navpage-button-color-hover: #7EC24F

Vikings

/* Header colors */
$navpage-header-bg: #330072 
$navpage-header-color: #fff

/* Left nav and navigation toolbar background color */
$navpage-nav-bg: #2d0c40

/* Navigator tabs */
$navpage-nav-selected-bg: #FFB81C
$navpage-nav-selected-color: #fff
$navpage-nav-unselected-color: #fff

/* Navigation icons */
$navpage-nav-color: #fff

/* Navigator Application text */
$navpage-nav-app-text: #fff
$navpage-nav-app-text-hover: #330072 
$navpage-nav-fav-icon: #fff

/* Connect */
$navpage-nav-bg-sub: #5a197f
$navpage-nav-color-sub: #bbb
$navpage-nav-mod-text-hover: #fff

/* Borders in the navigator and side panel */
$navpage-nav-border: #585858

/* Sub text color on the history tab */
$navpage-nav-timeago-child: #fff

/* Background color for alt panels (collab and debug) */
$navpage-nav-side-panel: #2d0c40

Greys

/* Header Colors */
/* Search text color */ 
$search-text-color: #eee
/* Topbar background color*/
$navpage-header-bg: #000
/* Topbar text color */
$navpage-header-color: #FFF
/* Bottom border color on topbar */ 
$navpage-header-divider-color: #112741

/* Left nav and navigation toolbar background color */
/* Navigator hover color */
$nav-highlight-main: #000
/* Background for expanded navigation items */
$subnav-background-color: #666
/* Backgorund for navigator (left side only). */
$navpage-nav-bg: #E6E8EA
/* Background for Favorites list, history list, and Connect list background. */
$navpage-nav-bg-sub: #666
/* Text color in main navigation */
$navpage-nav-color-sub: #E6E8EA
/* Text color when hovering over items in main nav */
$navpage-nav-mod-text-hover: #FFF
/* Divider color in Navigator */
$nav-hr-color: #244D81

/* Navigator tabs */
/* Active nav item underneath search */
$nav-highlight-bar-active: #666
/* Inactive nav items underneath search */
$nav-highlight-bar-inactive: #EAEAEA
/* Background for currently selected navigation item underneath search */
$navpage-nav-selected-bg: #000
/* Color of icon for currently active nav item. */
$navpage-nav-selected-color: #FFF
/* Color of icons for non inactive nav items.*/
$navpage-nav-unselected-color: #737373

/* Navigator Application text */
/* Color for latest connect messages in right bar. */
$connect-latest-message: #777
/* Timestamp header backgrounds in History tab*/
$nav-timeago-header-color: #E6E8EA
/* Core content text color */
$navpage-nav-app-text: #000
/* Core content text color hover*/
$navpage-nav-app-text-hover: #FFF

/* Color of outline for search */
$navpage-nav-border: #BBB

Multiple Default Update Set Fix

$
0
0

On some ServiceNow upgrades, you may end up with multiple "Default" global update sets. Default, Default 1, Default 2, etc.

For each application there will be a Default update sets which is ok.  However having multiple "Default" global update sets is annoying/more to maintain.

Here is how you can fix this if it happens to your system.

Set Default Set

You need to do this step otherwise integrations or other users will keep creating new Default update sets for the Global Application

  1. In the left navigator bar, select "Local Update Sets"
  2. Add the Columns, "Application" and "Default Set".
  3. Filter the list so you just show the update sets that start with Default and are for the Application Global.  https://<yourinstance>.service-now.com/sys_update_set_list.do?sysparm_query=nameSTARTSWITHDefault%5Eapplication%3Dglobal
  4. In the Column, Default Set, set the one you want to be Default to true.

Delete Default Extras

Practice this in a Development instance first!

  1. Move all your "Default" update set items from the extra Default update set.  For example, you want to get rid of "Default 1", move all the items stored into "Default".  
  2. Mark the extra Default update set (Default 1) to ignore.
  3. Repeat for any other repeats.
Viewing all 191 articles
Browse latest View live