SAP ECC 6.0 β fcior/UBL Canonical Order Transformation
Transform SAP orders to fcior/UBL canonical format in your browser - no backend required.
One Record is a production-ready semantic transformation engine that converts SAP ECC 6.0 sales orders into fcior/UBL-aligned canonical business documents.
Modern business processes need to move away from paper-based systems to digital solutions. However, different ERP systems use different data structures. One Record provides a bridge:
TypeScript monorepo with 4 core packages: canonical-model, sap-model, mapping-engine, persistence
60+ curated mapping rules with semantic references, separate from engine logic
Date parsing, code lookups, unit of measure conversion, composite field handling
ML-style suggester for unmapped fields using name similarity and business term matching
OneRecord uses semantic values that appear identically in SAP, the canonical model, and UBL/Peppol. This creates an automatic mapping bridge without manual coding.
SAP IDoc β ONE-ORD-0001 β UBL cbc:ID E1EDKA1(AG)/PARTN β EX-BUY-0001 β BuyerCustomerParty/EndpointID E1EDP19(003)/IDTNR β GTIN-EXAMPLE-0001 β StandardItemIdentification/ID
The blue values are OneRecord semantic identifiers that connect all three worlds automatically. See SEMANTIC_BRIDGE.md for complete mapping table.
Scenario: Finnish construction company ordering concrete and rebar
Industry: Building materials
Currency: EUR
Line Items: 2 (C30/37 Concrete, Steel Mesh K8-150)
Structure: SAP ECC 6.0 JSON format
Scenario: UK buyer ordering electric bikes from EU supplier
Industry: Electric mobility equipment
Currency: EUR
Line Items: 1 (Electric Bike Model X1)
Structure: ORDERS05 IDoc with E1EDP19/E1EDP35/E1EDP20 segments
Includes:
Full support for SAP ORDERS05 IDoc structure including E1EDP19 (product IDs), E1EDP35 (serialization), E1EDP20 (sustainability/hazmat)
Same values flow through SAP β OneRecord β UBL automatically (EX-BUY-0001, GTIN-EXAMPLE-0001, etc.)
Digital Product Passport (DPP) and Environmental Product Declaration (EPD) as AdditionalDocumentReference
UN3481 (lithium-ion batteries) and other hazardous goods properly mapped to UBL HazardousItem
Seller, buyer, GTIN (0160), and UNSPSC classification codes all preserved in canonical format
Individual serial numbers (E1EDP35) mapped to ItemInstance/SerialID for product traceability
Achieves 95% average confidence on realistic industry orders (construction, electronics)
Every canonical field includes source path, transformation used, and confidence score
Validation shapes defined for fcior Order (execution engine ready for integration)
Full @context with fcior, busdoc, and UBL namespace mappings
Structure ready for Ed25519Signature2020 proof wrapping
Multi-stage builds, docker-compose orchestration, production deployment guides
10 Jest unit tests + 15 automated integration tests
165KB+ documentation: quickstart, architecture, API reference, deployment guides
{
"@context": "https://iri.suomi.fi/model/fcior/",
"@type": "Order",
"orderId": "4500012345",
"issueDate": "2026-04-15",
"orderType": "Standard Construction Order",
"buyer": {
"@type": "Party",
"partyName": "RakennusyhtiΓΆ Suomi Oy",
"postalAddress": {
"streetName": "Mannerheimintie 1",
"cityName": "Helsinki",
"postalZone": "00100",
"countryCode": "FI"
}
},
"seller": { /* ... */ },
"deliveryTerms": {
"incoterms": "EXW",
"deliveryLocation": "Helsinki"
},
"orderLines": [ /* 100+ fields mapped with semantic references */ ]
}
# Clone and run git clone https://github.com/jgmikael/one-record.git cd one-record npm run demo # Or with Docker docker-compose up # Open http://localhost:3001
One Record is fully open source under the MIT license.
fcior-aligned Order types + JSON-LD context (27KB)
SAP ECC 6.0 TypeScript types (180+ fields)
Complete transformation engine (70KB)
SQLite dual storage with CRUD operations
Express REST API (10 endpoints, JSON-LD content type)
URL-routed frontend (5 tabs, hash navigation)
Contributions welcome! See CONTRIBUTING.md for guidelines. Areas of interest:
OneRecord v0.9 - Semantic business document transformation
Lead: Kari Korpela
Contributors: