4.7 KiB
4.7 KiB
Enhanced XML Generator Features
This document summarizes the new features added to the XML Generator CLI tool.
🎯 New Features Summary
1. Set Composition Validation
- Purpose: Validates that each SET CIS contains the correct GTINs in the right quantities
- Usage:
--set-dict path/to/set_dict.csv - Validation Rules: Based on
set_dict.csvwith expected GTIN compositions - Status Types: ✅ OK, ⚠️ WARNING, ❌ ERROR
2. Custom Document Parameters
- Document ID:
--document-id "YOUR_ID"(auto-generated if not provided) - Document Number:
--document-number "YOUR_NUMBER" - Operation Time:
--operation-time "2024-01-15T10:30:00+03:00"(auto-generated if not provided)
3. Validation-Only Mode
- Purpose: Validate data integrity without generating XML
- Usage:
--validate-only - Benefits: Quick data quality checks before processing
4. Enhanced Error Reporting
- Comprehensive validation messages
- Color-coded output (✅ ⚠️ ❌)
- Detailed error descriptions
- Prevents XML generation when errors exist
🔧 Technical Implementation
Validation Logic
- Load dictionary rules from
set_dict.csv - Parse distributed data from main CSV with GTIN columns
- Compare compositions between actual and expected
- Report discrepancies with detailed messages
GTIN Matching
- Uses
SET GTINandGTINcolumns from CSV files - No need to extract GTINs from CIS codes
- Direct column-to-column matching for accuracy
Template Parameter Replacement
- Regex-based substitution in XML templates
- Supports
document_id,document_number,operation_date_time - Automatic UUID generation for document IDs
- ISO datetime format for operation times
📊 Usage Examples
Basic Validation
python xml_generator.py --validate-only --set-dict set_dict.csv set_distributed.csv sets_creation.xml
Full Generation with Validation
python xml_generator.py --set-dict set_dict.csv --document-id "DOC_123" --document-number "NUM_456" --operation-time "2024-01-15T10:30:00+03:00" set_distributed.csv sets_creation.xml -o output.xml
Dry Run with Validation
python xml_generator.py --dry-run --set-dict set_dict.csv set_distributed.csv sets_creation.xml
📋 File Format Requirements
set_distributed.csv
Код;SET CIS;SET GTIN;GTIN
CIS_CODE_1;SET_CIS_1;SET_GTIN_1;GTIN_1
CIS_CODE_2;SET_CIS_1;SET_GTIN_1;GTIN_2
set_dict.csv
GTIN SET;GTIN ITEM;COUNT;SET NAME
SET_GTIN_1;GTIN_1;1.00;Product Set A
SET_GTIN_1;GTIN_2;1.00;Product Set A
🚀 Benefits
- Data Quality Assurance: Prevents invalid XML generation
- Automated Parameter Management: No manual template editing needed
- Comprehensive Validation: Catches composition errors early
- Flexible Operation: Validation-only mode for quick checks
- User-Friendly Output: Clear error messages and color coding
🎯 Test Results
Using the provided test data:
- 120 SET CIS codes processed
- 22 set rules loaded from dictionary
- 100% validation success (120 OK, 0 warnings, 0 errors)
- Perfect composition matching between distributed and dictionary data
📝 Command Reference
| Option | Description | Example |
|---|---|---|
--set-dict |
Path to set dictionary CSV | --set-dict set_dict.csv |
--document-id |
Custom document ID | --document-id "DOC_123" |
--document-number |
Custom document number | --document-number "NUM_456" |
--operation-time |
Custom operation time | --operation-time "2024-01-15T10:30:00+03:00" |
--validate-only |
Only validate, don't generate XML | --validate-only |
--dry-run |
Show validation and processing preview | --dry-run |
🔍 Validation Examples
Successful Validation
✅ OK: 0104639970975627215!rYq<zP+sPBY - Composition is valid
Missing Items Error
❌ ERROR: SET_CIS_X - Missing GTIN 04639970975245 (expected 1)
Wrong Count Error
❌ ERROR: SET_CIS_Y - Wrong count for GTIN 04639970975306: got 2, expected 1
Extra Items Warning
⚠️ WARNING: SET_CIS_Z - Unexpected GTIN 04639970975999 (count: 1)
🎉 Summary
The enhanced XML Generator now provides:
- Industrial-grade validation for set composition
- Flexible parameter management for document attributes
- Comprehensive error reporting with actionable messages
- Multiple operation modes for different use cases
- Seamless integration with existing workflows
Perfect for production environments requiring data integrity and automated XML generation! 🚀