Aller au contenu principal

Getting Started with NomaUBL

NomaUBL

NomaUBL is a Java 17 integration layer between Oracle JD Edwards and the French e-invoicing ecosystem. It automates the full invoice lifecycle: from JDE XML output to validated UBL 2.1 e-invoices, submission to a Platform Agréée (PA), and lifecycle tracking in Oracle tables.

What it does

  • Transforms JDE XML output into UBL 2.1 e-invoices via XSLT stylesheets
  • Validates invoices against XSD schemas and Schematron rules (EN16931 + CIUS-FR)
  • Submits invoices to a certified French e-invoicing platform (Platform Agréée)
  • Tracks the full invoice lifecycle in Oracle tables (F564230–F564236)
  • Polls the PA for status updates and reconciles them back to JDE
  • Provides a React web interface served by an embedded HTTP server
  • Provides a CLI for batch processing and automation

Architecture overview

JDE (XML spool output)


ScheduleUBL (CLI entry point)

├─ XSLT Transform ──► UBL 2.1 XML

├─ UBL Validation ──► XSD + EN16931 + CIUS-FR Schematron

├─ PPF Directory Check ──► DirectoryApiClient (non-blocking)

├─ PA Submission ──► PlatformApiClient (REST, Java 11 HttpClient)

└─ Oracle DB Update ──► F564230, F564231, F564235, F564236

Key components

ComponentDescription
ScheduleUBLCLI entry point — orchestrates all processing modes
CustomUBLCore per-invoice processor (Callable<Integer>)
UBLValidatorXSD + Schematron validation (EN16931, CIUS-FR)
PlatformApiClientREST client for the Platform Agréée
DirectoryApiClientPPF directory lookup (non-blocking)
TokenManagerJWT bearer token with 55-min cache + auto-refresh
ImportStatusHandlerPolls PA for pending invoice status updates
UBLDatabaseHandlerAll Oracle DB writes (F564230–F564236)
Web interfaceReact + TypeScript, served by embedded WebServer

Quick start

1. Build the application

bash build.sh

2. Verify the build

java -jar nomaubl.jar -help

3. Open the web interface

java -jar nomaubl.jar -config config.properties

Then open your browser at http://localhost:8080.

4. Process invoices from CLI

java -jar nomaubl.jar -run config.properties my_template output.xml UBL 1001
Configuration required

Before running, you must configure the config.properties file with your Oracle database connection and Platform Agréée credentials. See the Configuration section.