X12 EDI Connector 2.17 Reference | MuleSoft Documentation
# X12 EDI Connector 2.17 Reference
## Default Configuration
### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
Name for this configuration. Connectors reference the configuration with this name.  
Expiration Policy |  ExpirationPolicy | Configures the minimum amount of time that a dynamic configuration instance can remain idle before Mule considers it eligible for expiration. This does not mean that the instance expires at the exact moment that it becomes eligible. Mule purges the instances when appropriate.  
Mule ID qualifier |  ID qualifier for Mule in the exchange (ISA) segment. This value is used in combination with the Self Identification Interchange ID value, and if one is set, the other must also be set. If this value is set, it affects both send and receive message handling:
  * On the receive side, the ISA Interchange Receiver ID Qualifier must match this value.
  * On the send side, this value is used as the default ISA Interchange Sender ID Qualifier when it is not set in the message data.

  
Mule interchange ID |  ID for Mule in the exchange (ISA) segment. This value is used in combination with the Self Identification Interchange ID qualifier value, and if one is set the other must also be set. If this value is set, it affects both send and receive message handling:
  * On the receive side, the ISA Interchange Receiver ID must match this value.
  * On the send side, this value is used as the default ISA Interchange Sender ID when it is not set in the message data.

  
Mule application code |  Application Code for Mule in the group (GS segment). If this value is set, it affects both send and receive message handling:
  * On the receive side, the GS Application Receiver’s Code must match this value.
  * On the send side, this value is used as the default GS Application Sender’s Code when it is not set in the message data.

  
Partner ID qualifier |  ID qualifier for the partner in the exchange (ISA segment). This value is used in combination with the Partner Identification Interchange ID value, and if one is set the other must also be set. If this value is set, it affects both send and receive message handling:
  * On the receive side, the ISA Interchange Sender ID Qualifier must match this value.
  * On the send side, this value is used as the default ISA Interchange Receiver ID Qualifier when it is not set in the message data.

  
Partner interchange ID |  ID for the partner in the exchange (ISA segment). This value is used in combination with the Partner Identification Interchange ID qualifier value, and if one is set the other must also be set. If this value is set, it affects both send and receive message handling:
  * On the receive side, the ISA Interchange Sender ID must match this value.
  * On the send side, this value is used as the default ISA Interchange Receiver ID when it is not set in the message data.

  
Partner application code |  Application Code for the partner in the group (GS segment). If this value is set, it affects both send and receive message handling:
  * On the receive side, the GS Application Sender’s Code must match this value.
  * On the send side, this value is used as the default GS Application Receiver’s Code when it is not set in the message data.

  
Form and validation |  Enumeration, one of:
  * HIPAA_SNIP1
  * HIPAA_SNIP2

| Schema form and validation level. Schemas used in the configuration must match the selected form. SNIP Type 1 and SNIP Type 2 validation applies to HIPAA schemas only.  
Schema definitions |  Array of String | List of paths for the schemas that the connector uses. The paths can be file systems or classpaths.  
Character encoding |  Enumeration, one of:
  * ASCII
  * IBM1047
  * ISO8859_1
  * PLATFORM

| Character encoding for messages. This character encoding is always used for both send and receive messages. | PLATFORM  
Character set |  Enumeration, one of: **BASIC** EXTENDED ** UNRESTRICTED | Characters allowed in string data. Invalid characters are replaced by the substitution character, if specified, or rejected as errors if no substitution character is set or enabled for receive messages in parser options. Either way, the invalid characters are logged. For receive messages, the invalid characters are reported in 997 functional acknowledgments. | UNRESTRICTED  
Substitution character | Substitution character used to replace invalid characters in string values.  
Version identifier suffix |  Version identifier code suffix for the group (GS segment). If this value is set, it affects both send and receive message handling:
  * On the receive side, the GS Version, Release, and Industry Identifier Code must consist of the X12 schema version (004010, 005010, and so forth) followed by this suffix. If this value is not set, the receive only verifies that the GS version identifier code starts with the configured schema version.
  * On the send side, the combination of the X12 schema version and this suffix is used as the GS version identifier code.

  
