Wednesday, May 23, 2012

AutoComplete on Watch Lists

Something I didn't know that I discovered today is that the auto completion and autocompletion attributes (as you can see on the left) that you can add to a reference field can be added to a watch list (glide_list) field.

The functionality is useful because it allows you to see other attributes of a user while you're searching in the reference field etc. You can read how the functionality works on the wiki here.





Basically the following line can be added to the dictionary attributes of a field (for a sys_user reference): 

ref_auto_completer=AJAXTableCompleter,ref_ac_columns=user_name;email,ref_ac_columns_search=true

This will give you the user_name field and the email field (in that order) displayed after the display field. The second attribute (ref_ac_columns) lets you specify if these attributes will be used in the search as well (in this case "true").

Saturday, May 19, 2012

Highlights from ServiceNow Knowledge12

This year I was privileged to get a ticket and a chance to head to the US to be part of the knowledge12 conference for ServiceNow and what an amazing week it was. The hardest thing about the conference was the unbridled session envy wondering if the one you picked was the absolute best you could have chosen. Not because any lab, session or keynote was bad but simply there were so many topics on offer you wanted to be able to attend them all. As I'm writing this I can't help but feel I've been swept up by the conference and ended up drinking a little too much of the koolaid but it's hard not to be when there are 2000 people spurring you along.  The labs were probably the most valuable with a host of new tips and tricks for extending the platform (which I'll post in the coming weeks) but being able to get hands on with the new Berlin release after Fred Luddy's keynote was the highlight.  Here's a quick list of what I saw: - new IT assets module, allowing you to create an it asset register separate to your cmdb. This is one of the biggest changes to the cmdb model since it was included allowing you to store procurement and stock information separately from your cmdb information being managed by discovery.  - new SCRUM module, most of the improvements here we're reporting and collaboration through the UI. The most notable addition is the burn down chart and the story board giving you an interactive "post it" note view of your stories - task/live feed integration allowing you to include the live feed updates as part of the history of a task (incident problem change etc) as well as allowing collaboration on the live feed.  - archiving automated and configurable archiving on any table all scheduled in background workers to prevent performance impacts. Probably the nicest is that the data is automatically flattened, the data is demoralized so reporting remains accurate. The nicest feature is though you can simply choose records to return to a non archive state at any time.  Now for a few of the more under the covers niceties  - data mapping tables. Allowing for functions like priority matrix to be moved out of code and administered with table data with the ability to run both on the client and server side.  -in instance clones, pretty much what the title says but with the added bonus of selective data to retain AND A ROLL BACK FEATURE! -new VM provisioning integration in the Run book plug in -new script editors with formatting and highlighting.  Everything wasn't all Berlin centric. There were a few big themes from that I took away from the conference. -Social and collaborative IT is here to stay and not only should you have a strategy there are real quantitative benefits to embracing it.   -Gamification can inject new performance gains into your existing processes (although it's essentially bribery with a leader board, but I'm ok with that) -Automation of business process and giving the end user power to drive the automation through a service catalog -Knowledge should be the foundation of your implementation. A lack of knowledge can be more costly to the business than a lack of processes.  All this comes down to a common theme, IT needs to be able to offer more value to the business with less resources and all the tools are available to achieve it. The key is a little strategic planning for your implementation and a little innovation.  Overall I had a fantastic conference and look forward knowledge13 in Las Vegas. My aim is to be speaking at the next conference....

Wednesday, January 06, 2010

A new decade and some new directions




2010 looks like it will be a big year for me... For the past decade I've been working with the Frontrange product set and this year I've taken the plunge and dropped it all for ServiceNow.

It was a pretty big decision to make and essentially means I'm moving from a Big Fish in the pond to a Small Fish. It will be an interesting time for me because I haven't been in this position for at least 10 years.

For the most part I'm looking forward to it. There is the obvious apprehension as I'm leaving a job I've basically been working in for 10 years.

I haven't had to learn something completely new for a long time so I'm really looking forward to getting stuck into some new technology.

It should be a fun year full of change.... at least that's the plan

Thursday, December 03, 2009

FUDs in ITSM 6.1.5/6.1.6

As some of you are probably aware, the FUD process is giving unexpected results for the ITSM 6.1.5 and 6.1.6. Whilst you’re able to create an upgrade set, importing the FUD on the target database results in an object reference error.


It seems that it will only error if my FUD included any field definitions. Anything else (quick actions, expressions, BR’s, triggers, panel defs) would still succeed in being imported.




There is a bit of a work around for this issue but it's not the prettiest solution and is not very customer friendly. I'm going to assume the version is 6.1.6 but it works equally well for 6.1.5


1. Create a FUD in your source system in 6.1.6
2. Open Administrator on a 2nd test version of target database in 6.1.1
3. Import the FUD (from the 6.1.6 system) into the Administrator in 6.1.1
4. Take the Definition set created by the FUD Process Import in the 6.1.1 Administrator and save in another location (provided the commit was successful)
5. Open Administrator on your normal Development Environment in 6.1.6.
6. Open the definition set saved in step 4 in the 6.1.6 Administrator
7. Commit.


This seems to solve the issue but as I said it's not pretty, fast or customer friendly

Monday, September 21, 2009

Prompting for a Confirmation Yes No Message box when completing an assignment

The combination of script expression and button guard allows you to pop a yes/no box to confirm that an assignment is to be completed

First Create a script expression with the code below *obviously you can edit the text of the message box you want to appear.
import System
import Fusion
import Fusion.Api
import System.Reflection

class FusionScriptWrapper implements IScriptWrapper
{
function FusionScriptWrapper()
{
// place constructor logic here
}
function MessageBox(text:System.String, caption:System.String, MessageBoxButtons:System.String, MessageBoxIcon:System.String)
{
try
{
var assembly : System.Reflection.Assembly;
var MessageBox : System.Type;
var Buttons, Icon, result : System.Object

assembly = Assembly.LoadWithPartialName("System.Windows.Forms");
MessageBox = assembly.GetType("System.Windows.Forms.MessageBox");
Buttons = System.Enum.Parse(assembly.GetType("System.Windows.Forms.MessageBoxButtons"), MessageBoxButtons);
Icon = System.Enum.Parse(assembly.GetType("System.Windows.Forms.MessageBoxIcon"), MessageBoxIcon);

var argMSG : System.Object[] = [text,caption,Buttons,Icon];

result = MessageBox.InvokeMember("Show",System.Reflection.BindingFlags.InvokeMethod,null,null,argMSG);

return result.ToString();
}
catch(exc : System.Exception)
{
return null;
}
}
function Process(currentBusinessObject : Fusion.Api.BusinessObject, currentField : Fusion.Api.Field) : Object
{
var objReturn : Object

var userResponse : System.String;
userResponse = MessageBox("Are you sure you want to complete this assignment?","Assignment Completion","YesNo","Question")

if (userResponse=="Yes")
{
objReturn = true
}
else
{
objReturn = false
}


return objReturn
}
}

Then select the properties of the complete button. Select the "Action" tab and select the Guard Tab with in it (shown below)



Add the new expression ( which I called MsgBoxTestPrompt) as the condition. Select the Nothing option in the behaviour drop down.

Now when the user selects the complete button they are prompted if they are sure the want to complete. If they select Yes then the action will fire. If the select No nothing will happen.

The only thing to be careful of is that guards don't prompt in the web (or any prompt for that matter)