Reporting Module
Reporting is an essential part of any accounting system, providing insights into financial data and helping organisations make informed decisions. Reeve’s reporting module is designed to offer flexible and customizable reporting capabilities to meet the diverse needs of its users. It was separated from the Accounting Core module to ensure better modularity and scalability.
Within this module, report templates can be defined, which serve as blueprints for the structure and content of a report. Based on these templates, reports can be created. The creation process depends on the dataMode defined in the template:
- User Generated: The user manually inputs the report data.
- Autogenerated: The system automatically generates the report based on the template definition and underlying financial data.
The generation relies on data from the Accounting Core module, ensuring that reports always reflect the most up-to-date financial information, including published transaction data. Through validation rules embedded within templates, the integrity of the reports is ensured, guaranteeing that all necessary data is included and correct before a report can be published.
Communication with Other Modules
The Reporting module communicates with other modules in the Reeve platform to ensure seamless integration and data flow. It interacts with the following modules:
- Accounting Core: The Reporting module retrieves financial data from the Accounting Core to generate accurate and up-to-date reports.
- Blockchain Publisher: The Reporting module sends validated reports to the publisher to be immutably recorded on the blockchain.
- Organisation: The Organisation module holds all the master data, which is needed to populate the reporting module with the necessary information for processing and validation.
API Documentation
The detailed API can be extracted from the swagger documentation of the reporting module. Major resources include:
- Templates: Manage report definitions.
- Reports: Manage report instances (creation, validation, status updates).
- Validations: Manage validation rules for reports.
Event Documentation
The Reporting module emits and listens to various events to ensure that the system remains responsive and up-to-date with the latest financial data.
Events the Reporting module listens to:
- ReportsLedgerUpdatedEvent: This event is emitted when there is an update on the on-chain status of a report. This is used to update the local status of reports after publishing.
- TxsLedgerUpdatedEvent: This event is emitted when there is an update on the on-chain status of a transaction. This is used to trigger automatic reprocessing or re-validation in case a transaction was published/updated after a report was generated.
Events emitted by the Reporting module:
- PublishReportEvent: Emitted to trigger the publishing process of reports via the Blockchain Publisher.
//TODO: Add these events as a diagram for better readability