Timezone offset | Timezone offset from the UTC to apply to the date and time elements in the Interchange Header (ISA) segment. This field accepts only values compliant with ISO 8601, which are UTC-based; for example, `-01:00`, `+0100`, `-0130`, and so on. If you don’t specify a value for this field, the ISA segment date and time is set to the local date and time of Mule runtime.  
Enforce length limits |  Whether to enforce minimum and maximum lengths for parser and writer values: For parser values:
  * If `true`, the connector rejects transactions with values that are too long or too short.
  * If `false`, the connector uses the values and does not reject the transactions.

In either case the error is logged and reported in 997/999 acknowledgments. For writer values:
  * If `true`, the connector rejects a transaction that has values that are too long or too short.
  * If `false`, the connector uses the values and does not reject the transaction.

  
Enforce character set |  Whether to enforce the allowed character sets:
  * If `true`, the connector rejects transactions that have invalid characters.
  * If `false`, the characters are either passed through or substituted, and the connector does not reject the transactions.

In either case, the error is reported in 997/999 acknowledgments.  
Enforce value repeats |  Whether to enforce repetition count limits for receive values:
  * If `true`, the connector rejects transactions that have values repeated too many or too few times.
  * If `false`, the connector accepts the values and does not reject the transactions.

In either case the error is reported in 997/999 acknowledgments.  
Allows unknown segments |  Whether to allow unknown segments in a transaction set:
  * If `true`, the connector ignores the unknown segments and does not reject the transaction.
  * If `false`, the connector rejects a transaction that contains unknown segments.

In either case, the error is reported in 997/999 acknowledgments.  
Enforce segment order |  Whether to enforce the segment order in a transaction set:
  * If `true`, the connector rejects transactions that have out-of-order segments.
  * If `false`, and the connector reorders the segments and does not reject the transactions.

In either case the error is reported in 997/999 acknowledgments.  
Allow unused segments |  Whether to allow segments marked as `Unused` in a transaction set:
  * If `true`, the connector ignores the unused segments and does not reject the transactions.
  * If `false`, the connector rejects transactions that contain segments marked as unused in the schema.

In either case, the error is reported in 997/999 acknowledgments.  
Enforce segment repeats |  Whether to enforce segment repetition count limits in transaction sets.
  * If `true`, the connector rejects transactions that repeat the segment too many times.
  * If `false`, the connector ignores the repeated segments and does not reject the transactions.

In either case the error is reported in 997/999 acknowledgments.  
Require unique interchanges |  Whether to require unique Interchange Control Numbers (ISA13) for received interchanges:
  * If `true`, the connector records the previously processed interchange numbers and rejects duplicate interchange numbers from the same partner (as determined by the interchange sender and receiver identification).
  * If `false`, the connector continues processing the received interchange numbers and leaves it to the application flow to track interchange numbers and handle them appropriately.

  
Require unique groups |  Whether to enforce globally unique Group Control Numbers (GS06) for received functional groups:
  * If `true`, group numbers must be unique across all interchanges received from the same partner and application (as determined by the interchange sender and receiver identification, combined with the functional group sender and receiver application codes).
  * If `false`, group numbers must be unique within an interchange.

  
Require unique transactions |  Whether to enforce globally unique Transaction Set Control Numbers (ST02) for received transaction sets:
  * If `true`, transaction set numbers must be unique across all functional groups received from the same partner and application (as determined by the interchange sender and receiver identification, combined with the functional group sender and receiver application codes).
  * If `false`, transaction set control numbers must be unique within a particular functional group.
In either case the error is reported in 997/999 acknowledgments.  
Require unique interchanges |  Whether to require unique Interchange Control Numbers (ISA13) for received interchanges:
  * If `true`, the connector records the previously processed interchange numbers and rejects duplicate interchange numbers from the same partner (as determined by the interchange sender and receiver identification).
  * If `false`, the connector continues processing the received interchange numbers and leaves it to the application flow to track interchange numbers and handle them appropriately.

  
Require unique groups |  Whether to enforce globally unique Group Control Numbers (GS06) for received functional groups:
  * If `true`, group numbers must be unique across all interchanges received from the same partner and application (as determined by the interchange sender and receiver identification, combined with the functional group sender and receiver application codes).
  * If `false`, group numbers must be unique within an interchange.

  
Require unique transactions |  Whether to enforce globally unique Transaction Set Control Numbers (ST02) for received transaction sets:
  * If `true`, transaction set numbers must be unique across all functional groups received from the same partner and application (as determined by the interchange sender and receiver identification, combined with the functional group sender and receiver application codes).
  * If `false`, transaction set control numbers must be unique within a particular functional group.

  
