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!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s