The EDIFACT Converter
The EDIFACT converter supports the import and export of any batch EDIFACT type in any EDIFACT version. We currently do not support interactive EDIFACT message types.
We assume that you know how to work with mapping lines and how to access the EDI properties.
There are training videos available for the EDIFACT converter.
Mapping Create and Update Wizard
The EDIFACT converter has a powerful assistant to create the mapping structure from an example file. You can also update existing mappings from additional files, if you haven’t changed the indentation of the mapping lines. Please be careful with updating mappings and always make a backup first.
Before running the wizard the module has to know the EDIFACT standard. Without this information the assistant will still be able to create a working mapping, but it cannot recognize repetitions and does not know the element names, allowed length etc.
We describe how to import the EDIFACT standards in the installation chapter.
After importing the correct standard description, you should set the header properties of the EDI Mapping. Afterwards you can run the wizard and select your example file. The analysis of the file can take some time, so please make sure to start with a small file. The mapping execution will be much faster later on.
Commands
The EDIFACT converter supports a few special commands. The available command are:
This command will leave the current mapping, without writing the current table record. Use with caution.
This command allows you to start a different mapping, like a post-processing. But you do not require table data to pass to the next mapping and you can specify the mapping dynamically. This is mainly used in pre-process mappings, where you call a different EDIFACT mapping, based on the message type or sender. The command with the name SkipSegments can help to skip unnecessary parts of the EDIFACT file and keep your mapping small.
This command allows you to skip all EDIFACT data up to a specified segment. This is mainly used in pre-process mappings, where you only want to parse, for example, the header and skip the rest of the file, because it will be processed by a different mapping. It is also possible to use this, to skip certain message types, while processing others in the same mapping.
Deprecated since version 4.00 of the module. This command will create a new EDI message and lock system tables. We recommend to use the commands SkipSegments in combination with RUNASYNC instead.
Deprecated since version 4.00 of the module. Please use RUNASYNC instead, if possible. The RUN command will lock EDI system tables and prevent multiple EDI processes at the same time.
Converter Functions
The EDIFACT converter provides the object with the name EDIFACT which provides the special function SEGMENTCOUNT that you can use to output the number of segments in the current EDIFACT message. This value is typically used in the segment UNT for the data element with the name: Number of Segments in a Message.
Import / Export
We will discuss the properties and features for imports and exports separately.
Importing EDIFACT Data
Import Mapping Header Properties
To import EDIFACT data into Microsoft Dynamics NAV 2016 please select the property value Import.
Anveo EDI Connect has limited support for encodings. We cannot support all variations, but you can try the best matching one from the list:
Use the internal encoding of Microsoft Dynamics NAV 2016.
Use the Windows encoding. The codepage may vary based on the installation.
Use a DOS encoding.
Requires Microsoft Dynamics 2013R2 or higher.
Use UTF-8 encoding.
Requires Microsoft Dynamics 2013R2 or higher.
Use UTF-16 encoding.
You can define that the assistant to create a new mapping should search for multiple interpretations of the data structure. Setting this property to a value higher than one will result in multiple candidates and longer analysis time during the execution of the mapping creation wizard.
Import Loops / Group
The EDIFACT structure contains groups, which you can’t see from the actual data. These groups are defined in the documentation and allow you to repeat structures. Groups can be used, like any other loop to add, for example, tables.
If you add a table in write mode on an EDIFACT import, the converter will check the child structures whether all mandatory elements are present and whether all filters are fulfilled. This is useful to add conditional branches in the mapping. On the other hand, it can make troubleshooting more difficult because the mapping can skip parts.
We recommend setting the property Min. Repeat to at least one, if you expect the structure to be present in the file. This way the module does not need to check the child structure and can directly try to convert the lines. This will make the mapping a little bit faster and also gives you better error messages in case the mapping structure does not match the file.
You can also use the loops without adding a table. On imports they will behave similar to a table in write mode and check the child structure before entering the loop. You can use this if you do not want to import the data or if you’re only interested in the last values of the loop.
Import Data Line Properties
After creating an EDI mapping line, you can configure the properties.
Import Mapping Data Lines
We will only show the properties for EDI mapping lines with the Type property set to Data as the other properties behave like in any other mapping. There are multiple data line types.
This properties defines the type of data line, that you want to configure.
The available options will vary depending on the position you try to add the mapping line. Some data lines are only allowed as children of another type.
This list will show all available options for EDIFACT imports:
The line represent the special segment UNA, which is called service string advice. It is used to define, which control characters are used. From a technical point of view it is also mandatory to use non 7-bit characters in the file. Anveo EDI Connect will use the default characters, if not otherwise specified. If the segment UNA is in the file, you have to add this data line to the mapping to be able to import the file. This line will not create an error, if the file does not contain the segment. The actual control characters used are currently defined in the mapping. The
A segment defines the kind of data that follows. In EDIFACT segment names have usually three characters and define a basic function. A mapping line of type Segment specifies the segment identifier. The actual data is represented as child lines in the EDI mapping.
A composite combines several data elements, which belong together. A composite is only visible in the file, if multiple data elements in the composite are used. The composite itself does not hold any data.
The data element is the structure that contains the actual data, which you can map to fields.
Import Service String Advice
The actual control characters used are currently defined in the mapping. The information from the file is currently ignored. In EDIFACT the characters are usually always the default ones.
The separation character used between data elements of a composite.
The separation character used between data elements outside a composite.
The character used as a decimal point.
A character that can be used to specify that the following character has to be interpreted as a literal and not as a control character.
A character that specifies a repetition of a data element. Anveo EDI Connect does not support repeated data elements at the moment.
The segment terminator, which will terminate the segment. Or in other word, this character is used to separate different segments.
Import Segment
You need to define the segments, that can be in the file. If you want to parse the data, you’ll also have to add the composites and data elements, which you want to process. A segment can be conditional, meaning it might be in the file, but don’t have to be there.
This property can be used to specify the agency responsible for the EDIFACT standard that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: UN.
This property can be used to specify the EDIFACT version that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: D96A.
This property can be used to specify the EDIFACT message type that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: ORDERS.
Specifies whether an element has to be in the file or whether it is optional.
The element has to be in the file. If this mapping line is a children of a loop it might also be used as an acceptance criteria, whether the loop can be processed or not, like described above.
The element is conditional. Do not create an error if it is not in the file. This element does not affect the acceptance of an loop.
Specifies the position of the segment according to the EDIFACT documentation. This property is only used for reference and on new lines to find the correct segment. The property is ignored during the import of a file.
Defines how often the element might be repeated according to the documentation. This does not affect the import of the file, you have to add a loop or duplicate the line, if you want to process multiple instances.
Defines the segment tag. The segment tag is the value that appears in the file, typically three characters long, like BGM, UNB etc.
The name is currently not used and for reference only.
Import Composite
This property can be used to specify the agency responsible for the EDIFACT standard that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: UN.
This property can be used to specify the EDIFACT version that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: D96A.
Specifies whether the composite has to be in the segment or whether it is optional.
The composite has to be in the segment. It might also be used as an acceptance criteria for the parent segment.
The composite is conditional. Do not create an error if it is not in the file. This element does not affect the acceptance of an loop.
Specifies the position of the composite according to the EDIFACT documentation. The position is typically a number, like “010”. The number has to be divisible by 10. The same position can only be read once. The position property can also change the position of the mapping line.
Defines the tag of the composite. Typical tags are “C001”, the tag does not affect the processing of files. It is mainly used to automatically determine whether the element is mandatory according to the standard etc.
The name is currently not used and for reference only.
Import DataElement
This property can be used to specify the agency responsible for the EDIFACT standard that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: UN.
This property can be used to specify the EDIFACT version that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: D96A.
Specifies the target of the data. We have a separate section on the destination expression. You can leave the destination expression type blank, if you do not want to process the data, but might want to at a later point. You can delete the mapping line, if you do not want to process the data.
You can use filters to define acceptance criteria, which will either not process a part of the mapping or create an error, if the data does not match the filter. Especially for EDIFACT we highly recommend to use filters, whenever you take combined values with a qualifier to check that the qualifier is the expected one.
Specifies whether the data element has to be in the segment/composite or whether it is optional.
The data element has to be in the segment/composite. It might also be used as an acceptance criteria for the parent segment.
The data element is conditional. Do not create an error if it is not in the file. This element does not affect the acceptance of an loop.
Specifies the position of the data element according to the EDIFACT documentation. The position is typically a number, like “010”. The number has to be divisible by 10. The same position can only be read once. The position
property can also change the position of the mapping line.
Defines the tag of the data element. The tag does not affect the processing of files. It is mainly used to automatically determine whether the element is mandatory according to the standard etc.
The name is currently not used and for reference only.
This property defines the data type according to the EDIFACT standard. This is for information only and does not affect the processing.
The following values are allowed:
Do not check the length of the output.
Create an error if the value is longer than allowed.
Create a warning if the value is longer than allowed and truncate the output to the allowed length.
Truncate the value, is it is longer than allowed.
Truncate the value, is it is longer than allowed and add “…” at the end to show that the value is not complete.
Create an error if the output does not have the specified length.
Truncate or pad the value, if it has not the specified length and create a warning.
Create an error if the value is longer than allowed. Pad the value if it is to short.
Truncate or pad the value to the given number of characters.
This property defines whether the field is variable or fixed length according to the EDIFACT standard. This is for information only and does not affect the processing.
The field is variable length.
The field has a fixed-length.
Defines how many characters are allowed in the data element.
You can select the data type of the data that you want to import.
The following values are available:
The field is automatically interpreted, based on the target data type.
The data is interpreted as a date. You can specify the format with the property Format String.
The data is interpreted as time information. You can specify the format with the property Format String.
The data is interpreted as date/time information. You can specify the format with the property Format String.
Only available, if the property Format Type is set. Specifies the date/time format string, like described in working with date/time format strings.
You can maintain a list of example values. The mapping creation/update wizard will fill this list automatically from the example file.
Exporting EDIFACT Data
Export Mapping Header Properties
To export EDIFACT data from Microsoft Dynamics NAV 2016 please select the property value Export.
Anveo EDI Connect has limited support for encodings. We cannot support all variations, but you can try the best matching one from the list:
Use the internal encoding of Microsoft Dynamics NAV 2016.
Use the Windows encoding. The codepage may vary based on the installation.
Use a DOS encoding.
Requires Microsoft Dynamics 2013R2 or higher.
Use UTF-8 encoding.
Requires Microsoft Dynamics 2013R2 or higher.
Use UTF-16 encoding.
EDIFACT files can have line breaks after each segment. This will make the file slightly larger, but easier to read. This property defines whether the converter should output line breaks. This option cannot be changed dynamically, if one partner requires line breaks and another doesn’t you’ll have to create two separate mappings. The converter will use a Windows line break (carriage return and line feed).
You can define that the assistant to create a new mapping should search for multiple interpretations of the data structure. Setting this property to a value higher than one will result in multiple candidates and longer analysis time during the execution of the mapping creation wizard.
The communication channel that should be used, if not specified before by either another mapping, AL / C/AL code or by using the business transactions. This can be left blank starting with Anveo EDI Connect 4.00.
Configures whether the communication channel should be send after running this mapping. This can be used to automatically sent the files, without the need of a separate job.
You can specify a receiver partner that is used as a fallback, in case there is no partner specified before. The partner is used by some communication channels to select the recipient. And can be accessed inside the mapping to output, for example, an identification number of the partner.
Export Mapping Line Properties
After creating an EDI mapping line, you can configure the properties.
Export Mapping Data Lines
We will only show the properties for EDI mapping lines with the Type property set to Data as the other properties behave like in any other mapping. There are multiple data line types.
This properties defines the type of data line, that you want to configure.
The available options will vary depending on the position you try to add the mapping line. Some data lines are only allowed as children of another type.
This list will show all available options for EDIFACT imports:
The line represent the special segment UNA, which is called service string advice. It is used to define, which control characters are used. From a technical point of view it is also mandatory to use non 7-bit characters in the file. Anveo EDI Connect will use the default characters, if not otherwise specified. If the segment UNA is in the file, you have to add this data line to the mapping to be able to import the file. This line will not create an error, if the file does not contain the segment. The actual control characters used are currently defined in the mapping. The
A segment defines the kind of data that follows. In EDIFACT segment names have usually three characters and define a basic function. A mapping line of type Segment specifies the segment identifier. The actual data is represented as child lines in the EDI mapping.
A composite combines several data elements, which belong together. A composite is only visible in the file, if multiple data elements in the composite are used. The composite itself does not hold any data.
The data element is the structure that contains the actual data, which you can map to fields.
Export Service String Advice
If you add a “Service String Advice” (UNA) to an EDI export mapping, you can configure the characters used in the output file. The UNA segment should be the first data line in the EDI mapping.
The separation character used between data elements of a composite.
The separation character used between data elements outside a composite.
The character used as a decimal point.
A character that can be used to specify that the following character has to be interpreted as a literal and not as a control character.
A character that specifies a repetition of a data element. Anveo EDI Connect does not support repeated data elements at the moment, but you can define, which character is used in the output of the “Service String Advice”. Also setting this value will escape the repetition character in data outputs automatically.
The segment terminator, which will terminate the segment. Or in other word, this character is used to separate different segments. You can specify whether to use additional line breaks in the mapping header properties.
Export Segment
Only segments defined in the mapping can be outputted. So you have to configure all segments required in the output file.
This property can be used to specify the agency responsible for the EDIFACT standard that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: UN. This property does not affect the converter output.
This property can be used to specify the EDIFACT version that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: D96A. This property does not affect the converter output.
This property can be used to specify the EDIFACT message type that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: ORDERS. This property does not affect the converter output.
You can set this property to the value True to only output the element if a specified source expression matches a specified filter.
This property is only available if the property Conditional Output is set to True. A filter to check the SourceExpr against. The source expression will be interpreted as text for applying the filter. The element will only show up in the output, if the value from the specified source expression is within the specified filter.
This property is only available if the property Conditional Output is set to True. This property specifies which value should be used to decide whether it matches the given filter and the element should appear in the output, or not.
Specifies whether an element has to be in the file or whether it is optional.
The element has to be in the file. This field is on exports for information only. The converter cannot detect missing mandatory elements.
The element is conditional.
Specifies the position of the segment according to the EDIFACT documentation. This property is only used for reference and on new lines to find the correct segment. The property does not affect the converter output.
Defines how often the element might be repeated according to the documentation. This does not affect the converter output and is not checked during the output.
Defines the segment tag. The segment tag is the value that appears in the file, typically three characters long, like BGM, UNB etc.
The name is currently not used and for reference only.
Export Composite
This property can be used to specify the agency responsible for the EDIFACT standard that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: UN. This does not affect the converter output.
This property can be used to specify the EDIFACT version that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: D96A. This does not affect the converter output.
You can set this property to the value True to only output the element if a specified source expression matches a specified filter.
This property is only available if the property Conditional Output is set to True. A filter to check the SourceExpr against. The source expression will be interpreted as text for applying the filter. The element will only show up in the output, if the value from the specified source expression is within the specified filter.
This property is only available if the property Conditional Output is set to True. This property specifies which value should be used to decide whether it matches the given filter and the element should appear in the output, or not.
Specifies whether the composite has to be in the segment or whether it is optional.
The composite has to be in the segment. This property is for information only and does not affect the converter output.
The composite is conditional.
Specifies the position of the composite according to the EDIFACT documentation. This property is important, as it also defines how to output the information in the file. The position is typically a number, like “010”. The number has to be divisible by 10. The same position can only be written once. The position property can also change the position of the mapping line.
Defines the tag of the composite. Typical tags are “C001”, the tag does not affect the processing of files. It is mainly used to automatically determine whether the element is mandatory according to the standard etc.
The name is currently not used and for reference only.
Export DataElement
This property can be used to specify the agency responsible for the EDIFACT standard that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: UN. This property does not affect the output in the file.
This property can be used to specify the EDIFACT version that is used. This is optional, but without this information the converter cannot automatically detect whether an element is, for example, mandatory. A typical value is: D96A. This property does not affect the output in the file.
Specifies the source of the data to be written. We have a separate section on the source expression property.
You can set this property to the value True to only output the element if a specified source expression matches a specified filter.
This property is only available if the property Conditional Output is set to True. A filter to check the SourceExpr against. The source expression will be interpreted as text for applying the filter. The element will only show up in the output, if the value from the specified source expression is within the specified filter.
This property is only available if the property Conditional Output is set to True. This property specifies which value should be used to decide whether it matches the given filter and the element should appear in the output, or not.
Specifies whether the data element has to be in the segment/composite or whether it is optional.
The data element has to be in the segment/composite. Setting an element to mandatory will result in generating the output, even if the value is empty. This can result in invalid files, as mandatory elements should always have a value. The converter will not create an error in this case. You should check that the required information for the export is present by using a check mapping.
The data element is conditional.
Specifies the position of the data element according to the EDIFACT documentation. The position is important for the converter to decide where to output the information. The position is typically a number, like “010”. The number has to be divisible by 10. The same position can only be written once. The position property can also change the position of the mapping line.
Defines the tag of the data element. The tag does not affect the processing of files. It is mainly used to automatically determine whether the element is mandatory according to the standard etc.
The name is currently not used and for reference only.
This property defines the data type according to the EDIFACT standard. This is for information only and does not affect the processing.
The following values are allowed:
Do not check the length of the output.
Create an error if the value is longer than allowed.
Create a warning if the value is longer than allowed and truncate the output to the allowed length.
Truncate the value, is it is longer than allowed.
Truncate the value, is it is longer than allowed and add “…” at the end to show that the value is not complete.
Create an error if the output does not have the specified length.
Truncate or pad the value, if it has not the specified length and create a warning.
Create an error if the value is longer than allowed. Pad the value if it is to short.
Truncate or pad the value to the given number of characters.
This property defines whether the field is variable or fixed length according to the EDIFACT standard. This is for information only and does not affect the processing.
The field is variable length.
The field has a fixed-length.
Defines how many characters are allowed in the data element.
You can select the data type of the data that you want to import.
The following values are available:
The field is automatically formatted, based on the source data type.
The field is formatted as text.
A date/time information. The format can be specified by a qualifier that represents the allowed DTM qualifiers from the EDIFACT standard. You can use the other Date and Date/Time formats, if you want to specify the format in another way.
The data is formatted as a date and time information. You can specify the format with the property Format String.
The data is formatted as date information. You can specify the format with the property Format String.
The data is formatted as a numeric value.
Only available, if the property Format Type is set to Date/Time.
You can use the lookup to see all available formats. The numbers are equal to the EDIFACT format qualifier for DTM fields.
Only available, if the property Format Type is se to Date/Time Format or Date format format string.
If the property Format Type is set to NAV Format String, you can enter the format string, like described in the AL / C/AL help.
If set to date/time you can enter a format string, like described in working with date/time format strings.
Only available, if the property Format Type is set to Number. If available, specifies that empty values should be outputted as an empty field instead of the default empty representation.
Only available, if the property Format Type is set to Number. Specifies which character should be used as a decimal separator. For EDIFACT you should probably not change the value.
Only available, if the property Format Type is set to Number. Whether thousands should be separated and if, which character should be used. For EDIFACT you should probably not change the value.
Only available, if the property Format Type is set to Number. The maximal count of decimal places that should be outputted.
Only available, if the property Format Type is set to Number. The minimal count of decimal places that should be in the output. This will automatically fill the missing places with zeros.
Only available, if the property Format Type is set to Number. Whether to output the positive/negative sign.
Only output the “-” sign.
Output the “+” and “-” sign.
Only available, if the property Format Type is set to Number. Whether to put the sign after the numbers. For EDIFACT you should probably not change the value and leave it at the default value.
You can maintain a list of example values. The mapping creation/update wizard will fill this list automatically from the example file.