Store time-to-live | Minimum number of days to store interchange, group, and transaction set numbers for checking uniqueness. This value is used only when the configuration requires unique interchange, group, or transaction set numbers. The default persistent object store from the Mule configuration is always used for storing the received identifier numbers. This parameter sets the entry time-to-live for these stored values.  
Acknowledge every transaction |  Whether to include a separate AK2/AK5 (997) or AK2/IK5 (999) acknowledgment for every received transaction set:
  * If `true`, the connector explicitly acknowledges each received transaction set.
  * If `false`, the connector includes in the acknowledgement only transaction sets that contains errors. Nonincluded transaction sets are implicitly acknowledged.

  
Generate 999 acknowledgments |  Whether to generate 999 Implementation Acknowledgments rather than 997 Functional Acknowledgments:
  * If `true`, The connector generates 999 Implementation Acknowledgments for each received interchange instead of 997 Functional Acknowledgement transaction sets. Support for 999 Implementation Acknowledgments does not include CTX segment generation.
  * If `false`, the connector generates 997 Functional Acknowledgment transaction sets for each received interchange.

  
Report segment details |  Whether Report segment error details to the sender in 997/999 Functional Acknowledgements:
  * If `true`, the details of segment errors are included in a generated 997/999.
  * If `false`, the details are not included.

  
Include Acknowledgment schema |  Whether to expect 997 or 999 Functional Acknowledgments and to include the 997 or 999 schema:
  * If `true`, the connector automatically includes the schema for 997 or 999 acknowledgment transaction sets in the set of schemas used by X12 Connector.
  * If `false`, you must directly specify the 997 schema, 999 schema, or both if you want these to be processed as input. The schemas used for generating 997 or 999 Functional Acknowledgments are hardcoded and cannot be modified.

  
Data element separator | Data element separator character. The configured value is used by default for all output messages, but can be overridden at the message level.  
Component element separator | Component element separator character. The configured value is used by default for all output messages, but can be overridden at the message level.  
Repetition separator | Repetition separator character (if used). The configured value is used by default for all output messages, but can be overridden at the message level. The value `U` means repetitions are not used.  
Segment terminator | Segment terminator character. The configured value is used by default for all output messages, but can be overridden at the message level.  
Segment line ending |  Enumeration, one of:

| Line ending to add between segments to improve the readability of the output message text.  
Unique group numbers |  Whether to send globally unique Group Control Numbers (GS06):
  * If `true`, the connector assigns unique group numbers across all interchanges sent to the same partner and application (as determined by the interchange sender and receiver identification, combined with the functional group sender and receiver application codes).
  * If `false`, the connector assigns functional group control numbers sequentially within each interchange and reuses the numbers in different interchanges.

  
Unique transaction numbers |  Whether to send globally unique Transaction Set Control Numbers (ST02):
  * If `true`, the connector assigns unique transaction set numbers across all interchanges sent to the same partner and application (as determined by the interchange sender and receiver identification, combined with the functional group sender and receiver application codes).
  * If `false`, the connector assigns transaction set control numbers sequentially within each functional group and reuses the control numbers in different groups.

  
Implementation reference | Implementation convention reference for transactions (ST03). If this value is set, it is used as the ST03 Implementation Convention Reference unless it is overridden in the message parameters.  
Initial interchange number | Initial Interchange Control Number used for outgoing messages.  
Initial group number | Initial Group Control Number used for outgoing messages.  
Initial transaction number | Initial Transaction Set Control Number used for outgoing messages.  
Requests acknowledgments |  Whether to request acknowledgments such as TA1 for the sent transactions flag (ISA14):
  * If `true`, TA1 acknowledgments are requested for all sent transactions.
  * If `false`, TA1 acknowledgements are not requested.

  
Default usage indicator |  Default interchange usage indicator (ISA15):
  * `I`: Information
  * `P`: Production data
  * `T`: Test data

  
Set acknowledgement schema by inbound message |  If the **acknowledgmentSchemaPath** is `EMPTY` and this property is `true` it will use the **Version / Release / Industry Identifier Code (GS08)** field value from the inbound message to set the Functional/Implementation Acknowledgment structure. When `false` it uses a hardcoded Functional/Implementation Acknowledgment structure of the 005010 version.  
Acknowledgement schema path |  The path from the file system or the `classpath`. If the path is specified, it overwrites the default acknowledgment path.  
Enforce conditional rules |  Whether to apply conditional rules in transactions:
  * If `true`, the connector rejects transactions with values that don’t meet conditional rules.
  * If `false`, the values are used and the transaction is not rejected.

  
