This is an old revision of the document!


EDI Manager

The EDI Manager is a Rust-based system for integrating MoneyWorks (MW) accounting software with the Peppol/Edimondo e-invoicing and e-ordering network. It automates the import, export, and processing of invoices and orders between Moneyworks and Edimondo using UBL (Universal Business Language) XML documents.

Technical documentation

Key features:

- MW Transaction Export: Extracts transactions from MW, builds UBL XML documents using JSON templates, and exports them to Edimondo. - MW Transaction Reprocessing: Supports reprocessing of transactions based on status and colour flags. - Edimondo Status Checking: Checks the delivery status of sent documents and updates MW/DB accordingly. - Order Import: Retrieves orders from Edimondo, parses UBL XML, and imports them into MW. - Configurable: Uses TOML configuration files for server, business, and email settings. - Logging: Logs operations and errors to rotating log files. - Utilities: Provides date/time formatting, file writing, and folder setup functions.

Main modules:

- mw_to_ubl.rs: MW → UBL/Edimondo export logic. - ubl_to_mw.rs: Edimondo → MW import logic. - mw.rs: MW API communication. - edimondo.rs: Edimondo API communication. - invoice.rs, order.rs: UBL document construction and parsing. - export.rs, operations.rs: MW transaction and detail handling. - db.rs: Database operations for exports/imports. - config.rs: Configuration management. - utilities.rs: Utility functions.

Entry point:

main.rs calls `start_server` which runs the main service loop.

Data flow:

MW transactions are exported, transformed to UBL XML, sent to Edimondo, and their status is tracked. Incoming orders from Edimondo are parsed and imported into MW.

Config files:

- config.toml for settings - control_file.txt for last modified timestamps - JSON templates for UBL documents in templates

For more details, see the main service logic in lib.rs and mw_to_ubl.rs

Edit this page
Back to top