The Recent Sync Errors report finds all users that had an error in an MS Sync environment. Includes Import, Export, and Sync errors, and aggregates by DN and error type to collapse persistent repeating errors into a single entry.
The report includes a time traveler link to the object causing the error, as well as a run history link to the most recent occurrence.
The report has a Time filter parameter to allow different period ranges.
Required Customization
Customize the Provider name in the History query set. The default value is: CoerceGuid(special.Provider.MIM)
If you have multiple sync engines (e.g. MIM and FIM, or MIM and AADsync), you can add an additional report parameter. e.g. a Select Input with rule templating values like this: [special.Identity Silo.MIM]. Then the value can be accessed with the memo function: CoerceGuid(Memo("Provider"))
The DisplayName and EmployeeID fields are provided purely as examples. Depending on environment it will be necessary to customize both the field name and value production rule. Remember that the rules should be as flexible as possible to support CS objects for a variety of object types and MAs.
JSON Definition
Copy the following JSON into a text file, and upload to report settings.
Version 3.4 or Higher
{ "Data": [ { "$type": "SoftwareIDM.ReportingModule.Models.Report, SoftwareIDM.ReportingModule", "Id": "157df1cf-9bf3-4084-8c80-e8d0a599d4e9", "Name": "Recent Sync Errors", "UserId": null, "UserProfile": false, "Tags": null, "Roles": null, "CacheExpiration": "01:00:00", "Description": "This report gives all the users in the MIM environment that had a sync error in the given timespan, as well as some information about the error.", "Parameters": [ { "$type": "SoftwareIDM.ReportingModule.Models.TextReportParameter, SoftwareIDM.ReportingModule", "Name": "Time", "Description": "Input how far back to search in the format d.hh:mm:ss", "Required": false, "Validation": "TimeSpan", "DefaultValue": "7.00:00:00" } ], "DataSets": [ { "$type": "SoftwareIDM.ReportingModule.Models.QueryData, SoftwareIDM.ReportingModule", "Clauses": [ { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "Provider", "Operation": "Eq", "Value": "CoerceGuid(special.Provider.MIM)" }, { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "StartDate", "Operation": "Gte", "Value": "AddTime(Now(), \"-\" + Memo(\"Time\"))" } ], "SubQueries": [ { "$type": "SoftwareIDM.PanelModel.Models.SubQuery, SoftwareIDM.PanelModel", "Operator": "Or", "Clauses": [ { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "Counters.special.History Counter.Sync Error", "Operation": "Exists", "Value": "" }, { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "Counters.special.History Counter.Export Error", "Operation": "Exists", "Value": "" }, { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "Counters.special.History Counter.Import Failure", "Operation": "Exists", "Value": "" } ] } ], "MapRule": "Map(Errors, context)", "MemoRules": [ { "$type": "SoftwareIDM.ReportingModule.Models.MemoRule, SoftwareIDM.ReportingModule", "Name": "DNs", "Rule": "Child.DN" } ], "Aliases": null, "Name": "History", "Type": "SoftwareIDM.SyncModel.RunRecord, SoftwareIDM.SyncModel" }, { "$type": "SoftwareIDM.ReportingModule.Models.QueryData, SoftwareIDM.ReportingModule", "Clauses": [ { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "DN", "Operation": "In", "Value": "Memo(\"DNs\")" } ], "SubQueries": [], "MapRule": null, "MemoRules": [], "Aliases": null, "Name": "CS", "Type": "SoftwareIDM.SyncModel.CSRecord, SoftwareIDM.SyncModel" }, { "$type": "SoftwareIDM.ReportingModule.Models.QueryData, SoftwareIDM.ReportingModule", "Clauses": [], "SubQueries": [], "MapRule": null, "MemoRules": [], "Aliases": null, "Name": "Errors", "Type": "SoftwareIDM.PanelModel.Models.ErrorDetail, SoftwareIDM.PanelModel" } ], "ReportSets": [], "Relations": [ { "$type": "SoftwareIDM.ReportingModule.Models.Relation, SoftwareIDM.ReportingModule", "Name": "History - CS", "LeftSet": "History", "RightSet": "CS", "LeftRule": "Child.DN", "RightRule": "DN", "AllowLeftOuter": false, "AllowRightOuter": true }, { "$type": "SoftwareIDM.ReportingModule.Models.Relation, SoftwareIDM.ReportingModule", "Name": "History - Error", "LeftSet": "History", "RightSet": "Errors", "LeftRule": "Child.DetailId", "RightRule": "Id", "AllowLeftOuter": false, "AllowRightOuter": false } ], "FieldProjections": [ { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Timestamp", "RelationName": "History - CS", "RelationSide": "Left", "ValueRule": "Parent.StartDate" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "MA", "RelationName": "History - CS", "RelationSide": "Left", "ValueRule": "ReverseSpecial(Parent.RecordOf, \"History Type\")" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Run Profile", "RelationName": "History - CS", "RelationSide": "Left", "ValueRule": "Parent.RunProfileName" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "DN", "RelationName": "History - CS", "RelationSide": "Right", "ValueRule": "DN" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Display Name", "RelationName": "History - CS", "RelationSide": "Right", "ValueRule": "FirstNotNull(Attributes.DisplayName, Join(\" \", Attributes.FIRST_NAME, Attributes.LAST_NAME))" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Employee ID", "RelationName": "History - CS", "RelationSide": "Right", "ValueRule": "FirstNotNull(Attributes.EmployeeID, Attributes.emplid)" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Error", "RelationName": "History - Error", "RelationSide": "Right", "ValueRule": "ErrorCode" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Error Detail", "RelationName": "History - Error", "RelationSide": "Right", "ValueRule": "Left(FirstNotNull(ErrorDetails.Error Literal, ErrorDetails.Extension Stack Trace), 200)" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "ObjectID", "RelationName": "History - CS", "RelationSide": "Right", "ValueRule": "Id" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "RunId", "RelationName": "History - CS", "RelationSide": "Left", "ValueRule": "Parent.Id" } ], "Transformations": [ { "$type": "SoftwareIDM.ReportingModule.Models.Transform, SoftwareIDM.ReportingModule", "FilterRule": "", "GroupingRule": "Data.DN + Data.Error", "TransformRules": [ { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Timestamp", "Name": "", "Operator": "Max", "TransformRule": "$\"{WebHost()}/history#!skip=0&limit=20&id={RunId}|{Timestamp}\"" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "MA", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Run Profile", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Display Name", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Employee ID", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Error", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Error Detail", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "DN", "Name": "", "Operator": "Any", "TransformRule": "$\"{TimeTraveler(Data.ObjectId)}|{DN}\"" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Timestamp", "Name": "Count", "Operator": "Count", "TransformRule": "" } ] } ], "Styles": [], "Sort": { "Field": "Timestamp", "Direction": "Descending" } } ], "Count": 1 }
Version 3.3
{ "Data": [ { "$type": "SoftwareIDM.ReportingModule.Models.Report, SoftwareIDM.ReportingModule", "Id": "157df1cf-9bf3-4084-8c80-e8d0a599d4e9", "Name": "Recent Sync Errors", "UserId": null, "UserProfile": false, "Tags": null, "Roles": null, "CacheExpiration": "01:00:00", "Description": "This report gives all the users in the MIM environment that had a sync error in the given timespan, as well as some information about the error.", "Parameters": [ { "$type": "SoftwareIDM.ReportingModule.Models.TextReportParameter, SoftwareIDM.ReportingModule", "Name": "Time", "Description": "Input how far back to search in the format d.hh:mm:ss", "Required": false, "Validation": "TimeSpan", "DefaultValue": "7.00:00:00" } ], "DataSets": [ { "$type": "SoftwareIDM.ReportingModule.Models.QueryData, SoftwareIDM.ReportingModule", "Aliases": null, "MapRule": "Map(Errors, context)", "Name": "History", "Type": "SoftwareIDM.SyncModel.RunRecord, SoftwareIDM.SyncModel", "Clauses": [ { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "Provider", "Operation": "Eq", "Value": "CoerceGuid(special.Provider.MIM)" }, { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "StartDate", "Operation": "Gte", "Value": "AddTime(Now(), \"-\" + Memo(\"Time\"))" } ], "SubQueries": [ { "$type": "SoftwareIDM.PanelModel.Models.SubQuery, SoftwareIDM.PanelModel", "Operator": "Or", "Clauses": [ { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "Counters.special.History Counter.Sync Error", "Operation": "Exists", "Value": "" }, { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "Counters.special.History Counter.Export Error", "Operation": "Exists", "Value": "" }, { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "Counters.special.History Counter.Import Failure", "Operation": "Exists", "Value": "" } ] } ] }, { "$type": "SoftwareIDM.ReportingModule.Models.QueryData, SoftwareIDM.ReportingModule", "Aliases": null, "MapRule": null, "Name": "CS", "Type": "SoftwareIDM.SyncModel.CSRecord, SoftwareIDM.SyncModel", "Clauses": [ { "$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel", "Field": "DN", "Operation": "In", "Value": "Map(Memo(\"History\"), Child.DN)" } ], "SubQueries": [] }, { "$type": "SoftwareIDM.ReportingModule.Models.QueryData, SoftwareIDM.ReportingModule", "Aliases": null, "MapRule": null, "Name": "Errors", "Type": "SoftwareIDM.PanelModel.Models.ErrorDetail, SoftwareIDM.PanelModel", "Clauses": [], "SubQueries": [] } ], "ReportSets": [], "Relations": [ { "$type": "SoftwareIDM.ReportingModule.Models.Relation, SoftwareIDM.ReportingModule", "Name": "History - CS", "LeftSet": "History", "RightSet": "CS", "LeftRule": "Child.DN", "RightRule": "DN", "AllowLeftOuter": false, "AllowRightOuter": true }, { "$type": "SoftwareIDM.ReportingModule.Models.Relation, SoftwareIDM.ReportingModule", "Name": "History - Error", "LeftSet": "History", "RightSet": "Errors", "LeftRule": "Child.DetailId", "RightRule": "Id", "AllowLeftOuter": false, "AllowRightOuter": false } ], "FieldProjections": [ { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Timestamp", "RelationName": "History - CS", "RelationSide": "Left", "ValueRule": "Parent.StartDate" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "MA", "RelationName": "History - CS", "RelationSide": "Left", "ValueRule": "ReverseSpecial(Parent.RecordOf, \"History Type\")" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Run Profile", "RelationName": "History - CS", "RelationSide": "Left", "ValueRule": "Parent.RunProfileName" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "DN", "RelationName": "History - CS", "RelationSide": "Right", "ValueRule": "DN" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Display Name", "RelationName": "History - CS", "RelationSide": "Right", "ValueRule": "FirstNotNull(Attributes.DisplayName, Join(\" \", Attributes.FIRST_NAME, Attributes.LAST_NAME))" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Employee ID", "RelationName": "History - CS", "RelationSide": "Right", "ValueRule": "FirstNotNull(Attributes.EmployeeID, Attributes.emplid)" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Error", "RelationName": "History - Error", "RelationSide": "Right", "ValueRule": "ErrorCode" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "Error Detail", "RelationName": "History - Error", "RelationSide": "Right", "ValueRule": "Left(FirstNotNull(ErrorDetails.Error Literal, ErrorDetails.Extension Stack Trace), 200)" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "ObjectID", "RelationName": "History - CS", "RelationSide": "Right", "ValueRule": "Id" }, { "$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule", "Name": "RunId", "RelationName": "History - CS", "RelationSide": "Left", "ValueRule": "Parent.Id" } ], "Transformations": [ { "$type": "SoftwareIDM.ReportingModule.Models.Transform, SoftwareIDM.ReportingModule", "FilterRule": "", "GroupingRule": "Data.DN + Data.Error", "TransformRules": [ { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Timestamp", "Name": "", "Operator": "Max", "TransformRule": "$\"{WebHost()}/history#!skip=0&limit=20&id={RunId}|{Timestamp}\"" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "MA", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Run Profile", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Display Name", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Employee ID", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Error", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Error Detail", "Name": "", "Operator": "Any", "TransformRule": "" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "DN", "Name": "", "Operator": "Any", "TransformRule": "$\"{TimeTraveler(Data.ObjectId)}|{DN}\"" }, { "$type": "SoftwareIDM.ReportingModule.Models.TransformField, SoftwareIDM.ReportingModule", "Field": "Timestamp", "Name": "Count", "Operator": "Count", "TransformRule": "" } ] } ], "Styles": [], "Sort": { "Field": "Timestamp", "Direction": "Descending" } } ], "Count": 1 }
Comments
0 comments
Please sign in to leave a comment.