## What is a bursting report

A report applied with at least one bursting schema is called a bursting report. A bursting report can have multiple bursting schemas with each a unique schema name.

Bursting schema defines how data is split and who receives each subset of the split data. A valid bursting schema includes:

- Bursting key
- The dataset applied to the bursting key
- Bursting recipient
- Mapping relationship between bursting key and recipient

Notes:

- The bursting report always means the primary report. If both the primary report and its subreport are bursting reports, the system will only execute the bursting task according to the primary report, and the subreport will be processed as a normal report.
- If you load a report which was created in V8.2 containing only one bursting schema, JReport will create a default name for the schema. The default name is BurstingSchema.
- If the end user has applied security information or filters to the data and the system cannot obtain the bursting key, it will not send the result.

### Bursting key

When running a bursting report, JReport will split the data according to a condition. The condition is the bursting key. The system will generate multiple results according to this key. For example, sending a credit card bill to every consumer according to the credit card ID. The credit card ID here is the bursting key.

Make sure the DB columns used for the bursting key are sortable in the DBMS, otherwise the bursting results may be unpredictable.

The following data types can be used for the bursting key:

- Integer: INT, SMALLINT, TINYINT, BIGINT
- Float: REAL, FLOAT, DECIMAL, NUMERIC
- Character: CHAR, NCHAR, VARCHAR, NVARCHAR
- Date and Time: DATETIME, SMALLDATETIME
- Currency: MONEY, SMALLMONEY

### Bursting dataset

The bursting key must be created based on an existing dataset. The bursting key can be composed of a single DB column or multiple DB columns in the dataset. When multiple columns are selected, the system will split the data according to each unique combination of the columns.

### Bursting recipient

The bursting task generates multiple results and sends them to different places. We define the places as the recipient. The recipient determines to which addresses or physical locations the report results will be sent.

In recipient, the following kinds of addresses are supported:

- Principals in JReport Server security system (user, role and group)

  You can specify a DB column that provides information to locate the users in the server security system.

  The report results can be sent to two places:

  - For user: Sending to e-mail addresses or private folders of the users defined in the DB column.
  - For role: Sending to e-mail addresses or private folders of all users belonging to the role.
  - For group: Sending to e-mail addresses or private folders of all users belonging to the group.
- E-mail: You can specify a DB column of e-mail addresses.
- Disk: You can specify a DB column that contains directories or full paths with file name. If it is a directory, the system will add the bursting result with the name generated by the system into the directory. If it is a full path, the system will generate the result with the specified file name and add it into the path.

  If the system finds that there is a file with the same name as the generated bursting result file, it will not send the result file into the path and will record a message into the log.

- FTP: You can specify a DB column of FTP addresses.
- Versioning system: You can specify a DB column that provides directories in the resource system of the JReport Server.

#### Default name for bursting result files

Sometimes you may not want to provide a file name for each bursting result when defining recipients. The bursting system will give it a name as generated by the system.

The default name format is: ReportName + "_" + BurstingKey + suffix (result format type). When there are multiple bursting key columns, connect each one by the character "_".

Converting to String

When a bursting key is of one of the following data types, it will be converted into String so as to make a valid result file name:

- Integer, Float, Character: Same as Java, these data types are transferred to String directly.
- Date and Time: All date and time formats will be transferred to the date format: yyyy-MM-dd hh:mm:ss.
- Currency: Currency will be transferred to the number without the currency mark ($ or others).

Name length

In the JReport Server resource system, the resource name only supports up to 64-character length. If a bursting result file name is longer than that, the system will trim it down automatically.

In order to avoid the same name in the same path, an index will be appended to the result name, for example: report1_USA_Maryland1.pdf, report1_USA_Maryland2.pdf.

### Mapping relationship between bursting key and recipient

Relationships must be set up between bursting keys and bursting recipients in order to make clear which subset of report results will be sent to which addresses.

For each bursting key column, there must be only one unique recipient column to map to it. The data type of a recipient column must be consistent with the bursting key column it maps to. The user interface dialog only displays the matchable columns.