CIRESON PORTAL: DYNAMIC FORMS BY TEMPLATE ID, PART 3

Following up our posts in this series from last week, today we are going to quickly show how we can set a template ID in a Service Request template so that the template ID is always set on SR creation.

Continue reading “CIRESON PORTAL: DYNAMIC FORMS BY TEMPLATE ID, PART 3”

Error Installing the Service Manager 2012 R2 Authoring Tool on Windows 2012 R2

Quick post today. Some of you may have run into this issue previously and while I figured this out myself this morning there also appears to be a technet article here talking through it in more detail.

In summary, if you have an issues with the VS 2008 Redist now showing as an install pre-req when trying to install the Authoring Tool, it’s most likely because the Redist actually didn’t install, as it doesn’t always install just by running the package as you’d expect.

To resolve this, browse to the C:\VS 2008 Shell Redist\Isolated Mode folder that the AppEnvRedist.exe created and run the vs_shell_isolated.enu.exe directly.

After the installation completes attempt the Authoring Tool install again and you should be good to go.

2016-02-10_10-37-36

Modify WorkItem Title When Creating Via Template / Projection

Quick one today. I ran into a bit of an issue when creating a new SR via an object projection and applying a template.

#projection setup
$TemplateObject = Get-SCSMObjectTemplate -Id $TemplateId
$TemplateMP = $TemplateObject.GetManagementPack()
$mpAlias = $TemplateMP.References.GetAlias((Get-SCSMManagementPack system.workitem.library))
foreach ($obj in $TemplateObject.ObjectCollection)
{
   fn_UpdatePropertyCollection -Object $obj -Alias $mpAlias
}

#get the new status for workflows
$statusNewEnum = Get-SCSMEnumeration ServiceRequestStatusEnum.New

$seedTypeSR = '^System.WorkItem.ServiceRequestProjection$'
$seedclassSR = Get-SCSMClass -Name System.WorkItem.ServiceRequest
$seedPropertyValuesSR = @{
CreatedDate = (Get-Date)
   Id = "SR{0}";
   Status = $statusNewEnum;
   Title = $afUser.DisplayName
}

$seedProjectionSR = @{
   __CLASS = "System.WorkItem.ServiceRequest"
   __OBJECT= $seedPropertyValuesSR
   CreatedBy = $AffectedUser
   AffectedUser = $AffectedUser
   AssignedTo = $AssignedUser
}

$newSrProjection = New-SCSMObjectProjection -Type $seedTypeSR -Projection $seedProjectionSR -Template $TemplateObject -PassThru -ErrorAction SilentlyContinue

When the template was applied it was overwriting my title. To remedy this, I had to dynamically modify the title within the template itself using this code:

#update the template title with the affected users displayname
foreach ($obj in $TemplateObject.PropertyCollection){
   if($obj.Path -like '*Title$'){
      $obj.MixedValue = $afUser.DisplayName + " - " + $obj.MixedValue
   }
}

Hope this helps someone else!

Cireson Portal: Dynamic Forms by Template ID, Part 2

Continuing from our last article we are going to move forward with the process of automating the display of our designated custom tab, but first lets do a quick review.

The last entry is available here: Part 1

Last time we worked through the basics of why you would want to use a solution like this, as well as how we can customize a portal form to display our custom property extensions for the workitem classes, and now we are going to discuss how we can manipulate the form on load to display the custom tab automatically based on the template id of the form.

Continue reading “Cireson Portal: Dynamic Forms by Template ID, Part 2”

Cireson Portal: Dynamic Forms by Template ID, Part 1

We’ve had a large number of requests for this sort of functionality, but if you aren’t one of the customers making this request then you may not entirely understand what we are talking about here. What I mean by dynamic forms, is that the SR/IR/CR form changes the fields it shows and the ordering of the fields as you see fit based on the template id of the WorkItem. Let’t look at a few scenarios where this would be useful.

One common scenario is when you have a particular Request Offering in the Service Catalog that serves a very particular purpose, most commonly something like a project request or a new user access request. In either of these scenarios the general information you might be requesting from the user is not going to fit readily into the standard fields for the service request.

With this in mind you are left with a few options. You can extend the service request class to contain additional fields to hold this information and name each field according to the information it will contain, or you can extend the workitem with a generic set of fields to contain the information from both types of request (we consider this best practice), or you can try and fit the information into the default fields. For this article we are going to work with what we consider to be best practice.

Continue reading “Cireson Portal: Dynamic Forms by Template ID, Part 1”

Power BI Desktop + SCSM 2012

I enjoy visualizing data. I believe it gives a different layer of insight to the data that we already have and bubbles up information we may have either felt like we knew already, or demonstrate to us something new entirely. It’s really a matter of bringing broad understanding to something that is otherwise foreign and nearly unusable.

For these exact reasons I’m really excited about the potential of Power BI and Power BI Desktop, but even more so the combination between the two.

Continue reading “Power BI Desktop + SCSM 2012”

Automation Series 1, Part 4: Azure Automation

Summary

If you’ve been following along with our series you now have a beautiful Power BI dashboard for your incidents that is using real data injected directly into Power BI from SCSM using Powershell and the Power BI API.

All that to say, we are missing one very important capability, and that’s how we update the data regularly without the SCSM admin having to log into the system in the middle of the night to refresh the data for the CIO currently in the UK. This is where Azure Automation comes in.

Continue reading “Automation Series 1, Part 4: Azure Automation”