Truncate values exceeding the length limits |  Whether to truncate values that exceed the length limits when the **Enforce length limits** field is `true`:
  * If `true`, the connector trims the values that exceed the maximum length limit.
  * If `false`, the connector writes the values as-is.

  
Enforce code set validations |  Whether to enforce code set validations:
  * If `true`, the connector enforces code set validations, as defined in the X12 schemas.
  * If `false`, the connector does not enforce code set validations.

  
Use segment line ending in last line |  Whether to use the configured line ending in the last line of the IEA segment:
  * If `true`, adds the configured **Segment line ending** field value to the end of the IEA segment.
  * If `false`, does not add the configured **Segment line ending** value to the IEA segment.

  
Report non-fatal errors in acknowledgments |  Whether to report non-fatal errors in acknowledgements:
  * If `true`, non-fatal errors are displayed at segments IK3/AK3 in acknowledgments.
  * If `false`, non-fatal errors are not displayed at segments IK3/AK3 in acknowledgments.

  
Include trailer segment details |  Whether to include interchange and group trailer details in the map:
  * If `true`, interchange trailer, group trailer, and set trailer details are included in each transaction.
  * If `false`, only set trailer details are included in each transaction.

  
Lock Mechanism |  Enumeration, one of:
  * RUNTIME_LOCK_MANAGER
  * OBJECT_STORE
Enforce code set validations |  Whether to enforce code set validations:
  * If `true`, the connector enforces code set validations, as defined in the X12 schemas.
  * If `false`, the connector does not enforce code set validations.

  
Use segment line ending in last line |  Whether to use the configured line ending in the last line of the IEA segment:
  * If `true`, adds the configured **Segment line ending** field value to the end of the IEA segment.
  * If `false`, does not add the configured **Segment line ending** value to the IEA segment.

  
Report non-fatal errors in acknowledgments |  Whether to report non-fatal errors in acknowledgements:
  * If `true`, non-fatal errors are displayed at segments IK3/AK3 in acknowledgments.
  * If `false`, non-fatal errors are not displayed at segments IK3/AK3 in acknowledgments.

  
Include trailer segment details |  Whether to include interchange and group trailer details in the map:
  * If `true`, interchange trailer, group trailer, and set trailer details are included in each transaction.
  * If `false`, only set trailer details are included in each transaction.

  
Lock Mechanism |  Enumeration, one of:
  * RUNTIME_LOCK_MANAGER
  * OBJECT_STORE

|  Determines the mechanism used to manage locks for control number sequencing:
  * `AUTO` The connector chooses between `OBJECT_STORE` and `RUNTIME_LOCK_MANAGER` based on the environment in which the Mule app is running.
    * When the app is deployed to CloudHub 1.0, the connector uses the `OBJECT_STORE` mechanism for lock management.
    * When the app is deployed to stand-alone Mule runtime, Runtime Fabric, or CloudHub 2.0, the connector uses the runtime’s distributed locking.
You can use this option with:
    * CloudHub 1.0 deployments, including multiple workers or replicas
    * CloudHub 2.0 and Runtime Fabric deployments with one worker or replica
    * Hybrid standalone deployments, including clustered Mule runtimes
  * `RUNTIME_LOCK_MANAGER` The connector always uses the runtime’s distributed locking mechanism. (Recommended when the environment has only one worker.) You can use this option with:
    * CloudHub 1.0, CloudHub 2.0, and Runtime Fabric deployments with one worker or replica
    * Hybrid standalone deployments, including clustered Mule runtimes
  * `OBJECT_STORE` The connector always uses an alternative mechanism in environments in which the runtime’s distributed locking mechanism doesn’t work. (Recommended when the environment has more than one worker.) You can use this option with:
    * CloudHub 1.0, CloudHub 2.0, and Runtime Fabric deployments, including multiple workers or replicas
    * Hybrid standalone deployments, including clustered Mule runtimes

  
