GIS/SI Map Editor: short overview

Map Editor looks like all the other mapping tools – source structure on the left side and target structure on the right. There are 3 ways for mapping the data from the source to target structure:

Simple Links – when you simply connect field from the input to the output. You can drag&drop a field from a left side to the right. If you are trying to connect fields with the different types (String to Number or Date), or from different levels (Header to Line Item) or from repeatable element to non-repeatable (and vice versa) it will show you an alert message:

Standard rules. These rules a kind of pre-set rules like XREFs, accumulators (when you need to use QTY field from every line items to calculate the totals), hardcode values, system date/time, counters and so on. You can apply standard rules to the fields/elements:

Extended rules. You can write your own rules using a pascal-like language. Also, you can use external libraries (written on Java) or share the same code between the maps. You can apply extended rules to both records/segments and fields/elements:

Also, you can create a pre-session and post-session rules which are applied before and after the mapping itself.

In a nutshell: how it works.
In the low-complexity maps we can use simple links only to connect source fields to appropriate target fields. For more complex cases (for example, then the hierarchical structures are different) we need to create temporary records on the source side, populate them with the extended rules and then link these temporary fields to the target structure.

You can use all of the 3 ways together – map qty from source to target with a simple link, convert KG into pounds (extended rules) and then accumulate the final value into total QTY variable (standard rules).


Both source and target documents are organized as the trees. They use different “icons” for records, segments, fields, elements, sub-elements and so on.

Every tree entity usually has:

  • name
  • description
  • optional/mandatory (C/M)
  • number of repetition
  • data type (String, Number, Date)
  • data limitation (4..10)

So, if you’re working on the outbound map you know that you must to map all the mandatory segments/elements. Or, you know that you can repeat this record up to 20 times and so on.

Activating/deactivating tree entities

Usually, companies don’t use all the records/fields available by the standards. Some structures might be huge and it’s hard to see the real structure behind all the unused elements of structures. MapEditor has ability to deactivate such elements and make them invisible.

There are two buttons – toggle ACTIVATE Mode and toggle DEACTIVATE mode – so you can quickly clean up the structure (for example).

Changing the base structure.

Next very helpful feature is ability to split repeatable elements into several non-repeatable ones with their own names. Let me give you an example: in outbound 810 Invoice we could have several addresses (N1 groups) – Bill To (BT), Ship To (ST), Sold To (SO) and so on. In the base 810 template we have one repeatable group:

N1 (optional, repeatable 0..200)
      N1-02            << name
      N1-04            << Partner ID
            N3-01            << address 1
            N3-02            << address 2
            N4-01            << city
            N4-02            << state
            N4-03            << zip
            N4-04            << country

so, in the map we need to somehow filter BT/ST/SO addresses and map them to the output. But BT address might be always be the same for example, and for ST address we might need to have all the street/city/state/postal code/country and for SO we might need to have the DUNS number only. So, instead of dealing with a no-name repeatable structure we can (and sometimes we must) split this structure into several non-repeatable named entities:

N1 (mandatory, BT)
      N1-02            << BT name, hardcoded
      N1-04            << BT Partner ID, hardcoded
N1 (mandatory, SO)
      N1-02            << SO name, mapped from E1EDKA1(AG)
      N1-04            << SO Partner ID
N1 (optional, ST)
      N1-02            << ST name, mapped from E1EDKA1(WE)
      N1-04            << Partner ID
            N3-01            << address 1
            N3-02            << address 2
            N4-01            << city
            N4-02            << state
            N4-03            << zip
            N4-04            << country

This also gives us ability to create the output in the necessary order. It’s not required in 99% of cases, but… some clients expect to have BT first, AG next and ST last.

…Another typical example is REF (X12)/RFF (UN/EDIFACT) structures.

How it’s organized in IBM Map Editor:

…And another example is ASNs (X12 856). They have hierarchical structure organized with using of the HL group. For example, for a typical Pick’n’Pack ASN it might be SOPI:

HL-S (Shipment) M 1
      HL-O (Order) M 1
            HL-P (Pack) M 1..1000
                  HL-I (Item) M 1..1000

but by default X12 856 has just an “anonymous” repeatable HL group. Since all of these SOPI levels have totally different meaning and different structures, it’s very helpful to split them into separate ones and even put HI-I group UNDER HL-P:

So, as you can see, instead of having dozens and dozens of entities we don’t need (but which are available by the standards) and “anonymous” repeatable elements we have nice and clear structure, with the names (and descriptions). It becomes absolutely clear how the output document will look like.

We don’t need to use it for the source structure to prevent the map rejecting the data when AG address goes first and WE goes next (for example).

Compiling the map.

IBM SI requires maps to be compiled. During compilation you can see all the errors (extended rules) and warnings (extended rules, simple links).


You can search through the structures

Testing the map

You can test your map from the MapEditor without promoting it to the server

Printing reports

You can print the report with the details of mapping – all the simple links, Standard/Extended rules. I use this function when I need to see essential mapping logic without digging into the structures.

Gennady Kim


14 thoughts on “GIS/SI Map Editor: short overview

  1. Hi Kim,

    Hope everything is going good on your end.I’m working on AI Work Bench 5.3. I ran through a problem with 810 map. We’ve generic map for few trading partners and custom maps developed for some trading partners. I’m working on generic map which is working fine in Test but fails in production. In addition to this , I’ve run this map in production for trading partner’s 810 file that are using custom map and it translated fine. But it’s failing for those trading partners data that are using that map.For example:
    Say ,Our company is XYZ is using 810_xyz map.We’ve 4 vendors a,b,c,d. Here a,b are using 810_xyz map.C has 810_c custom map.D has 810_d custom map. When i tested this map ‘810_xyz’ in test for a,b,c,d’s data it worked fine in test environment.
    It is failing for a,b in production while it got executed fine for c and d in production environment.
    Please advise if you’ve any suggestions.

  2. Hi Kim,

    You gave very good information which is very needful ๐Ÿ™‚
    May i know the difference between GXS and Sterling integrator, Gentran Integration Suite?

    please reply back to me.
    Thanks In Advance.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s