Reports page
The Reports page of the Workspace window runs reports on the whole workspace and saves each to a file you can open in a spreadsheet.
Opening the Reports page
- Select Reports in the workspace window's navigation rail.
- Choose Reports › Save Object Dependencies…, Reports › Save Unreferenced Objects… or Reports › Save Duplicate Id Violations… in the workspace window's menu to save a report directly.
The Reports page

| # | Name | Description |
|---|---|---|
| 1 | Object dependencies | Save… saves every static dependency between objects, with its type. See Object dependencies. |
| 2 | Unreferenced objects | Save… saves the objects nothing refers to. See Unreferenced objects. |
| 3 | Duplicate ID violations | Save… saves the duplicate IDs that can occur when you merge code. See Duplicate ID violations. |
Object dependencies
Tab-separated, one row per dependency from a source object to a target object. Only objects that parsed are considered.
| Column | Shows |
|---|---|
SourceObjectType, SourceObjectId, SourceObjectName | The object that depends. |
DependencyType | Property, DataItem, TableRelation, Variable, Parameter, Code or Subscription. |
DependencySubType | ObjectReference, SourceTable, PagePart, Report, Query, XmlPort, CalcFormula, Permission, ObjectName, ObjectId, DatabaseTriggerEventSubscription, or empty. |
TargetObjectType, TargetObjectId, TargetObjectName | The object depended on. |
Unreferenced objects
Tab-separated, one row per object that no other object refers to statically, in the columns
ObjectType, ObjectId and ObjectName. Only objects that parsed are
considered.
Duplicate ID violations
Semicolon-separated, one row per declaration involved in a duplicate ID.
| Column | Shows |
|---|---|
ObjectType, ObjectId | The object. |
DeclarationBucket | The kind of declaration whose IDs must be unique within the object: Control, RequestPageControl, RequestFormControl, Variable, Field, Procedure or Event. |
IndexNo | The ID. |
DeclarationType, DeclarationName | The declaration with that ID. |
Violation | Declaration for a declaration, followed by a Duplicate row for each other declaration of the same kind with the same ID. |
OffsetInObject | The character offset of the declaration in the object's source. |
Open a report in a spreadsheet
The files are named .csv, but their separator is a tab or a semicolon, so import them rather than opening them by double-click.
- On the Reports page, select Save… on the report and choose a file name.
- Wait for the notification that names the saved file.
- In the spreadsheet, import the file as delimited text and choose the separator: tab for object dependencies and unreferenced objects, semicolon for duplicate ID violations.
Find objects nothing uses
Use this to find candidates for removal when you clean up a solution.
- Save the Unreferenced objects report and open it in a spreadsheet.
- Filter it to your own ID range.
- For each candidate, check that nothing outside the objects runs it, such as a menu, a job queue entry or a user's shortcut, before you remove it.
Objects that did not parse are not in the report; fix them first so they count.
Check for duplicate IDs after a merge
- Open the merged objects as an object store.
- Save the Duplicate ID violations report.
- For each
Declarationrow, read theDuplicaterows under it and renumber all but one of the declarations.
Behavior
- Background task: a report saves as a background task named Saving ….
- Notifications: … saved to file … when it is done, or Save … failed.
- Save dialog: titled Save and the report's subject, offering CSV file (*.csv).