EDI Profiles

Document created by chris_stevens Employee on Mar 21, 2016Last modified by Adam Arrowsmith on Feb 28, 2017
Version 4Show Document
  • View in full screen mode

Electronic Data Interchange (EDI) is defined as the exchange of business data from one computer to another computer using a public standard format. EDI replaces the traditional processes of preparing data in paper form and sending it by mail or by facsimile. Business communications with EDI is not restricted by software, equipment or computer.



User Guide Articles

Here are some links to the User Guide, which you may find useful when using and configuring EDI Profiles.


Common Errors


Error: PO1 segment is only writing out one line instead of the 3 lines within the PO1 Loop

The Looping Option on the P01 segment in the EDI profile should be set to Occurrence. Occurrence means all instances will be written.

As long as each PO101 (line number) is unique, each PO1 segment is written out even if the item and quantity is the same.


Error: Cannot find SENDER alias in system [NA-146070854] Cannot build relationship for [null] and [null-5017416000006

When the Qualifier is set to “Not Used” in Interchange Identification Options, the message gets transmitted with NA value:



Message: UNB+UNOA:2+123456789:NA+987654321+....


NA might cause the document to fail with a similar error message like below:

Cannot find SENDER alias in system [NA-146070854] Cannot build relationship for [null] and [null-5017416000006]


As a workaround you may be able to Search & Replace in the outbound communication tab (“Data Processing Options”) to replace NA (assuming there are no other NA’s in the file):



This has been logged as a bug under CONN-3298 and will be fixed in future releases.


Workaround to remove NA:

Use Search and Replace in Data Processing Options.

Search: \:NA\+

Replace: +


That would make the line go from:

Message: UNB+UNOA:2+123456789:NA+987612341+....



Message: UNB+UNOA:2+123456789+987612341+....


Error: MIN_LENGTH_NOT_REACHED or whitespaces are not preserved for EDI profile elements

When using an EDI X12 profile in a map as a target profile, trailing whitespaces are getting removed and are not getting preserved even if the trailing spaces are required to fulfill the minimum length condition as is permissible for AN and ID types of fields.


Also, the following error message may accompany this behavior:

Error Message   Output ProfileLocation: Detail/../..]: Invalid Data Element '#' : MIN_LENGTH_NOT_REACHED



In the output profile location, for the EDI X12 profile element, enable the Mandatory checkbox for the element. This should preserve trailing whitespace characters.


Error: EDIFACT standard file not read in properly


EDIFAC standard file not read in properly, if the composite or subcomposite have embedded CR or LF or any other segment terminator characters. According to the EDIFACT standard the file should be read in, with the embedded segment terminator characters.


The source file has the following subset of data: MYCOMPANYS WAREHOUSE<SPACE><CR><LF>CO


If attempting to read the file, it is not recognized, and the file is not sent to the trading partner and there is no ACK generated either. No errors.

If the CR or LF or any other special characters are removed from the composite or sub composite, the file will be read in successfully, and sent to the trading partners.


The Trading Partner shape seems to be faulty, or has a limitation. Can the trading partner step or shape be improved to read any file with the embedded special characters as part of the composite, or subcomposite ?



We are observing that the file being transmitted is not compliant with the EDIFACT standard that we comply with. For example, in this sample segment:



In the above stream:

  • The fourth character ‘:’ is the Component element separator
  • The fifth character ‘+’ is the Data Element Separator
  • The sixth character ‘.’ is the Decimal Notation
  • The seventh character ‘?’ is the Release Character
  • The eight character ‘ ’ is the Repetition Char - <SPACE>
  • The ninth character ‘’’ is the Segment Separator - <CR>

The character between UNA and UNB is used to Segment Separator Suffix. Like X12, R2 supports “None”, “CR”, “LF” and “CR LF” for EDIFACT as well - <LF>+ESC




Where do I find a list of all EDI specifications?

Depending on what the customer would like to do, we recommend using Edifecs SpecBuilder as that tool supports all versions of EDI as well as all versions. It also allows creating IGs that are directly generated out of the tool. Because they asked specifically about X12.org (who publishes the X12 standard) and 1EDISource (a small player in the EDI mapping world), I suspect they have some understanding of EDI and what it can do. SpecBuilder is a stellar product for looking at all the versions and transaction sets found within the versions. It will NOT help the customer if they want to understand why they should use one code over another nor will it help them if they need to understand the control headers and footers.


What should I do if my EDI X12 version not supported?

