Level Versions
Version 1
Original version, used the "workfile", mappings were based on a flat file where each data element had it's own unique string which indicated it's structure in message and the repeat value for each segment and group in the message, these strings look like "0-1-22-3-1-1-0".
Version 2
Similar to version 1, but resolved a complication where items at the root level were referred to as level 0 or 1 depending on their repeats.
Version 3
Does not use the work file, instead the message is wrapped in an Xml structure. Mappings are performed using XPath expressions. The way a destination segment/group repeats is established by looking at all the mappings for that segment, finding the lowest level segment/group in the source that is mapped to and setting the destination to repeat for each of those source segments. If the lowest level is already assigned to another segment, it would use the next level and so forth.
The repeat map function was then introduced to override the automatic mapping establishment.
Version 4
Is different from version 3 in the following ways.
Repeats are not automatically established, each segment/group must be explicitly set to repeat for one in the source message.
Repeating segment node sets can be specified using xPath, meaning that subsets can be specified, e.g. you can specify a destination segment to repeat for all segments in the source where one elements starts with "R".
If two subsequent segments in the destination standard repeat for an identical segment in the source, then the 'counter' is reset, meaning that it will run through twice, where in version 3, it would have skipped over the subsequent segment completely.
Version 5 (Planned)
Further testing is required, but this will be a combination of version 3 and version 4. It will work as follows:
Repeats will be automatically established (as version 3) and shown in the admin.
Repeats can be overridden and specified using xPath (as version 4)
When this is completed, versions 1,2,3,4 will be updated to version 5 and the level selector will be removed.