Files
crpt-aggregation/ENHANCED_FEATURES.md
2026-05-08 14:59:56 +03:00

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.csv with 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

  1. Load dictionary rules from set_dict.csv
  2. Parse distributed data from main CSV with GTIN columns
  3. Compare compositions between actual and expected
  4. Report discrepancies with detailed messages

GTIN Matching

  • Uses SET GTIN and GTIN columns 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

  1. Data Quality Assurance: Prevents invalid XML generation
  2. Automated Parameter Management: No manual template editing needed
  3. Comprehensive Validation: Catches composition errors early
  4. Flexible Operation: Validation-only mode for quick checks
  5. 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! 🚀