ServiceNow – Print/Export a Complex Visual Task Board

ServiceNow has a cool feature called Visual Task Board. It’s an implementation of a Kanban Board and you can read about it here. This makes life so much easier and the Team can pretty much manage the standup / 1:1 meetings. I have such board setup with 7 lanes and several 100 cards. End of the month, I wanted to save the contents of the board to a PDF for posterity. This is where it became a little complicated. The OOTB print function produces an output that wasn’t presentable.

The steps outlined in this document may change with ServiceNow’s implementation in a future release, but you get the idea.

What you need

  • Internet Explorer and it’s Developer Toolbar
  • SnagIt
  • Dual Monitor (for a large Dashboard)
  1. Open Internet Explorer and Navigate to your VTB. Expand it over as many monitors as you need so that you see all the content horizontally. We will work on a fix to get the vertical content in step 2.
  2. Open F12 Developer Tools from the Tools menu or Press F12. Follow these 2 steps to edit the body tag and adjust the height of the div tag as shown below.

01.png

02.png

3. We now have a window that shows all of the content. Capture the window using SnagIt or any other tool that supports scrolling at this point and capture the page. I then saved it png / pdf formats.

Hope this helps till ServiceNow implements a feature to export this Dashboard in its entirety.

Troubleshooting – Erratic Load Balanced Web Application behavior

Have you ever run into situations where the Customer reports an issue, but the Dev Team is not able to reproduce it. Well, I have had several of these and sometimes one of the Web Server is configured differently than the rest in a Load Balanced environment. Sometimes these behavior also exhibit when we actually deploy a new farm or add new servers to an existing farm.

Recently a customer reported that attachments on a particular customer portal were not being viewable. Sure enough, when we tested this issue initially, it worked for us. We were able to quickly able to use this technique to isolate the server and then add the missing mime type.

The actual issue/behavior can be identified using Fiddler or the Developer Tools. Identifying the server that is causing the erratic user behavior is key to either quickly resolving or removing the server from the farm for offline resolution.

When adding each server to the farm, add a HTTP Response Header that uniquely identifies the server as shown in the screenshot below. Don’t include any sensitive details that might compromise your server.

screen_shot_2016-11-11_at_4_19_00_pm

Shown below is a Network Capture using Firefox / Firebug, but the same steps apply to Fiddler and other Developer Tools. After you have captured enough events to reproduce the issue, sift through the requests to find the offending request, identify the HTTP Response Header and you will be able to locate the server.

screen_shot_2016-11-11_at_4_03_53_pm

Keep in mind that the Developer Tools have limitation to the total number of requests / responses that can be captured without degrading performance. fiddler seems to be a better tool of choice for this particular debugging scenario.

It’s possible to programmatically set the HTTP Response Headers, but that’s a different topic.

JQuery – Script1024 Error & IE’s Compatibility Mode

We were testing a feature in Firefox, Chrome and IE 11 and ran into an issue wherein, JQuery would not load in IE11. Client side callbacks were not being processed. Using IE’s Developer Tools / Console window showed the error below.

screen_shot_2016-10-18_at_8_18_02_pm

Had us stumped for a few minutes and setting the Compatibility mode for Intranet Sites got the page working again.  I disabled Compatibility mode, but the page continued to work and was not able to reproduce the error. Within the Corporate Intranet, “Display intranet sites in compatibility view” setting had been enabled by default. I had disabled this setting while working on something else. Adding the Meta Tag & the proper HTML5 document tag resolved the issue. This allows for the Compatibility mode to be disabled if needed.

Another odd behavior I noticed is that  as soon as the page is loaded in Compatibility mode, it works without the DocType and Meta tag being present on the page. Removing or adding the Tags to the page and refreshing does not change behavior, it continues to work. Very difficult while trying to reproduce an issue. Developer Toolbar hung in the middle of the Debug session and had to kill IE and launch it again. That’s when I realized that a new session is required after disabling compatibility mode to re-trigger those exceptions and finally confirm the JQuery piece worked. Phew!!!

It was poor code to begin with, but the Browsers were forgiving enough to add to the frustration.

<!DOCTYPE html><meta http-equiv="X-UA-Compatible" content="IE=Edge">

Privacy & Cookies

Several years ago, while waiting to meet my PCP, I saw an interesting catalog with options to order DVD’s to further ones knowledge about various subjects. Curiosity got the best of me and when I came home, googled to learn more and left it there without registering or purchasing any products. Didn’t think about it until a few weeks later, when I was surprised to see a hard copy of the same catalog delivered by mail to my home address. I had used Google Wallet once before and was always signed into my gmail account. I then made the connection that Googling and being signed into the services was not a good idea and started signing out of my gmail account.I assumed that the Service Provider would honor my request to be signed out and not track me. This was up until I started looking into the web traffic between a popular news site (let’s call it news.com) and my machine. What started out as a Training session using the browser debugging tools, ended up as an issue with tracking cookie as outlined below.I had signed out of Facebook as usual, while browsing news.com. Looking at the http requests, I noticed a harmless call to Facebook.com requesting for an image that was just 1X1 pixel. When news.com made this request to FB, the cookie as shown below was automatically sent with the request to Facebook. News.com also added some additional details about itself to the URL. Parts of this left over cookie from my previous Facebook sign in left a unique value that was able to identify me and associate my browsing pattern @ News.com. You can read more about FB Pixels here
latimes-fb-afteraIf I browse news.com while signed into FB, I should then be able to comment on articles etc which is the expected behavior and understand the essence of being tracked. Tracking someone when signed out wasn’t what I was expecting. A single website using cookie to track state has morphed into multiple websites using the same cookie to track a single user.Private BrowsingMost modern browsers support Private Browsing. You have to read though the documentation to see how it is being implemented before going all in. Understand the difference between New Tab’s vs New Window and see what is shared.The major advantage of using InPrivate Browsing with regard to this article is that the Cookies are deleted after you close the window. So news.com, when requesting content from FB for example, may not have the tracking cookie to make the connection as long as they are on 2 different Private Browsing windows. The downside of using private browsing is it makes it very difficult to manage Downloads, remembered content like Autofill and Passwords etc. I am adjusting to find a balance. Setting the Private Browsing mode permanently threw me off for a few days and is an annoyance. Wish there was an easier way to manage this by blocking cookie leeching while letting CDN’s work. . Be cautious when clicking links to read articles on Facebook. Every time, you click those links, you may be associating your FB or Google account with these sources. As long as you consciously make these decisions, it is ok.If you ever want to starting using Private Browsing, don’t FORGET to Save all the Passwords and then delete all your cookies / Browser data before you start.Here is some information on the EU Cookie Law