Here is a brief overview of the Service Manager Console and some small tips you can use when authoring your own management pack to leverage some of the functionality of the console.
Before going into specific areas, let’s begin with the layout of the console. The console is composed of different areas, and each have a name to it. Below is an image of the console highlighting the different areas:
Main Menu
There are some menu options available that are quite self-explanatory.
Using View menu you can enable/disable Navigation Pane, Tasks Pane, Details Pane and status bar.
Using Go menu you can switch between wunderbars in your console
Tools has Connect that you can use to connect to another server. You can use my recipient information which opens up your user form provided your user account does exist in the Service Manager database. My notifications lets you view/create/edit and delete notifications where only you’re the recipient.
Wunderbar
This is the area where each item represents a workspace. Out of the box we have Administration wunderbar which has the views and folders that are needed to administer the Service Manager, then we have Library for solution configuration, and then the solution wunderbars follow like Work Items, Configuration Items, etc.
To be able to add your own wunderbar, all you need to do is to add a Folder mp element that is a child of the Console Root folder. The Console root folder exists in the Microsoft.EnterpriseManagement.ServiceManager.UI.Console management pack
<Folder ID="ServiceManager.Console.RootFolder" Accessibility="Public" /> à this is the definition of the console root folder, your folder would look like:
<Folder ID="Microsoft.EnterpriseManagement.ServiceManager.UI.MyWunderBar" ParentFolder="Console!ServiceManager.Console.RootFolder" Accessibility="Public" />
where Console is a reference to Microsoft.EnterpriseManagement.ServiceManager.UI.Console.mp
More details can be found here:
Navigation Pane
Once you have the wunderbar in place, now you will need the top level tree node for your navigation pane. Navigation pane is the area on the left most side in the console. Essentially now any folders that are children of the newly created Folder Microsoft.EnterpriseManagement.ServiceManager.UI.MyWunderBar will appear in this pane. To have a similar look and feel with the out-of-box spaces in the console, its best to have one folder be the child of Microsoft.EnterpriseManagement.ServiceManager.UI.MyWunderBar and then everything else be children of Microsoft.EnterpriseManagement.ServiceManager.UI.MyWunderBar.Tree and you can go as many level deep as you wish to arrange your space
<Folder ID="Microsoft.EnterpriseManagement.ServiceManager.UI.MyWunderBar.Tree" ParentFolder=" Microsoft.EnterpriseManagement.ServiceManager.UI.MyWunderBar " Accessibility="Public" />
Breadcrumb Bar
This shows the location of where you are in the console. This displays an explorer structure of the selected item in the navigation pane. So if you’re in administration space, selected Status under workflow—it will show the path as \Administration\Administration\Workflows\Status
View Pane
Now once you have a certain hierarchy of elements in place in terms of what folders and views you would like to have in your navigation pane, the next step would be what gets displayed for them in the view pane.
Each node (tree view/navigation pane item) has a default task, something that gets executed when the node is clicked. Out of thebox currently we support opening 3 types of views when a node is clicked namely:
Overview view: if you click the top level node in the administration space, the view that gets opened up in the view pane is the overview view. In this you can host your own control (page/view) using the schema provided by the OverviewType. This will be discussed more in depth later. More details can be found here:
Summary view: This is something you get for free. If you have folders in your navigation pane that don’t have a corresponding view of type OverviewType then the summary view gets displayed in the view pane that essentially lists the number of folders and views that are contained by that particular folder.
Grid view: This view essentially lists the data in a grid view based on items fetched from a class with a certain criteria if desired. This will be discussed in depth later as well. More details can be found here:
Another post describing the Grid View can be found here: http://blogs.technet.com/servicemanager/archive/2010/03/03/grid-view-configuration-and-what-it-means.aspx
Details Pane
The next area would be the Details pane. This pane gets displayed when the selected view in the view pane is of a grid view type. This area essentially uses the generic forms infrastructure to show the contents of the selected item in the view pane. All classes that derive from System.Entity show the details pane. You can use a category if you don’t want to see the details pane for a class like below:
<Category ID="[UniqueCategoryID]" Target="[TargetClass]" Value="Administration!Microsoft.EnterpriseManagement.ServiceManager.UI.Administration.Enumeration.HideDetailsPane" /> where Target is the class and Value is the enumeration that is defined in the Microsoft.EnterpriseManagement.ServiceManager.UI.Administration mp.
To use your own form in details pane, you can add a category for this
<Category ID="="[UniqueCategoryID]" Target="[TheFormElementID]" Value="Console!Microsoft.EnterpriseManagement.ServiceManager.UI.Console.OverviewForm" />
<Form TypeName="[TypeinAssemblyWhereFormImplementationIs]" Target="[ClassTarget]" ID="="[TheFormElementID]" Assembly="[AssemblyResourceIDWhereFormImplementationIs]" Accessibility="Public">
<Category>Form</Category>
</Form>
This is discussed in depth at http://blogs.technet.com/servicemanager/archive/2010/02/08/overview-of-the-forms-infrastructure-and-the-generic-form.aspx
Tasks Pane
The tasks pane items appear based on items selected. So if you’re in the work items space and select the ‘Problem Management’ folder, you will see all tasks that are applicable to the selected folder, then any tasks applicable to the problem management’s parent folder, and then its’ parent in order. They are grouped by the selections in order. So the current selected items’ tasks will appear first, followed by its parents tasks, followed by the parent’s parent task and so on.
Here is a basic skeleton of how the task definition looks like:
<ConsoleTask ID="[UniqueIDforMyTask]" Target="[ClassThatMyTaskIsTargettedTo]" Accessibility="Public" RequireOutput="false">
<Assembly>Console!SdkDataAccessAssembly</Assembly>
<Handler>Microsoft.EnterpriseManagement.UI.SdkDataAccess.ConsoleTaskHandler</Handler>
<Parameters>
<Argument Name="Assembly">[Assembly where the task implementation lives]</Argument>
<Argument Name="Type">[Class of the assembly where the task is implemented]</Argument>
<Argument>[additional arguments that need to passed for this task]</Argument>
</Parameters>
</ConsoleTask>
In the above definition the Aseembly and Handler should remain as is since they are responsible for the launch of your task (instantiating the Type in your assembly)
public class MyClass : Microsoft.EnterpriseManagement.UI.SdkDataAccess.ConsoleCommand
{
public override void ExecuteCommand(IList<NavigationModelNodeBase> nodes, NavigationModelNodeTask task, ICollection<string> parameters)
{
//this is where your task logic will go
Nodes is the list of selected item(s) –so it could be a folder, view or list of selected item(s) in the grid view
Parameters is the additional arguments that can be passed to the task. This is useful when you want the same task handler to do different things based on parameters passed
}
}
The target of the task can be based on needs, so if you want the task to show up when the selected item in grid view is of a particular class, then you should target it to the class. If you want the task to show up if a folder or view is selected then you should target it to that folder/view.
Folders can also contain tasks. So if you want a task to show up for a selected class and also when a folder is selected, then you can target the task to the class and add a FolderItem mp element that has the ElementID of the task and the folder is the one you want you want the task to show for.
<FolderItem ID="[MyUniqueTaskID]" ElementID="[TheTaskinQuestion]" Folder="[FolderThatTheTaskShouldShowWhenSelected]" />
If you want tasks to show up when multiple items are selected, you can use the Multiselect category for this
<Category ID="[UniqueCategoryID]" Target="[TaskIDToBeShownWhenMultipleItemsSelected]" Value="Console!Microsoft.EnterpriseManagement.ServiceManager.UI.Console.MultiSelectTask" />
The value (enumeration) for this lives in the Microsoft.EnterpriseManagement.ServiceManager.UI.Console mp
For your custom tasks, you can add a double click category to the task so that it executes when the item is double clicked in the grid view
<Category ID="[UniqueCategoryID]" Target="[TaskIDForDoubleClick]" Value="Console!Microsoft.EnterpriseManagement.ServiceManager.UI.Console.DoubleClickTask" />
If you want to add Create View and Create Folder tasks to your folder you can add folder items for them
<!--Create View-->
<FolderItem ID="="[UniqueFolderItemID]" ElementID="Console!Microsoft.EnterpriseManagement.ServiceManager.UI.Console.Task.CreateGridView" Folder="[FolderInQuestion]" />
<!--Create Folder-->
<FolderItem ID="="[UniqueFolderItemID]" ElementID="Console!Microsoft.EnterpriseManagement.ServiceManager.UI.Console.Task.CreateFolder" Folder="[FolderInQuestion]" />
If you want to add edit/delete folder tasks to your folder, you can use category for this
<Category ID="="[UniqueCategoryID]" Target="[FolderID]" Value="Console!Microsoft.EnterpriseManagement.ServiceManager.UI.Console.FolderTasks" />
Similary, if you are creating view manually in management pack, you can add ViewTasks
<Category ID="="[UniqueCategoryID]" Target="[ViewID]" Value="Console!Microsoft.EnterpriseManagement.ServiceManager.UI.Console.ViewTasks" />
Refresh (F5) task comes for free with every view that gets created.
More details can be found in this series:
http://blogs.technet.com/servicemanager/archive/2010/02/11/tasks-part-1-tasks-overview.aspx
Examples of creating task handlers can be found here:
Search Menu
The search menu consists of a text box and a drop down that lets you pick types you want to search on. You can choose to search all objects which will show the result in a new window with the search of DisplayName in all work items and configurations that contain that string.
Out-of-box you can search for displayname strings for Incident, Change, Problem, Configuration Items and Windows Computer individually as well.
To be able to add more classes to the list that you want to search on, you can add it to the list by adding a category to your class
<Category ID="[UniqueCategoryID]" Target="[ClassID]" Value="System!SearchEnabled" />
The value (enumeration) for this lives in the System.Library mp
More details can be found here:
http://blogs.technet.com/servicemanager/archive/2009/05/22/extending-search-in-service-manager.aspx
Then you have option to do an advanced search by selecting a class and setting a criteria in there what you want to search for.
The search results window is similar to the console—the results are shown in a grid view, with details pane and has tasks pane to run tasks on the result set.
Knowledge search is also available that lets you search knowledge articles
Status bar
Displays the server the console is currently connected to.