In relation to the iterative process of migFx - illustrated below - in the last section of exercises you have been in the step Test & Feedback, analyzing the Events that were fired during the iteration of the Card Business Object.



In fact, in earlier exercises have covered each of the steps in the process, so there is really nothing new here. The aim of this section of the training exercises is to tie it all together by letting you solve some of the Events that occurred in your iteration of Card as well as in earlier iterations of Customer and Account.


Let's start out with the last Event I0025 - Card Status ({0}) is unknown of the previous exercise. A large count of Card Business Object instances are rejected due to an unknown CardStatus Blocked. It turned out the root cause is that this CardStatus is missing in the static Valueset CardStatus in the Studio Target Map.



Agreed resolution

Let's assume you - or other members in the migration team - has had a dialogue with a specialist from the Target System. It turns out that the CardStatus Blocked is actually valid in the Target System, but is is just no longer used actively. This is the original reason the CardStatus was not added to the Valueset. However, since the CardStatus is in fact valid, the migration team has decided simply to add it to the Valueset to resolve the Event.


Another point is that the Severity Reject Root for an unknown CardStatus is deemed too high. In case of an unknown CardStatus only the CardStatus child Business Object instance should be rejected, not the entire Card. So the Severity of the Event must be changed from Reject Root to Reject Child



Modify Mapping

  1. Open the Workshop Target Map in Studio.

  2. Locate and open the Event I0025 and change the Severity from Reject Root to Reject Child


  3. Open the Valueset CardStatus and add the CardStatus Blocked

  4. Validate and ensure you have no validation errors (alt-v or Main Menu -> Project -> Validate)

  5. Publish to Generator (alt-g or Main Menu -> Project -> Publish to Generator)
    1. The path in the publish dialog should already be correct as you have already set this up in an earlier exercise - Studio remembers this path. If not, this is the correct path: D:\MigFx\Workshop\Training\Trainees\TraineeXX\MigFx\VisualStudio\Workshop\Projects\Workshop\Workshop.TargetEngine\PublishedTarget.xml where XX is your Trainee number


    2. Click the Publish button to publish the mapping to the Generator
  6. Check in your changes


It is worth noting that the static Valueset CardStatus was modified by typing the new CardStatus directly in Studio. The data content of all static Valuesets are 'baked into' the generated Target Engine. This has implication for a later step in this exercise, when the migration affected Cards is iterated.



Generate Code

  1. Open the Workshop Solution in Visual Studio

  2. Locate and right-click the Workshop.TargetEngine project in the Solution Explorer

  3. Select MigFx: Generate Code... in the context menu

  4. The dialog show the path to the published file in the project. This should be the same path as above in Studio and the dialog should show that the file is very new, as you just created it from Studio. If the file is older than expected, the path in Studio may be wrong. In that case, copy the path from the Generator dialog and go back to Studio and publish again, this time pasting the path into the publish dialog


  5. Click the Ok button to generate the engine code



Rule Implementation

In this case all the modifications necessary have been done by modifying in Studio. There are no manual rule implementations to modify.



Deployment & Execution

Now the new code for the target Engine has been generated, it's time to deploy the engine in the migFx runtime.


Deployment

  1. Locate and right-click the Workshop.TargetEngine project in the Solution Explorer

  2. Select MigFx: Deploy... in the context menu

  3. Leave the Destination drop down on Training and click the Ok button to deploy the Target Engine


The Target Engine is now deployed and ready to go. 


Execution

Now it's time to execute a migration of the Cards that fired the Event I0025. 

  1. Open the Workshop Training Track in the Director:


  2. To load the new Target Engine just deployed, restart the track if it is running or start it if it is not running. Do this from the panel Execution / Track


Now the newly generated and deployed Target Engine is actively running in the track and ready to execute. However, since we modified the data content of the static Valueset CardStatus above, the Target Engine carries the modified data compiled into the engine. There is a misalignment between the Valueset data in the migration database of the Track, and the Target Engine. 


But there is no danger of executing anything with this misalignment. If any job is submitted to execute the Target Engine to import any Business Object now, the migFx runtime would detect the misalignment and fail the job like this:


  


The remedy to avoid this type of error is to run the Setup of the Target Engine from Administration / Manage:



Click the Submit button to submit the Setup job and go to the Job List to ensure the job completes successfully.


Finally everything is ready to iterate the import of the Cards that fired the Event I0025. The Director makes it trivial to pick out just these Card to import: 

  1. Go to the panel Target / Events
  2. Select the Event I0025 on the Card Business Object

  3. Click the Import button to submit a job to import the affected Cards


  4. Go to the Job List to follow the progress of the job. Note that already now - real-time while the job is executing (click Refresh)- you can verify that the Cards are no longer being rejected


  5. A small number of Cards are still being rejected. By clicking the Events... button you can see the rejecting Events fired by the job and verify, that these are rejected by a different Event (I0023):

    By changing the lowest Severity displayed in the drop down and clicking the Refresh button you can monitor the the events fired by the job in real-time as the job executes.



Publish Result

When the job finishes the iteration of the Cards that fired Event I0025 is finished. It is now time to publish the results of the iteration to the Tracker.

  1. In the Director, go to panel Administration / Manage
  2. Check the Tracker Publish radio button and click the Submit button


  3. In the dialog, select the Tracker tab, move the Card Business Object from the Available to the Selected list box and click the Ok button to submit the Publish job


  4. Verify in the Job List that the job completes successfully



Test & Feedback

Go to the Tracker and view the Event list for Card:


 

The count for Event I0025 is now zero and the state has changed to Done?


In the exercise introducing the Tracker interface, this state - as well as the other list states - are explained: Exercise 5.2 – Get Familiar with the Tracker User Interface.


The question mark in the state Done? signals that the Tracker is wondering what's going on here. The Event is Done, because it no longer occurs. But in the last set of exercises, the state of the Event was set to In progress. In order to help the Tracker out of its confusion, you need to update the state of the Event to Resolved.


Click the Event Message to enter the Event Editor and change the state from In Progress to Resolved. Click the Update button.


 

When returning to the Event List, the Event I0025 is no longer visible, because it has been hidden by the state filter Not Done



Change the state filter to (all) to view the Event and see that the List State is now Done, without the question mark. 


In case you are wondering what happened to the Events I0011 and I0023, they have in an earlier exercise been marked as derived from other Events and are because of this filtered away by the Derived filter. They are still there, check the Derived filter to make them appear. 




What happened here?

Congratulations, you have just completed a complete iteration cycle of migFx! 


Combined with the last section of exercises, we hope this has given you an impression of the unique capabilities of migFx:

  1. Robust support for the discovery and analysis of Events and issues in the migration
  2. Ease of locating correcting the root cause in the mapping 
  3. Rapid process of correcting the mapping, generating the code and deploying the new engine with complete confidence that the modifications in the mapping is correctly implemented
  4. Ease of iterating the migration for just the affected Card Business Objects - and nothing else