In this exercise, you are going to complete the mapping of the Target Objects in the Business Objects Card and CardStatus (finally...).


You will be using the two Mapping Rules you just created in the last exercise - but also some Mapping Rules already defined in the Target Map by some of your team mates. You will also use the Value Type Identity to assign a unique value to the CardId Target Field.


Finally you are going to use the 3 Events you created even earlier to handle the Flags raised by your new Mapping Rules.


Map the remaining Target Fields in the Target Object Tgt.Card

  • Open Tgt.Card on the Document canvas, if not open already
  • Map Target Field CardId using the Value Type Identity (see below for an explanation of this Value Type)
  • Map Target Field CardTypeId using your new rule GetCardType and the new Event I0024
    • Select Calculated in Value drop down and select rule GetCardType
    • Map Parameters 
      • BankId to Interface Value Card.BankId
      • CardType to Interface Value Card.CardType
    • Set the Not Found Flag to Action User Event, and select the Event I0024 you created earlier.
    • As event parameters, map Interface Value Card.CardType
  • Map Target Field CreatedTs using existing rule GetNewTs.
    • Rule GetNewTs
    • Parameters 
      • TsInterval = Literal 4
      • TsDate = Constant TsDate


Now the complete mapping of Target Object Tgt.Card should look like this


  • Save (ctrl-s)



Map the remaining Target Fields in Target Object Tgt.Card_Status.

  • Open Target Object Tgt.Card_Status in canvas, if not open already
  • Map StatusId using existing rule GetCardStatus and new Events I0025 and I0026
    • Select Calculated in Value drop down and tab right to open calculated dialog
    • Select rule GetCardStatus
    • Map Parameters 
      • CardStatus = Interface value Card.CardStatus.CardStatus
      • CardActiveDate = Interface value Card.CardActiveDate
      • CardInactiveDate = Interface value Card.CardInactiveDate
    • Handle Flags (both the same)
      • Unknown CardStatus on card in use and Unknown CardStatus on inactive card
        • Action User Event, select the Event I0025 you created earlier. The Event comes with the Severity Reject Root and Receiver Migration, leave these values 
        • Event parameters: Interface values Card.CardStatus.CardStatus

  • Map CreatedTs using existing rule GetNewTs exactly as you did on Tgt.Card above


Now the complete mapping of Target Object Tgt.Card_Status should look like this


  • Save (ctrl-s)



What happened here?


Well, first of all you completed the Target Field mapping of both your new Target Objects Tgt.Card and Tgt.Card_Status. Congratulations!


And you used the Value Types Identity and Calculated,  so it has been added your arsenal. The Value Type Guid is not used in these exercises. Bit it is similar to Identity and explained here.

  • Interface
  • Literal
  • Target
  • Constant
  • Relationship
  • Calculated
  • Identity
  • Guid



Value type Calculated

The Calculated value means the you use a Mapping Rule to calculate the value of the Target Field. So you have brought into use the 2 Mapping Rules you created earlier. And by doing so you also had to handle the Flags your rules can raise. And that made use of the 3 Events you also created earlier tying all these exercises together in a neat little bundle. 


In addition of course you also used some Mapping Rules that your kind team mates (us) had already created.


Value type Identity

When you use the Value Type Identity on a Target Field, migFx will at run time assign an Integer value to the Target Field. This value unique for the Target Field. This uniqueness is at run time defined by the values of all the Interface Fields defined as Keys on the Business Object ancestors of the Target Object. In addition the internal ids of the Target Object and the Target Field in the Target Map is taken into consideration, so the Identity value is globally unique for each Target Field.


The beauty of it is that migFx will at run time keep assigning the same unique value each time the migration of the same Business Object is iterated. 


Value Type Guid

In addition to the Identity Value Type, the Target Map also provides the Guid Value Type. This Value Type is very similar to the Identity Value Type, but instead of assigning a unique Integer value, it assigns a unique Guid (Microsoft Global Unique Identifier) value to the Target Field