How to show Business Applications in the Service Status widget

ddaws
ServiceNow Employee
ServiceNow Employee

Situation: We are looking to implement the Service Status widget to our Service Portal. In testing, we are able to create an outage on a Business Service and get that outage to show up on the widget (working as expected). However, as a company, we do not have defined services and, up to this point, have only ever reported outages on Business Applications. When we create an outage on a Business Application, it does not show up on the Service Status widget.

Question: We have identified that the widget only looks at cmdb_ci_service and outages to display. Is there a way to expand what is shown on the widget beyond just Business Services to also include other ci classes while keeping all other functionality (showing history, ability to click into outage, etc)?

Additional Question: How are both Services and Business Services shown in Service Status widget? Looking in the PDI demo data, both Bond trading and Blackberry appear to be the same class (Business Service) and service classification (Business Service). I'm not sure where the delineation is listed that separates these two CIs.

find_real_file.png

9 REPLIES 9

thanks for the feedback.

Is it better to just consider the applications Services and move them from the Business Application table to the Business Services table?

[AV] - As long as it is within the cmdb_ci_service I believe you should be good.

 

Thanks

Anil

A quick note. Dotwalking in a addQuery isn't recommend of performance issues.

 

//Göran

thoma5
Giga Contributor

Hello, 

 

Has anybody messed around with the single Service Status widget yet with the NY upgrade? It's the one with the colored bars..

 

I'm currently having trouble showing the tooltip now that it's in NY version. The London version works fine when I update the html to 

<div ng-if="data.service" class="panel panel-{{::c.options.color}} b">
<div class="panel-heading">
<h4 class="panel-title">{{::c.data.serviceDisplay}} <span class="text-muted">(${last 90 days})</span></h4>
</div>
<div class="panel-body">
<div class="description">${Color bar indicators flow left to right, from oldest to most recent status}</div>
<ul class="pills-group">
<li ng-repeat="day in ::c.data.days" ng-style="::{'background-color': day.color}" ng-class="[(day.count > 0) ? 'multiple-issues' : '', day.id]" class="day" ng-switch="day.id" tooltips tooltip-template="{{::day.msg}} {{::day.date}}">
<span class="sr-only" aria-label="{{::day.msg}} {{::day.date | date :'MM/dd/yyyy'}}" ></span>

<i ng-switch-when="complete" class="fa fa-info"></i>
<i ng-switch-when="intermittent" class="fa fa-exclamation"></i>
<i ng-switch-when="partial" class="fa fa-minus"></i>
<i ng-switch-when="planned" class="fa fa-plus"></i>
<i ng-switch-when="preventative" class="fa fa-minus"></i>
<i ng-switch-when="reputational" class="fa fa-plus"></i>
<i ng-switch-when="multiple" class="fa fa-plus"></i>
<i ng-switch-when="no-outage" class="fa fa-check"></i>
</li>
</ul>
</div>
</div>
</div>

 

I'm thinking maybe it has to do with the day.id in the server script or switch..? But still even if I change the switch to check the day.msg instead of day.id it the tooltip is not displaying at all. 

thoma5
Giga Contributor

Also, it's showing this extra check on the outside of the div which I'm sure does not before, it says fa-check ::before which I haven't added.. 

 

find_real_file.png

lwbecker
Giga Contributor

Answering the "Additional Question" in the original post:

Additional Question: How are both Services and Business Services shown in Service Status widget?

It is just grouping the items in cmdb_ci_services by the category field. This is the OOTB code that is doing that:

	var currentCategory = "-";
	var catIndex = -1;
	while (svs.next()) {
		var cat = svs.getValue("category");
		if (cat != currentCategory) {
			catIndex++;
			currentCategory = cat;
			data.categories[catIndex] = {};
			data.categories[catIndex].name = cat;
			data.categories[catIndex].label = svs.getDisplayValue("category");
			if (data.categories[catIndex].label == "")
				data.categories[catIndex].label = gs.getMessage("Service");
			data.categories[catIndex].services = [];
		}