EDIMessageTypeParseString – System Parameter
Control how Nodinite automatically names EDIFACT messages with the EDIMessageTypeParseString system parameter. This pattern template determines how Message Types are identified from EDI message headers.
What you'll achieve with this parameter:
- Automatically extract Message Type names from EDIFACT UNH segments
- Customize Message Type naming conventions for your EDI standards
- Enable precise Search Field extraction for EDI messages
- Maintain consistent Message Type naming across all EDIFACT integrations
The EDIMessageTypeParseString System Parameter defines a pattern template used by the Nodinite Logging Service to automatically determine the Message Type name for EDIFACT (Electronic Data Interchange For Administration, Commerce and Transport) messages by parsing the UNH (Message Header) segment.
| System Parameter Name | Data Type | Default Value | Comment |
|---|---|---|---|
| EDIMessageTypeParseString | string | {MessageType}.{MessageVersionNumber}{MessageReleaseNumber}{ControllingAgencyCoded} |
Pattern template with 8 available variables. Changes apply to newly logged messages. |
Note
Changes to this parameter take effect immediately for the Logging Service. You do NOT need to restart any services. However, changes only affect newly logged messages—existing messages retain their original Message Type names.
How It Works
EDIFACT UNH Segment Structure
EDIFACT messages contain a UNH (Message Header) segment that identifies the message type and version. The Logging Service parses this segment and uses the EDIMessageTypeParseString pattern to construct the Message Type name.
Example UNH Segment:
UNH+1+ORDERS:D:96A:UN:EAN008'
This segment contains:
- Message Reference Number:
1 - Message Type:
ORDERS - Message Version Number:
D - Message Release Number:
96A - Controlling Agency:
UN - Association Assigned Code:
EAN008
Pattern Variables
The pattern template supports 8 variables extracted from the UNH segment:
| Variable | UNH Position | Example Value | Description |
|---|---|---|---|
{MessageReferenceNumber} |
UNH010 | 1 |
Message reference number (usually sequential) |
{MessageType} |
UNH020 | ORDERS |
Message type identifier (ORDERS, DESADV, INVOIC, etc.) |
{MessageVersionNumber} |
UNH030 | D |
Version number (D = Draft, S = Standard) |
{MessageReleaseNumber} |
UNH040 | 96A |
Release number (e.g., 96A, 01B, D12A) |
{ControllingAgencyCoded} |
UNH050 | UN |
Controlling agency (UN = UN/CEFACT, X12 = ASC X12) |
{AssociationAssignedCode} |
UNH060 | EAN008 |
Association-specific code (optional) |
{CodeListDirectoryVersionNumber} |
UNH070 | 8 |
Code list directory version (optional) |
{MessageTypeSubFunctionIdentification} |
UNH080 | 1 |
Sub-function identification (optional) |
Default Pattern Example
Default Pattern:
{MessageType}.{MessageVersionNumber}{MessageReleaseNumber}{ControllingAgencyCoded}
UNH Segment:
UNH+1+ORDERS:D:96A:UN:EAN008'
Resulting Message Type:
ORDERS.D96AUN
This becomes the Message Type name stored in Nodinite for the logged EDIFACT message.
Configuration Examples
Example 1: Include Association Code
Pattern:
{MessageType}.{MessageVersionNumber}{MessageReleaseNumber}.{AssociationAssignedCode}
UNH Segment:
UNH+1+DESADV:D:01B:UN:EAN008'
Resulting Message Type:
DESADV.D01B.EAN008
Use Case: When different industry associations (EAN, EANCOM, EDIFACT) use the same base message type but with industry-specific variations.
Example 2: Simplified Pattern (Message Type Only)
Pattern:
EDIFACT.{MessageType}
UNH Segment:
UNH+1+INVOIC:D:96A:UN'
Resulting Message Type:
EDIFACT.INVOIC
Use Case: When you want to group all versions of a message type together, ignoring version/release differences.
Example 3: Full Detail Pattern
Pattern:
{MessageType}.{MessageVersionNumber}{MessageReleaseNumber}{ControllingAgencyCoded}.{AssociationAssignedCode}
UNH Segment:
UNH+1+ORDERS:D:96A:UN:EAN008'
Resulting Message Type:
ORDERS.D96AUN.EAN008
Use Case: Maximum detail for environments with multiple EDI standards and industry-specific variations.
Example 4: Message Type with Release Only
Pattern:
{MessageType}.{MessageReleaseNumber}
UNH Segment:
UNH+1+DESADV:D:96A:UN'
Resulting Message Type:
DESADV.96A
Use Case: Simplified naming when you only care about the release version, not the draft/standard indicator or controlling agency.
When to Change This Parameter
Keep Default (Recommended)
Most organizations should keep the default pattern because:
Industry Standard - Matches common EDIFACT naming conventions
Precise Identification - Distinguishes between message versions and releases
Search Field Binding - Enables version-specific Search Field Expressions
Compatibility - Works with most EDI partners and standards
Consider Changing When
Simplified Naming Needed - You want to group all versions together (e.g., EDIFACT.ORDERS)
Industry-Specific Requirements - Your industry requires association codes (e.g., ORDERS.D96A.EAN008)
Organizational Standards - Company policy mandates specific Message Type naming
Partner Requirements - Trading partners expect specific naming conventions
Impact on Message Types and Search Fields
Message Type Creation
When the Logging Service processes EDIFACT messages:
- Parse UNH Segment - Extract values from the message header
- Apply Pattern - Use EDIMessageTypeParseString to construct Message Type name
- Store Message Type - Save to Message Types in Configuration Database
- Bind Log Event - Associate the logged message with the Message Type
This automatic extraction means you don't need to manually create Message Types for EDIFACT messages—they're created on-the-fly as messages are logged.
Search Field Expressions
The Message Type name determines which Search Field Expressions are applied:
- Version-Specific Expressions - With default pattern, you can have different RegEx expressions for
ORDERS.D96AUNvsORDERS.D01BUN - Grouped Expressions - With simplified pattern
EDIFACT.ORDERS, one expression applies to all ORDERS versions - Testing & Debugging - Use the Test Expression feature with your actual Message Type names
Tip
After changing this parameter, test with a sample EDIFACT message to verify the resulting Message Type name matches your expectations before deploying to production.
Best Practices
Pattern Design
Keep It Readable - Avoid overly complex patterns with too many variables
Balance Detail vs Simplicity - Include enough detail to distinguish versions, but not so much it's confusing
Test with Real Data - Validate your pattern with actual UNH segments from your EDI partners
Document Your Choice - Record why you chose a specific pattern for future reference
Migration Planning
If you need to change the pattern after production use:
- Plan Timing - Change during low-traffic period
- Consider History - Old messages keep old Message Type names (no automatic rename)
- Update Search Fields - Modify Search Field Expressions to work with new Message Type names
- Re-Index If Needed - Use Message Type re-indexing to apply new names to historical messages (optional)
- Test Thoroughly - Verify Log Views and Search Fields work with new naming
Caution
Changing this parameter does NOT rename existing Message Types. Historical messages retain their original Message Type names. Only newly logged messages use the new pattern.
Integration with Repository Model
The Message Type names created by this parameter integrate throughout the Nodinite Repository Model:
- Services - EDIFACT Message Types are organized within Services
- Transport Contracts - Combine Message Types with Endpoints for log point definitions
- Log Views - Filter messages by auto-created EDIFACT Message Type
- Stylesheets - Display EDIFACT messages with Message Type-specific formatting
- Search Field Expressions - Bind RegEx extraction to specific EDIFACT versions
This integration ensures your EDI messages are properly tracked, searchable, and correlated across the entire integration landscape.
Frequently Asked Questions
Find more solutions and answers in the Nodinite System Parameters FAQ, as well as the Troubleshooting user guide.
How do I change the value?
Changing a value for the pre-defined System Parameters is described in the generic 'How do I change the System Parameters' article.
Via Admin UI:
- Navigate to Administration → Settings → System Parameters
- Find
EDIMessageTypeParseString - Update the pattern template (use variables from the table above)
- Click Save
- Changes take effect immediately for newly logged messages
Do I need to restart anything?
No! Changes to this parameter take effect immediately in the Logging Service. You do NOT need to restart any services. However, the new pattern only applies to newly logged messages—existing messages keep their original Message Type names.
What happens to existing Message Types when I change the pattern?
Existing Message Types and their associated logged messages are not affected. The new pattern only applies to EDIFACT messages logged after the change. This means:
- Historical messages retain their original Message Type names
- New messages use the new pattern
- You may temporarily have two Message Types for the same EDIFACT message (old pattern and new pattern)
To consolidate, you can use the Message Type re-indexing feature to apply the new pattern retroactively (optional).
Does this parameter affect X12 or other EDI standards?
No. This parameter only affects EDIFACT messages (those with UNH segments). Other EDI standards are handled differently:
- X12 - Uses ISA/GS segment parsing (different logic)
- Custom EDI - Uses Context Options or manual Message Type specification
- TRADACOMS - Uses STX segment parsing (different logic)
Can I use literal text in the pattern?
Yes! You can combine variables with literal text:
EDIFACT.{MessageType}.{MessageReleaseNumber}
Results in: EDIFACT.ORDERS.96A
Or:
{MessageType}_v{MessageReleaseNumber}_{ControllingAgencyCoded}
Results in: ORDERS_v96A_UN
What if a UNH segment is missing a variable I'm using?
If the UNH segment doesn't contain a value for a variable in your pattern (e.g., {AssociationAssignedCode} is empty), the variable is replaced with an empty string:
Pattern: {MessageType}.{MessageReleaseNumber}.{AssociationAssignedCode}
UNH: UNH+1+ORDERS:D:96A:UN' (no association code)
Result: ORDERS.96A. (note the trailing period)
To avoid this, only include variables that are consistently present in your EDI messages.
How do I test a new pattern before deploying?
- Non-Production Environment - Test in Dev/QA first
- Sample Message - Send a test EDIFACT message
- Check Message Type - View the logged message in a Log View and verify the Message Type name
- Validate Format - Ensure the name is readable and matches expectations
- Deploy to Production - Once validated, update the production parameter
Does changing this affect Search Field extraction?
Yes, indirectly. Search Field Expressions are bound to specific Message Types. If you change the naming pattern:
- New Message Type names are created (e.g.,
ORDERS.D96AUNbecomesORDERS.96A) - Existing Search Field Expressions remain bound to the old Message Type names
- You must update Search Field Expressions to also target the new Message Type names
- Alternatively, use the Message Type re-indexing feature to rename historical messages
Next Step
Message Types - Understand Message Type concepts
Add or manage Message Type - View and manage auto-created EDIFACT Message Types
Search Field Expressions - Bind RegEx expressions to EDIFACT Message Types
Logging Service - Learn how messages are processed
Related Topics
- Message Types - Complete Message Type overview
- Add or manage Message Type - Manage EDIFACT Message Types
- Search Field Expressions - RegEx extraction for EDI
- Logging Service - Message processing engine
- Search Fields - Enable EDI data search
- Log Views - Filter by EDIFACT Message Type
- Stylesheets - Format EDIFACT messages for display
- Configuration Database - Where system parameters are stored
- System Parameters - All system parameters
- Context Options - Override Message Type manually