Export from Timmi Timesheet
Learn how to use the export feature of Timmi Timesheet through the API. In particular, how to generate a new export and retrieve its content.
Please note the creation of a new export through the API is synchronous. As a result, the HTTP request may time out if there’s a lot of data.
Make sure your API key can create exports in Timmi Timesheet.
Preliminaries
You first need to retrieve the export-configuration identifier.
The export-configuration identifier exportConfigurationId
is the second integer URL path parameter
when browsing the graphical interface for Timmi Timesheet export feature. For example, if the UI URL looks
like this when browsing to the export-configuration: https://example.ilucca.net/timmi-timesheet/legacy-settings#/export/1/3/latest
,
then the identifier is 3
.
Then, you may want to retrieve the identifier of the latest successful export, it will help you track the progress of any new export you’ll then create. This can be achieved through the API:
Trigger an export
When creating an export, two parameters are required:
- A date-time
endsAt
, which indicates that all elements prior to it should be exported. Format isYYYY-MM-DDT00:M00:00
(time component must be equal to midnight). - An export-configuration ID
configurationId
(cf “preliminaries” above).
Chose the endsAt
date carefully when creating a payroll variables export, as you may have calculation rules that handle time on a weekly basis (triggered on sundays).
If so, consider exporting on a Monday at midnight (i.e. “00:00:00”) rather than on the first day of the next month.
Then, you can forge the following HTTP request:
The export creation is a synchronous process. As a result, the server will only respond once the export has been fully and successfully generated. This can take some time, and even time out. Your safest bet is to abort the connexion, and track the export creation progress by polling (cf. below).
Track export progress
In order to figure out if the export is complete or not, you can poll the server with the following HTTP request
(you need the lastExportId
and exportConfigurationId
retrieved in the “preliminaries” step):
generatedExportId = data.items[0].id
.Problem is: you will never know if the export has actually failed.
Therefore, you may try creating (cf. step #2) a new export again after an arbitrary
amount of time (say, one hour) has passed, but your polling requests still return
an empty items
array, as your previous request has probably failed.
Retrieve the export content
If the export was successfully created, you may retrieve its content with the following HTTP request:
Was this page helpful?