Interesting Forrester Analyst information on getting a Service Catalog

General No Comments »
by:

Just a short article on Service Catalog – a topic which nowadays almost always comes up at an implementation of an IT Service Management application we perform.
And still the topic raises lots of questions and still the service catalog has proven hard to implement for customers.

In THIS short blog article from Forrester analyst Stephen Mann, Stephen touches some useful points and provides some helpful guidelines.

Worth reading I think.
Challenge for most Service Catalog implementations still is: don’t make it an IT-driven initiative, facilitating IT requirements with no real value to the users of the catalog (the business).

But when analyst writes about it, this sometimes can make all the difference to an organization.

So maybe you can use this when starting your service catalog initiative within your organization.

If you have any questions, let me know by sending me an email on rik.burgering@2e2.nl.

Prefill form without insert, URL encode and optional use Tiny URL

General No Comments »
by:

Sometimes you don’t want to create a record but you need to prefill some fields on the form.
You can do this by creating a “dynamic” URL, like this for example in an UI Action (Button) to copy a change task:

[cc lang=”javascript”]
var link = ‘/change_task.do?sys_id=-1&sysparm_query=cmdb_ci=’ + current.cmdb_ci;
link += ‘^priority=’ + current.priority;
link += ‘^change_request=’ + current.change_request;
link += ‘^company=’ + current.company;
link += ‘^risk=’ + current.risk;
link += ‘^impact=’ + current.impact;
link += ‘^urgency=’ + current.urgency;
link += ‘^assignment_group=’ + current.assignment_group;
link += ‘^short_description=’ + escape(current.short_description);
link += ‘^description=’ + escape(current.description);

gs.addInfoMessage(“New change task created as a copy of change task ” + current.number);
action.setRedirectURL(link);
action.setReturnURL(current);
[/cc]

In the script above we will create a link where we redirect the user to.

We use the Javascript function “escape” to encode the value for use in a URL, this prevents errors in the URL with the use of &, ?, ‘ and = signs
(I first used Packages.java.net.URLEncoder.encode but when it’s not needed don’t use Packages)

Optional we can enable the Tiny URL plugin http://wiki.servicenow.com/index.php?title=Tiny_URL_Support.
This will keep the URL tiny and the URL can be as large as we want. When the plugin is enabled the URL will become:
[cc lang=”text” nowrap=”0″]
https://demo12.service-now.com/change_task.do?sysparm_tiny=2518b1eb745320004108ff966b883c29
[/cc]
instead of:
[cc lang=”text” nowrap=”0″]
https://demo12.service-now.com/change_task.dosys_id=-1&sysparm_query=cmdb_ci=a9c0c8d2c6112276018f7705562f9cb0^priority=3^
change_request=undefined^company=^risk=2^impact=3^urgency=3^assignment_group=^short_description=Rollback
%20Oracle%20Version^description=Performance%20of%20the%20Siebel%20SFA%20software%20has%20been%20severely
%20degraded%20since%20the%20upgrade%20performed%20this%20weekend.%20%0D%0AWe%20moved%20to%20an%20unsupported
%20Oracle%20DB%20version.%20%20%20Need%20to%20rollback%20the%20Oracle%20Instance%20to%20a%20supported%20version.
[/cc]

When we look in the Tiny URL table (sys_tiny_url) we will find our record with the following data:
[cc lang=”text” nowrap=”0″]
sys_id=-1&sysparm_query=cmdb_ci%3Da9c0c8d2c6112276018f7705562f9cb0%5Epriority%3D3%5Echange_request%3D
undefined%5Ecompany%3D%5Erisk%3D2%5Eimpact%3D3%5Eurgency%3D3%5Eassignment_group%3D%5Eshort_description%3D
Rollback+Oracle+Version%5Edescription%3DPerformance+of+the+Siebel+SFA+software+has+been+severely+degraded
+since+the+upgrade+performed+this+weekend.+%0D%0AWe+moved+to+an+unsupported+Oracle+DB+version.+++Need+to
+rollback+the+Oracle+Instance+to+a+supported+version.
[/cc]
The Tiny URL will be used when the length of the property glide.tiny_url_min_length is exceeded. (default 1024)

If you have any questions you can contact me using mail on menno.aret@2e2.nl.

Effective ZING searches using another language than English

General No Comments »
by:

How to facilitate effective searches on sentence fragments or even whole sentences in ServiceNow in another language then English?

Within ServiceNow there is a feature called “Zing Text Search” that is used a lot without you realizing. Zing is the text indexing and search engine that performs all searches in ServiceNow.

In an out-of-the-box environment or an environment where most text is written in English, text searching gives you a very accurate and limited list of results.

What about environments where most input text is registered in for example the Dutch language or a combination of English and Dutch?
You probably noticed that a text search in your Dutch or Dutch/English orientated environment is much less effective and produces a huge list of results.

Why is that? For an effective search on sentence fragments or even whole sentences the Zing Text Search engine relies on a table containing stop words. Out-of-the-box ServiceNow only supplies an English stop word list even when the Dutch localisation is activated.

Stop words are query terms that will be thrown out, ie. the junk or noise words like “a” and “the”. If you set good stop words, your users can search on sentence fragments or even whole sentences, and only the important words will get looked up. For example, “the book” could search for just “book”, “What is a carburetor?” could search for just “carburetor”, and “Tell me about the history of the presidency” could search for just “history” and “presidency”. It’s up to you.

ServiceNow let’s you setup your own stop words under System Definition->Text Index Stop Words. Stop words are only a design element because they are a presentation trick and not real natural language parsing, so you shouldn’t mislead your users into thinking that you really understand what they’re saying. But used properly, stop words can be the cornerstone of a very effective text searching. It will help your end users to find more accurate information, which will help them to do their work more effectively.

Whatever your use, stop words are a great feature, so consider what they might do for you.

Click HERE to download a XML containing a mixture of Dutch and English stop words you can easily import into your own environment.

If you have questions you can reach me via email on .img[at].img.

Client scripting – gliderecord query using a callback function

General 2 Comments »
by:

Sometimes you want to use a gliderecord query from within a client script. In that case make sure you use a callback function. For this example I created 2 client scripts; CS1 was synchronous and CS2 asynchronous. Looking at the timing diagram below we can see the difference.

CS1 needs 107 ms to retrieve the data from the server and then needs around 150 ms to process the result. During all this time the browser cannot do anything else. CS2 needs 108 ms, but is not blocking the next query.

Conclusion: in this case we saved the user around 250 ms waiting time, with just a small change in the script.

Figure 1 – CS1: Synchronous query

Figure 2 – CS2: Asynchronous query