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)

Wednesday, September 09, 2009

A helpful tip for troubleshooting IIS

The extended logs for IIS (stored in ..\Windows\System32\Logfiles\W3SVC1\) are stored in GMT time by default which can make finding your issue a little bit harder. Here's a simple way to change it to your local time.

The W3C Extended Logging format spec requires logging in GMT time. You can set the log roll-over to occur at midnight local time if you want. This avoids problems with situations like Daylight Savings, where you log goes "backwards in time" by an hour.

To enable logfile rollover based on local time, not GMT, open the IIS Manager, locate your website, rightclick and choose "Properties". On the "Web Site" tab, click "Properties" next to logging. Then check "Use local time for filename and rollover"

Saturday, September 05, 2009

Updating fields with a Script Expressions

I've found this line of code invaluable when Quick Actions and Business Rules just won't work for you
currentBusinessObject.GetField("FieldName").SetValue(new Fusion.FusionValue(VariableName));
It writes the variable VariableName to the field FieldName in the current business object. You can also replace VariableName variable with a value of any type (obviously in the format "String")

Thursday, September 03, 2009

ITSM: Quick Action Security in Web

In the 6.x systems you now have the ability to secure quick actions (by security group) this means that you can create a quick action that only some users can A. Run B. Edit C. Delete rather than specifying this for All quick actions.

The issues here is that in 6.2 and 6.1.4 and below the security does not work in the web client.
However, restricting Quick Actions does work in ITSM 6.1.5 since ITSM 6.2 is in older code build than ITSM 6.1.5. ITSM 6.2 and ITSM 6.1.5 codes builds will be merged in ITSM 6.3.

ITSM: The Perils of Hiding Tabs

I discovered this in the web 6.2 today and it reminded me of an issue with tabs in the full client.

In some versions of 5.x there was an issue that disabled all of the tabs from working. The issue comes from making the FIRST tab in the layout of an object hidden or conditionally hidden. This issue is fixed in 6.2 (or 6.1.2 or later) in the Full Client but the issue still exists in the web client.

The error is not too easy to spot in the web client, the first indication is that you can't navigate to any tab other than the first displayed tab. Secondly there is an yellow error next to "Done" in the web browser. The error details are "Unterminated String Constant".

The simple (and only fix) is to make the initial tab in the layout always visible. Either swap it with another Tab or change the Visibility rule.

Monday, February 09, 2009

ITSM 6.1.x Tip for the Week : Errors with DTC Setup

"Exception of Type 'Fusion:FusionException' was thrown. The partner transaction manager has disabled its support for remote/network transactions."
Last week I came across this error when setting up a connect (and also using the application). ITSM (or GMEE) will still allow you to create the connection and connect to the application server but will through this error and prevent saving of the object if you have the BPML engine running.
The issue is with the security setup of the Microsoft DTC service on both the ITSM and SQL Servers. There is a very helpful article from technet about 'New functionality in the Distributed Transaction Coordinator service in Windows Server 2003 Service Pack 1 and in Windows XP Service Pack 2'

This outlines the settings that need to be enabled to allow the ITSM and SQL servers to communicate.

Monday, January 19, 2009

ITSM Tip for the week: Opening Self Service to a new Incident not the dashboard

Normally in ITSM  (and in all 5.x versions)  linking to Self Service would involve going to the users dashboard via the http://[itsmserver]/Servicemanagementweb/SelfServiceLogin.aspx where [itsmserver] would be the name of the server (without the []).

In 6.1.x you can now link directly to an object with the following format.

http://[itsmserver]/ServiceManagementWeb/IntegrationInfo.aspx?CommandName=SHOWSINGLEBUSOB&Role=SelfService&Param1=Incident&Param2=[RECID]

where [itsmserver] would be the name of the server and [RECID] is the RecID of the object you would like to open (without the []).

You can use the same formatting to link directly to a new object in SelfService. For example, if you wanted a self service user to go straight to the new incident screen without having to go to the dashboard and then click the "new incident" option. You can use the same format as about but simply leave out the [RECID]

http://[itsmserver]/ServiceManagementWeb/IntegrationInfo.aspx?CommandName=SHOWSINGLEBUSOB&Role=SelfService&Param1=Incident&Param2=


Monday, January 05, 2009

ITSM Tip for the week: Adding a count to the Journal Tab

I’ve had a whole host of customers ask for this so I thought I'd add the details up. The script below counts the number of Journals that are related to the incident. 

How I’ve been using this script is to display the journal tab as “Journals (1)” (like the tabs in a HEAT system does). To do this you will need to add a field to the Incident that stores the Journal count (which I usually call JournalCount). Assign the script to the Field as a Calculation. Finally change the label of the tab to be a Named Expression. That Named expression should be of the Simple Calulation Type and would look something like this -> 'Journals ('+TRIM('{$[FIELD]Incident.JournalCount$}')+')'. 

The same principle will also apply for any other tab.

Journal Count Script 

import System

import Fusion

import Fusion.Api

 

class FusionScriptWrapper implements IScriptWrapper

{

     function FusionScriptWrapper()

     {

           // place constructor logic here

     }

 

     function Process(currentBusinessObject : Fusion.Api.BusinessObject, currentField : Fusion.Api.Field) : Object

