One of my frustrations is tracing down the target of a request and in some cases, the parent request that caused this request to be generated. The default RCDC doesn't expose these values except within the Advanced View/Extended Attributes tab. Having the Applied Policy tab is great to see what policies this request triggered, but being able to see the target and parent request is essential – so here's how to add it yourself. At the end we'll have two new controls:
Here we see the Target revealed on the Detailed Content tab, we now know we had a Modify operation to a Person object type and the target was Smith, John; we can even click the hyperlink here and go look at the current status of John's object.
Here we see on the Applied Policy tab we've added the link to the Parent Request, also hyperlinked. In this example a Workflow configured for "Run On Policy Update" triggered a series of System Event Requests which we can examine in more detail.
After clicking the link we see the policy that was updated which caused this sequence of events – nifty right?
This should all be by default right?
Vote here if you're signed up for the FIM Connect site.
Ok, so how do you do this yourself – it's pretty easy. I would strongly recommend applying the
Update 1 packages prior to doing this as any updates has the chance of overwriting any of your customizations. So, I'll show you how to add the sections manually and provide the entire file for your consumption as well.
Warning
When editing RCDC configurations, it's always recommended to Export the current configuration and save it as an Original copy. If you get into trouble you should restore the original version, edit a copy and use the copy to upload.
Adding the Target control to the Detailed Content tab
Insert the new
TargetID control between the
TargetObjectType and
SummaryControl controls like so:
<my:Control my:Name="TargetObjectType" my:TypeName="UocLabel" my:Caption="{Binding Source=schema, Path=TargetObjectType.DisplayName}" my:RightsLevel="{Binding Source=rights, Path=TargetObjectType}">
<my:Properties>
<my:Property my:Name="Text" my:Value="{Binding Source=object, Path=TargetObjectType, Mode=OneWay}"/>
my:Properties>
my:Control>
<my:Control my:Name="TargetID" my:TypeName="UocHyperLink" my:Caption="{Binding Source=schema, Path=Target.DisplayName}" my:Description="{Binding Source=schema, Path=Target.Description}" my:RightsLevel="{Binding Source=rights, Path=Target}">
<my:Properties>
<my:Property my:Name="ObjectReference" my:Value="{Binding Source=object, Path=Target, Mode=OneWay}"/>
my:Properties>
my:Control>
<my:Control my:Name="SummaryControl" my:TypeName="UocHtmlSummary" my:Caption="%SYMBOL_RequestContentCaption_END%" my:Description="%SYMBOL_RequestContentDescription_END%" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="ModificationsXml" my:Value="{Binding Source=requestDetails, Path=DeltaXml , Mode=OneWay}"/>
<my:Property my:Name="TransformXsl" my:Value="{Binding Source=RequestDetailTransformXsl, Path=/, Mode=OneWay}"/>
my:Properties>
my:Control>
Adding the Parent Request control to the Applied Content tab
Insert the new
ParentRequestObj control between the
Policy grouping and the
PolicyList control like so:
<my:Grouping my:Name="Policy" my:Caption="%SYMBOL_PolicyTabCaption_END%">
<my:Help my:HelpText="%SYMBOL_PolicyTabHelpText_END%" my:Link="cb9dbf88-0045-4e1e-ae3a-a2449ea7095a.htm#bkmk_grouping_Policy"/>
<my:Control my:Name="ParentRequestObj" my:TypeName="UocHyperLink" my:Caption="{Binding Source=schema, Path=ParentRequest.DisplayName}" my:Description="{Binding Source=schema, Path=ParentRequest.Description}" my:RightsLevel="{Binding Source=rights, Path=ParentRequest}">
<my:Properties>
<my:Property my:Name="ObjectReference" my:Value="{Binding Source=object, Path=ParentRequest, Mode=OneWay}"/>
my:Properties>
my:Control>
<my:Control my:Name="PolicyList" my:TypeName="UocListView" my:Caption="%SYMBOL_PolicyListCaption_END%" my:Description="%SYMBOL_PolicyListHint_END%" my:ExpandArea="true" my:RightsLevel="{Binding Source=rights, Path=ManagementPolicy}">
<my:Properties>
<my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName,GrantRight,AuthenticationWorkflowDefinition,AuthorizationWorkflowDefinition,ActionWorkflowDefinition"/>
<my:Property my:Name="UsageKeywords" my:Value="ManagementPolicyRule"/>
<my:Property my:Name="ResultObjectType" my:Value="ManagementPolicyRule"/>
<my:Property my:Name="TargetAttribute" my:Value="ManagementPolicy"/>
<my:Property my:Name="SelectedValue" my:Value="{Binding Source=object, Path=ManagementPolicy, Mode=OneWay}"/>
<my:Property my:Name="EmptyResultText" my:Value=""/>
<my:Property my:Name="PageSize" my:Value="10"/>
<my:Property my:Name="ShowActionBar" my:Value="false"/>
<my:Property my:Name="ShowPreview" my:Value="false"/>
<my:Property my:Name="ShowSearchControl" my:Value="false"/>
<my:Property my:Name="ShowTitleBar" my:Value="true"/>
<my:Property my:Name="EnableSelection" my:Value="false"/>
<my:Property my:Name="SingleSelection" my:Value="false"/>
<my:Property my:Name="ItemClickBehavior" my:Value="ModelessDialog"/>
<my:Property my:Name="ReadOnly" my:Value="true"/>
<my:Property my:Name="ListViewItemHandler" my:Value="PolicyItemHandler"/>
my:Properties>
my:Control>
my:Grouping>
Build 2570 (Update 1) Files
Remember to
iisreset if you can't wait for the cache to refresh.