If an EDI X12 version that you need is not currently supported please:


  1. Try using another X12 version that is currently available and modifying the profile by adding/removing the required segments and/or elements to the profile
  2. Submit an idea. Community members have the ability to vote on enhancements they feel will most likely affect their integration requirements. The more votes an enhancement gets, the more attention it receives from the engineering team. This is a great tool for our users to help drive the development within AtomSphere.


Why can't EDI profiles be created in an account?

In order to create an EDI profile, the trading partner feature must be enabled in the account. See EDI profiles.


How do I only map from the N1 - 'Bill To' loop in an inbound X12 EDI document?

In the EDI Profile, add qualifiers and identifier instances to map from unique loop types.


Supporting Reference Guide Documentation: EDI profile's Data Elements tab, Identifier Instance details


How to Break or Combine Repeated Sets in EDI Documents?

Repeated Sets are used in EDI profiles to handle specific types of Segments that combine repeating data into one or more segments. The typical example is the SDQ segment found in 850 X12.


Here is an example 850 containing an SDQ segment:

ITD*05*3***30***NET 30
TD5*****Store Example Guide


In this case, the SDQ segment is specifying the quantity per store that has been ordered for a particular item. The item is defined in the PO1 segment. Instead of listing each quantity and store in a separate SDQ segment, the list of store/quantity values are combined to give the format:


SDQ*EA*<Store 1 ID><Store 1 quantity><Store 2 ID><Store 2 quantity><Store 3 ID><Store 3 quantity> ...


AtomSphere handles these types of segments by breaking them up when reading (Break Repeated Sets when Reading Option). This will allow you to more easily map the repeating fields into another system.


AtomSphere can combine these repeating sets when writing (Combine Repeated Sets When Writing Option) out new EDI from a Map. This will allow you to meet the EDI specifications for outbound documents requiring this feature.




Reading EDI

1) On the segment with repeating sets, specify the 'Break Repeated Sets When Reading' - Repeat Action:


2) For this AtomSphere EDI segment, set the data elements to a Repeat Type of either Constant or Repeated.

  • Constant elements will be the elements at the beginning of the segment that will be the same for all the repeated sets of elements. In this case the SDQ01 (EA) and SDQ02 (92) are Constant, so you should specify this setting for each element.
  • The Repeated elements are defined for the group of elements that will repeat one or more times in the segment or segments.

In the Boomi profile, you should set the SDQ03 and SDQ04 elements to 'Repeated' and any remaining data elements in the segment are deleted. You only want to define the unique set of elements in the profile, not all of the repetitions.



When defined in this manner, AtomSphere would read the SDQ data and process it going forward so it is equivalent to the following:




Writing EDI:

When writing the data, the multiple SDQ segments would be combined to look like the original example in the Description. For this case, you also have to define how many repeated sets will occur in a single segment.


  1. On the segment with repeating sets, specify the 'Combine Repeated Sets When Writing' - Repeat Action.
  2. Define the 'Max Repeated Sets' field on the segment. In the original example, the Max Repeated Sets is 10. It will generally be a small integer value
  3. Identify the Constant and Repeated elements (as specified above).


How to improve map performance in EDI processes?

  • If your inbound data contains many records or many elements looped within a single record, a map may take longer to process than maps that do not.
  • Make sure that you map only the data required in your integration.
  • If only header data is required in your outbound profile, mapping additional data from the detail loop will increase the processing time (by increasing overhead) of the map


How to update CTT01 segment for records with no HL segments?

No HL segments being passed in with EDI profile/record, but you still require the CTT01 element of the CTT segment to indicate number of detail records.


One way to do this is to create a user defined map function that does a Line Item Increment, and then passes the result to a Dynamic Document Property and then create a second map that calls the Dynamic Document property and maps it to the CTT01 element.


In the first map, create a user defined map function that does a Line Item Increment, and then passes the result to a Dynamic Document Property.


Then create a second map that uses the outbound profile from the first map, as the inbound and outbound profile, and either use Boomi Suggest, or manually map the elements as you see fit. Be sure to disconnect the mapping between the CTT01 element.


In this map create a Get Document Property, and get the dynamic document property that was created in the first map, and map it to the CTT01 element.



You must edit/update the outbound profile, select the CTT01 element, click on the Advanced tab, and set the "Auto-Generate Option:" to "N/A" to make the mapping work, otherwise the value will be automatically calculated to 0.


How to identify instances on an EDI looping structure?

It is a common mistake to create the unique instances on an element WITHIN a particular EDI looping structure.


The identifier instances must be defined for the sub-element, but when identifying the specific instances, this is usually done at the loop level.


