A report widget can be used when your application requires users to interact with large amounts of data, and you want to load it in small chunks, filtered and/or paginated to keep the web pages lightweight and fast loading.
Our report widget achieves this automatically for you, with no coding necessary. We support three types of data sources - Web interface reports, Process reports, and Collections.
1 Display and filter the data
2. Define the columns, just as you would for any report. The JSON that you will 'set' to the widget should have the same key as the properties defined here.
3. Set the script, the visible items max, and the identifier.
Visible Items specifies how many records should be displayed per page (for pagination).
- id_report.setLoading(true/false) Displays the report progress bar while loading and preparing data
- id_report.getSortedColumns() Get sorting conditions input by user
- id_report.getFilters() Get filter conditions input by user
- id_report.setData(data, options) Fills the report with a JSON array
- P_first Get the pagination index.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
4. You can save and test the web interface. You should see the report widget with data filled in with your JSONObject.
2 Exporting the data
2.1 Exporting a page of data
If you choose the customize option, you will be able to customize your CSV export by choosing :
- the values separator (comma, semi-colon or tabulation)
- the charset of the created file
- the decimal separator (period or comma)
- the date format (used only for the date columns of the report)
On the other hand,
Your default export is a default configuration based on the language of the connected user.
2.2 Exporting all of the data
Let's now imagine that the data you want to display is paginated. Exporting it as above will only give you a CSV containing only the data that is currently displayed. If you want to be able to export all the data, you will have to develop the export feature.
2.2.1 Configuring the report
Parameter field to pass any required parameters to the process.
When the user chooses to Export, if a process is attached to the report an additional checkbox
Receive all data, by e-mail will be available on the
Customize ... page. If this checkbox is checked when the user clicks on the
Export button, the process that has been configured will be launched with some inputs containing the filters chosen by the user, the CSV settings selected and any parameters specified in the
2.2.2 Configuring the export process
An export process should have a simple structure.
In this example, the process contains four simple steps :
Init: This step initializes the pagination
From JSON to CSV: This step creates the CSV file based on the output of the previous step.
Send Mail: This step sends an email to the connected user with the CSV file as an attachment.
We will consider each step in detail:
We intialize the JSONArray
all_superheroes to an empty JSONArray
2. Get Superheroes as JSONArray
Since the pagination management depends completely on the source of the data, we will not explain in details how to do it. We will just explain how to compute the final output of the task. At the end of each iteration of the loop, you have to add the JSONArray returned by the Composite API to the
all_superheroes variable. To do so, we assign
all_superheroes with the following freemarker code
3. From JSON to CSV
The role of this step is to transform the data obtained in the previous step (
all_superheroes in the example) into a CSV file. This involves 2 steps :
- transforming the JSONArray into a CSV text
- save the CSV text in a file
To do this we will use the json_to_csv freemarker method to create the variable
superheroes_as_csv and assign it with the following value:
options variable is a JSONObject representing the options of the CSV generation. It is good practice to create it by taking into account the choices of the end user. An example of assignation of this
options variable could be :
headeran option to generate the headers in the CSV file
An example of the input variables passed to an export process:
Once the CSV text is created (and stored in the variable
superheroes_as_csv in the example), the only thing left to do is to store it in an uploaded file. To do so, we create a new variable
output_file_creation and assign it with the following value :
4. Send Mail
Configure your task to send an email with your preferred email provider. Configure the email task to send it to the end user.
and attach the file created in the previous step
You should now be able to export all of your data.