|This is a detailed topic in our support portal in the Using migFx series and assumes that you have some prior knowledge or experience using migFx. If you want to know more about hopp tech and migFx, our comprehensive solution for complex data migration, please visit our web site hopp.tech.|
When working on a given Business Object in the migFx Source Map, you are asked to provide values for the Interface Fields that have been exposed by the Target Map Interface imported into the Source Map. In order to get a basis for calculating and assigning these values, you will define an Extraction Map on the Business Object. This Extraction Map describes how to extract the data from the Source System, you need in order to calculate the values to assign to the Interface Fields you are sending on to the Target Map.
The entire Business Object hierarchy and the Interface Fields of each Business Object is defined in the Target Map and then imported into the Source Map. To put it another way, the Business Objects, their fields and hierarchy are defined from the standpoint of the Target System. This is with good reason - after all it is the Target System that will remain after the data migration, where-as the Source System is typically left behind.
Nevertheless, it can be a challenge to mitigate differences between the Source System and the Target System. As an example, lets say the Target System has one Business Object Account covering different types of Accounts - like Checking Accounts, Guarantees, Portfolio Accounts etc. But there is no certainty that all Source Systems from which you may need to migrate has the same perception. Maybe in a given Source System, a Checking Account is fundamentally different from a Guarantee - maybe even residing in separate sub-systems.
In that case, when working on the Business Object Account in the Source Map, you are faced with the challenge of creating an Extraction Map for the Account that covers both the Checking Account and the Guarantee. This Extraction Map risks becoming overly complicated.
Business Object Copy
Luckily, in the Source Map you can create a copy of a Business Object resulting in two (or more) copies of the same Business Object. Each of these copies will have to provide values for the same Interface Fields as defined by the Business Object from the Target Map. But for each copy you can define different Extraction Maps.
You copy a Business Object from the context menu in the Project Explorer. Lets say we have mapped the Business Object Account to produce the Checking Accounts, and now we want to create a copy to handle the Guarantees.
First you create the copy of the Account Business object from the context menu. You get the choice to create an exact copy with all mapping or just the bare Business Object hierarchy:
Clicking the Ok button will create the Copy:
Notice that the new copy has been given the name Copy and now appears in the Project Explorer as Account [Copy]. Opening the new Business Object allows you to rename it on the General tab:
It makes sense to rename the new copy to Guarantee and also give the original the name Checking:
The steps above has resulted in 2 copies of the Business Object Account in the Source Map. Each copy outputs the same Business Object (with child hierarchy and Interface fields) as defined by the Target Map. But each copy can now extract the data needed from the Source System in it own way.
You can create as many copies of a given Business Object as you need. You can even copy a child Business Object if you need to create a separate Extraction Map:
Business Object copies in Director and Tracker
While a copy of a Business Object allows you to define a separate Extraction Map for the copy in Studio, copies of root Business Objects also appear separately in Director:
This allows the separate Export and also Import of each Business Object copy. Finally, the copies are also separated in Tracker:
The Additional Fields are a bit of a fringe use-case. Some background:
The fields of each Business Object (root and child hierarchy) that must be assigned values originates from the imported interface from the Target Map. It is the Interface Fields on each Business Object in the Target Map that appear on the same Business Object (and all copies) in the Source Map to be provided a value.
Advanced users of migFx use the solution not only to migrate data into their system from an external party. They also use migFx to merge separate businesses running within their system. As an example, a provider running a single, hosted banking system for multiple banks uses migFx when 2 of the banks merge. In this use-case, there is only one system - the Source System and the Target System is the same. The provider creates a Source Map extracting from the system and performs the transformations necessary to merge one bank onto the other.
Why Additional Fields
A benefit of this Source Map extracting from your own system is that you can use it for off-boarding - if you need to extract from you own system in order to deliver to an external party. For instance in the example above, if the provider loses a bank to another provider and needs to extract the data for that single bank from his multi-bank system.
The Source Map produces Business Objects and their fields as defined by the Target Map that is used when the provider migrates into his own system. But the external party receiving the data may have requirements for fields that are not defined by the Target Map as Interface Fields. This is where the Additional Fields come in.
Additional Fields are defined for a Business Object as an addition to the interface imported from the Target Map. This is done on the Source Map itself - the root node in the Project Explorer on the Target tab:
Select the Business Object (or child Business Object) in the Target Business Objects tree-view and add Additional Fields as desired. Names of Additional Fields must be unique among the combination of Interface Fields and Additional Fields for the Business Object. This is validated by Studio.
Once an Additional Field has been added in this way to a Business Object in the imported Target Interface, it will appear on all copies of the Business Object in the Source Map:
The Additional Fields appear in the same list as the fields from the Target Interface and are marked with a .
The Additional Fields will always be output by the generated Source Engine after the Interface Fields defined by the Target Engine. If the output is sent on to the Target Engine, it will only process the Interface Fields and ignore any Additional Fields.
The ability to copy Business Objects makes it possible for the Source Map to produce the Business Objects expected by the Target Map in multiple, different ways. This is a powerful way of mitigating structural differences between the Target System and a given Source System.
The copies appear separately in both Director and Tracker.
The Additional Fields allow you to add fields to the output from the Source Map in addition to the field required by the Target Map. At run-time, any Additional Fields are simply ignored by the Target Engine.