Report Packs

Report Packs

Report packs are special imports which are used to bulk load reports into an Appliance.

They are a standard zip file with a special Manifest.xlsx file and one or more Crystal Report files. There should be no folders contained in the zip file; all files should be in the root of the zip.

Unlike other imports which can only create new records, Report Packs are capable of updating existing reports and report slots.

Manifest Details

A report manifest is an Excel file called Manifest.xlsx. The contents of which determine what report and report slot records are created in your Appliance.

Although the manifest file looks similar to other Excel imports, many of the conventions in other imports do not apply to the manifest (as it imports considerably simpler records). In particular, one row = one record (no records span multiple rows in excel), there are no CSVs in cells, and the sheet names must match exactly.

Reports Sheet

This sheet lists each report record you want to create or update.

Is this sheet required in a manifest? Yes (the table names must exist, but the sheet can otherwise be empty)

Sheet name in manifest: CrystalReports

Unique record field: Name

Field

Type of Data

Required

Comments

Field

Type of Data

Required

Comments

Name

Text, max 100

Y

Name of the report. Must be unique. Note that this is different to the Crystal Report file name ending in .rpt and any name within Crystal itself.  

IsStandardReport

Yes / No

N

Determines if the report is listed as a Standard or Custom report. Standard reports cannot be modified from the web interface, only via a report pack. If not specified or the column is not present, defaults to 'N' ie: a Custom report.

ReportFilename

Text

Y

Reference to the Crystal Report file in the report pack. You must reference the file name exactly and include the .rpt extension. If the file cannot be found in the report pack, an error will be logged and the report record will not be imported. 

Report Slots Sheet

This sheet lists each report slot record you want to create or update. Generally, this will reference reports in the same report pack. Referencing other custom reports is dangerous as people can change their names in the web interface (if you do this, consider setting the AssignedReportNotExist policy setting to an appropriate value).

Is this sheet required in a manifest? Yes (the table names must exist, but the sheet can otherwise be empty)

Sheet name in manifest: ReportSlots

Unique record field: Type and NameOrPage

Field

Type of Data

Required

Comments

Field

Type of Data

Required

Comments

Type

Named, DataType or PageRef

Y

Category or type of slot. Named slots are system defined; you assign custom reports to them to replace existing Standard reports with your own. DataType references a shortened view model .NET type name. PageRef is the beginning of a web page URL. See Reporting for more information. 

NameOrPage

Either a Named Slot, DataType or appropriate Page Reference

Y

Example Named Slot: Test Report or Trust Trial Balance

Example DataType: Audit.SearchViewModel

Example PageRef: /matter/edit

Note that no validation is done on DataType or PageRef values. That is, they do not have to exist or be valid in the system for the import to succeed; and no warning or error is raised if they are set incorrectly. 

You can use this to create new Named Slots, but, as the Appliance program code will not know about them, they will not appear anywhere in your Appliance,

Report

Report Name

N

Reference to the Report entity as named in the CrystalReports sheet (or a previously loaded report).

This can be left blank. If it is blank and the UpdateExistingAssignedReport policy setting is Update, it will remove any reports from this slot. If you do not want to remove the report, you should not list a slot in the report pack.

Note that this is not the same as the Crystal Report file name (ending in .rpt) or the report name within the Crystal Report, but is the Name field on the Create / Edit Report page.

Policy Settings Sheet

This sheet lists policy settings for the report pack. It controls whether certain conditions are raised as errors which prevent a record from importing, or are ignored. By default, they are set to prevent accidental data loss to existing reports at the expense of being more likely to raise errors (that is, it is conservative by default).

Is this sheet required in a manifest? No

Sheet name in manifest: Policy

This sheet is a table of key value pairs, similar to an INI file. All settings are optional and will be set to the default if are not present (including if the entire sheet is missing). Two columns should be present: Setting and Value. Any other column is ignored.

Setting

Possible Values

Default

Affects

Setting

Possible Values

Default

Affects

ExistingReportAction

Overwrite - if a report with the name specified already exists, it is overwritten and updated. This allows you to bulk update report definitions.

Error - if a report with the name specified already exists, an error is recorded and the record is not imported.

Error

Reports

UpdateExistingAssignedReport

Update - if a report slot with the type and name specified already exists, the associated report will be updated (or cleared if the Report field is blank).

NoChange - if a report slot with the type and name specified already exists, the associated report will be unchanged. This is useful for updating report definitions, but not changing report slot assignments. 

UpdateIfUnassigned - if a report slot with the type and name specified already exists, AND there is no assigned report, the report will be assigned to the slot. This is used by the Standard Report Pack to load and assign new reports during updates.

NoChange

Report Slots -> Report field

AssignedReportNotExist

Ignore - if a report name referenced against a slot does not exist, the record is imported and no error or warning is raised.

Warn - if a report name referenced against a slot does not exist, the record is imported and a warning is raised.

Error - if a report name referenced against a slot does not exist, the record is not imported and an error is raised.

Note that this setting has no affect if UpdateExistingAssignedReport is NoChange 

Error

Report Slots -> Report field