Include ignored segments |  Whether to include data elements from segments with `Ignore` as the usage type in the output map and metadata.
  * If `true`, all segments with `Ignore` as the usage type are included in both the output map and metadata.
  * If `false`, all segments with `Ignore` as the usage type are ignored in both the output map and metadata.

  
### Associated Operations
  * Write
  * Write batch


## Read
`<x12:read>`
Transforms an input stream of EDI text into the maps and lists structure of the EDI data.
### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
Configuration | Name of the configuration to use.  
Read Content | Input payload. | `#[payload]`  
Target Variable | Name of the variable that stores the operation’s output.  
Target Value | Expression that evaluates the operation’s output. The outcome of the expression is stored in the **Target Variable** field. | `#[payload]`  
### For Configurations
### Throws
  * X12:UNKNOWN
  * X12:WRITE
  * X12:SCHEMA
  * X12:PARSE


## Write
`<x12:write>`
Transforms the maps and lists structure of EDI data into an EDI text stream.
### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
Configuration | Name of the configuration to use.  
Write Content | Output payload. | `#[payload]`  
Streaming Strategy |  Enumeration, one of:
  * Repeatable in memory stream
  * Repeatable file store stream
  * Non repeatable stream

| Configures how Mule processes streams. | Repeatable file store stream  
Target Variable | Name of the variable that stores the operation’s output.  
Target Value | Expression that evaluates the operation’s output. The outcome of the expression is stored in the **Target Variable** field. | `#[payload]`  
### For Configurations
### Throws
  * X12:UNKNOWN
  * X12:WRITE
  * X12:SCHEMA
  * X12:PARSE


## Write batch
`<x12:write-batch>`
Merges individual X12 messages created and accumulated over a period of time into a single interchange (UNB).
### Parameters
Name | Type | Description | Default Value | Required  
---|---|---|---|---  
Configuration | Name of the configuration to use.  
Write Content | Output payload. | `#[payload]`  
Target Variable | Name of the variable that stores the operation’s output.  
Target Value | Expression that evaluates the operation’s output. The outcome of the expression is stored in the **Target Variable** field. | `#[payload]`  
### For Configurations
### Throws
  * X12:UNKNOWN
  * X12:WRITE
  * X12:SCHEMA
  * X12:PARSE


## Expiration Policy Type
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Max Idle Time | Scalar time value for the maximum amount of time a dynamic configuration instance should be allowed to be idle before it’s considered eligible for expiration.  
Time Unit |  Enumeration, one of:
  * NANOSECONDS
  * MICROSECONDS
  * MILLISECONDS
  * SECONDS
  * MINUTES
  * HOURS

| Time unit that qualifies the **Max Idle Time** field.  
## Repeatable In Memory Stream Type
Configures the in-memory streaming strategy by which the request fails if the data exceeds the **Max Buffer Size** field value. Always run performance tests to find the optimal buffer size for your specific use case.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Initial Buffer Size | Initial amount of memory to allocate to the data stream. If the streamed data exceeds this value, the buffer expands by **Buffer Size Increment** , with an upper limit of **Max Buffer Size**.  
Buffer Size Increment | Amount by which the buffer size expands if it exceeds its initial size. Setting a value of `0` or lower specifies that the buffer can’t expand.  
Max Buffer Size | Maximum size of the buffer. If the buffer size exceeds this value, Mule raises a `STREAM_MAXIMUM_SIZE_EXCEEDED` error. A value of less than or equal to `0` means no limit.  
Buffer Unit |  Enumeration, one of: | Unit for the **Initial Buffer Size** , **Buffer Size Increment** , and **Max Buffer Size** fields.  
## Repeatable File Store Stream Type
Configures the repeatable file-store streaming strategy by which Mule keeps a portion of the stream content in memory. If the stream content is larger than the configured buffer size, Mule backs up the buffer’s content to disk and then clears the memory.
Field | Type | Description | Default Value | Required  
---|---|---|---|---  
Max In Memory Size | Maximum memory size. If more memory is consumed, then the connector buffers the content on disk.  
Buffer Unit |  Enumeration, one of: | Unit for the **Max In Memory Size** field.  
## System Properties
You can configure the following system property for the connector:
Property | Description | Default Value  
---|---|---  
`strictValidationOfYear` | Enables strict validation for the year `0000`. If `true`, the year `0000` is invalid.  
For more information about system properties, refer to System Properties.
## See Also
  * MuleSoft Help Center