     {

           var objReturn : Object

           var numberofjournals : int

          

           // Initialisation

           objReturn = true

          

           // Get all the Journals

           var bizCollectionJournals : Fusion.Api.BusinessObjectCollection

           bizCollectionJournals = currentBusinessObject.GetRelationship("IncidentContainsJournal").BusinessObjects

          

           // Check for Journals from the Relationship

           if(bizCollectionJournals != null)

           {

                     // Count the number of Journals

                     numberofjournals = bizCollectionJournals.Count

                     objReturn = numberofjournals

               

           }

 

          // Return the number of Journals

          return objReturn

     }

}

Monday, December 22, 2008

6.x tip for the day : URL and HTML Support

In 6.x the text fields now support both URLs and HTML code. The following describes how to set them up.

 

Activating URL Support

You can enable URLs (hyperlinks) to be rendered properly in text box controls, so that users may click on live hyperlinks to access a particular resource.

The following types of URL schemes are supported:

• HTTP ( http://example.com/ or https://example.com )

• FTP ( ftp://example.com )

• mailto: ( mailto:admin@example.com )

• Local Files ( file:///C:/notes.txt )

• Windows network path, or UNC ( \\ QA-Server1\Backups )

 

Note: It is important to note that URL Support is activated at the control level

(within the Description text box, for example), and not at the field level. A field

must be associated with a control to enable URL support for that field.

In the following example, URL support is activated for the

Incident.Symptom field (in this case, “Description”) on the Incident form.

 

To activate URL Support:

1. Launch the Administrator. Navigate to a Business Object for which you will activate URL support. For example “Incident”.

2. Right-click on the text box for which you will add URL support (in this case, “Description”). In the context menu, choose Properties. The Control Properties screen appears.

3. Select the Behavior tab and activate the URL Support check box. Click the Close button to apply this change.

4. If there are other perspectives, for which URL support should be activated, repeat steps 2 and 3 for the text box "Description" in all other perspectives.

5. Commit the changes in the Administrator.

 

Activating HTML Support

To enable display and editing of HTML stored in a business object, use the property settings for the text field containing the HTML. This option is available in the Properties panel for the control.

 

1. Launch the Administrator and open the definition set containing the desired business object.

2. Navigate to a business object for which you will activate an HTML control, for example: “Email.”

3. Right-click on the text box for which you will add HTML support.

4. In the context menu, choose Properties. The Control Properties dialog appears

5. Select the Behavior tab and click the Html Support check box.

6. Click Close to apply this change.

Merry Xmas!

Merry Xmas to all who read this blog! Hope you have a great 2009!

P.S. I'm aiming to update this a little more regularly in 2009!

Thursday, December 18, 2008

Wednesday, May 14, 2008

Heat Self Service Now Compatible with IIS 6

Previously all versions of HSS 8.x (including HSS 8.4) would only run on Windows 2003 Server in IIS 5.0 isolation mode.

This issue has been certified as resolved by the release of HAT Self Service 8.4.4 which has been certified gold. The download is available in the Drivers and Downloads section on our Support Site at http://Support.Frontrange.com. This version does not contain a schema change, although support strongly recommends that HEAT 8.4.4 Call Logging be updated on all client machines.

Below are the specific bug numbers with reference to this
  • RM 15150 – HEAT Self Service now operates with ISS 6.0 without having to set to IIS 5.0 isolation mode.
  • RM 32563 – First Level Support and HEAT Self Service Integration now works when using Windows 2003 Server.
  • RM 40899 – Typical Installation now creates Virtual Directories when installing on Windows 2003 Server.
  • RM 51309 – HEAT Self Service has removed the limitation to the number of Call Types supported.

ITSM 6.1 Release

ITSM 6.1 is available for new customers at this time. The version for existing customers 6.1.1 will be available around the June-August 2008 time frame.

Wednesday, May 07, 2008

An effort to update

Hi All, It's been a while since I've been updating this site but with ITSM 6.1 and GMEE both just around the corner there is likely to be a whole lot more content.

Also Frontrange have started their own community page at http://frsconnect.frontrange.com which will be worth checking out for information from other people with Frontrange product experience

Friday, March 28, 2008

A couple of ITSM Tricks/Bugs

Tip Number 1: Frontrange ITSM License Timeouts in 5.0.7.4

The following piece of code is in the Web.Config file in the ServiceManagement folder:
<fusionserverconfiguration instanceid="A210F41B9C0B4492AC54EE90566D51B6" connectionname="">
<usersessionmanagement sessionexpiration="20"/>
<licenseframeworksettings/>
</fusionserverconfiguration>

The line <licenseframeworksettings> seems to be redundant for the license timeouts. Removing that line of code (after making a backup) and reset the IIS.

After this the license server should release license sessions after the timeout specified in the (in minutes)

Tip Number 2: Field Validation Errors in Frontrange ITSM 5.0.7.4

When you select Validation on a field there is another field created in the background called {Fieldname}_Valid. If the field name is longer than 20 characters the field is created with the first 20 characters of the field name then “_Valid”. The issue occurs if you have 2 fields where the first 20 characters of the name are the same and both fields have validation (of any type). When you Commit you receive and error saying that the fields share the same validation but have different validation rules.

The solution is to remove validation from one field. Change the name of this field apply this change then re-add the validation.

Wednesday, September 05, 2007

ITSM TIP: LifeCycle in ITSM 5.0.7.x

Discovered something this morning working with Object Lifecycles today. The field used to determine an object's Lifecycle (at least in 5.0.7.x) cannot be a Logical or a Numeric field you must use a Text field.