For example, if N1 is a sub element of the "0100 Loop" then you would identify specific identifiers for N101, but you would define specific instances of the "0100 Loop"


For example:

N101 may be SF or ST, and these are defined on the N101 element.


But then, you want to define an instance of the entire "0100 Loop" where N101 is SF, and another instance of the entire loop where N101 is ST.


you therefore would see:

  • 0100 Loop
    • N1
      • N101
  • 0100 Loop ( N101=SF )
  • 0100 Loop ( N101=ST )



  • 0100 Loop
    • N1
    • N1 (N101=SF)
    • N1 (N101=ST)


This will not generate the output looped the way you intend.


EDIFACT profiles consume high CPU and deplete Atom memory?

Depending on the Detail/CPS Loop and LIN Loop(s), if left at or using the default settings, it will generate large cross products, 999 times 999. This may cause the map shapes to deplete the heap allocation for the atom.


If the Loop Repeats for CPS is set to 999, attempt to:

  1. Edit the EDIFACT profile
  2. Scroll down to CPS Loop
  3. Hover over or highlight the CPS Loop
  4. On the right you will notice the Loop Repeat option
  5. Change the value from 999 to 1
  6. Save
  7. Close
  8. Test
  9. Re-deploy the process


This is not a workaround, is the common solution when attempting to avoid high number of cross products and high memory usage.


Why aren't EDIFACT Profiles Message Types AVLREQ, RESREQ etc., unavailable?

Unfortunately EDIFACT Profiles Message Types AVLREQ, RESREQ are not supported/available at this time. Please contact support if you have any questions, or log a request in our Feedback forum to request the update.


How to Configure Hierarchical Loops for X12 EDI 856 and 857 Profiles

For how to configure the 856/857 Advanced Shipping Notice (ASN) profile with hierarchical loops, see How to Configure Hierarchical Loops for X12 EDI 856 and 857 Profiles.


Is there an example of what the EDI 410 should look like?

Here is a URL :



Id       | Segment Name                       | Req
ISA    | Interchange Control Header      |  M
GS     | Functional Group Header         |  M
ST    | Transaction Set Header            |  M
B3B | Beginning Segment for Carrier's |  M
        | Invoice                                    |
N9    | Reference Identification            |  O
CM  | Cargo Manifest                         |  O
Loop ID - N7
N7   | Equipment Details                     |  M
VC   | Motor Vehicle Control                |  O
M7   | Seal Numbers                           |  O
M12 | In-bond Identifying Information     |  O
GA   | Canadian Grain Information        |  O
N8   | Waybill Reference                     |  M
F9   | Origin Station                           |  M
D9  | Destination Station                    |  M
Loop ID - N1
N1    | Name                                           |  O
N2    | Address Name Information             |  O
N3    | Address Information                      |   O
N4    | Geographic Location                     |  O
PER | Administrative Communications     |  O
        | Contact                                       |
R2  | Route Information                          |  O
PS  | Protective Service Instructions       |  O
Loop ID - LX
LX  | Assigned Number                        |  M
L5  | Description, Marks and Numbers  |  M
Loop ID - L0
L0  | Line Item - Quantity and Weight  |  M
L1  | Rate and Charges                      |  M
PI  | Price Authority Identification        |  O
L3  | Total Weight and Charges        |  M
SE  | Transaction Set Trailer            |  M
GE  | Functional Group Trailer         |  M
IEA | Interchange Control Trailer      |  M


Within the NAD loop, both CTA and COM segments repeat. What do I change to make only COM repeat?

EDIFACT: The map in the integration has an EDIFACT profile. The EDIFACT profile has lots of NAD loops. The NAD loops have two segments: CTA, COM. Only COM should repeat But unfortunately CTA repeats and COM repeats. I am expecting only COM to repeat.



Check the map and the segments and elements that are mapped.


Unmap the CTA segment and elements, (CTA01), starting on the subsequent CTA segments, for example, if there is a CTA segment for Email, remove the mapping for Telephone, Fax, etc.


Repeat this process for the remaining NAD loops, and CTA segments.


Under Version Information, what is the difference between the types listed, one being prefixed by an 'x' (i.e. xD96A vs. D96A)?

Creating EDIFACT profile, and selecting Version for Edifact Version Information see two types listed. What is the difference between version Dnna and xDnna (where n=number and a=Alpha Character) i.e., D96A vs. xD96A?


The 'x' is a "hold over", from a workaround for a bug in the template code. (The issue has since been resolved). The 'x' version is no longer required, and should not be used going forward.

8 people found this helpful