Leading up to this point, you have been expanding the mapping in Studio and the generated and manual code in Visual Studio to include the Business Object Card and related items, such as Valuesets, Constants rules and Bags. You now have two brand new engines built, ready and rearing to go. The next step is to get them deployed and loaded in the runtime environment and setup the Director runtime so it gains knowledge of all the new stuff.
In most real life production setups, the runtime environment includes a master server and one or more migration servers. The master server serves as a repository for common files as well as common master databases of the runtime environment. A migration server is a (normally quite powerful) server used to execute the actual migration. In addition the Studio and Visual Studio will be running on the individual Workstation of each team member.
This training setup is of course simpler - everything runs on the same machine.
|Deploy||Deploy is done using the migFx extension in Visual Studio. The engine is built (compiled) and the resulting libraries are copied to a shared folder on on the master server |
|Copy & Load||On the migration server, the runtime must be stopped and restarted, as the running instance has the old version of the engine libraries loaded.|
|Setup||Once the new engine libraries are loaded in the Runtime, the engine and the runtime must be synchronized.|
Apart from the first initial step of deploying the engines, you will now leave Visual Studio behind and proceed to the next component in migFx: The Director. The Director is the Windows application that you will use to control and manage ('direct') the execution of the migration in the Runtime running on the migration server.
A quick note before you start: Form now on, we assume that the preceding exercises in Studio were completed correctly. If at any point you realize that you need to go back to a previous exercise to correct something in Studio, please remember the complete path any correction in Studio needs to go through in order to be operational in the Director.
- Validate without any validation errors
- Publish to Generator
- Visual Studio
- Generate Engine
- Deploy Engine, verify that deployment succeeds
- Restart Track
- Run Setup of relevant Engine
- Check that Setup job completes sucessfully
Deploy to build the engine and deploy it to the shared folder on the master server.
- Right-click the class library project in Visual Studio and select MigFx: Deploy in the context menu (for the Source engine either one will do)
The migFx extension makes it possible to deploy to several environments (defined in the MigFx.config file). In this training setup there is only one, so just leave the Destination drop down on Training and click the Ok button
The migFx extension will now build the engine and deploy it to the selected environment. The only thing you have to do is to verify in the Visual Studio output tool window that the log ends with Deploy succeeded.
Remember to Deploy both the Source- and the Target Engine
That's it, you have now deployed your two new engines to the Runtime environment. Now is the time to leave Visual Studio behind and jump to the Director to start using the engines.
The Director is available in the Windows notification area in the right-hand lower corner of your screen.
- Click on the Director iconto open the Director context menu
- Notice that the context menu contains a menu item for each of the 3 projects in the training setup.
- For each project the Director could have several so-called Tracks, exactly corresponding to the Destination in the Deploy step above. However, in this training setup there is only one track for each project.
- Select Workshop -> Training (HOPP01 – Track 1) to open the Director for that track
Take a little moment to familiarize yourself with the Director interface. It is quite simple.
|1 - Indicators||The indicators show whether the Service and the Track are running (green) or stopped (red)|
|2 - Menu||The Director menu is presented as a tree view. Simply click any node in the tree view to select that menu item|
|3 - Selection area||The selection area will always show exactly what you have selected in the menu and are currently looking at|
|4 - Client area||The content of the client area changes with whatever you have selected in the menu. It is in the client area you get access to all the information and actions you need to execute the migration|
Refresh is not automatic
In most of the panels in the Client Area of the Director, your will see a Refresh button in the lower, right corner. Using the Director, you are really working in a client application sending instructions to the Director Runtime running on a server. In this simplified training setup, the Runtime is executing on the same machine you are using. But in a real life scenario, the Runtime will typically execute on a different server.
The Director Client application is communicating with the Runtime via a web service, and due to this fact the panels in the Director application do not update automatically. You have to click the Refresh button yourself to get the latest news from the Runtime.
So, remember, if you again are scratching your head because some panel in the Director does not show what you expect: Click the Refresh button before you do anything else.
Start (or restart) the track
If the track is stopped (red) you need to start it and if it is already running (green), you need to restart it in order to copy and load your new engines.
- Select Execution/Track in the menu
- Click the Start or Restart button
The track is now started, has loaded your new engines (provided of course, that you have deployed the engines in the previous step) and is idling, ready to execute your wishes!
Next step is to run 2 setup jobs to setup the Source-and Target engines in order to synchronize the engines and the runtime
- In the menu, select Administration/Manage
- Check these radio buttons
- Source Engine: Setup only
- Target Engine: Setup
- Leave all other on Skip
Click the Submit button
The Director will now show a dialog previewing the changes in the runtime. In this case the changes are
for the Source engine
The new Source metadata structure Src.DebitCard
The new View CardStatus
The new Business Entity Card
for the DataServices
Valueset TranslateCardTypes from the Source engine
Valuesets CardTypes and CardStatus from the Target Engine
You need to click the Accept button on both the Source preview tab and the DataServices preview tab in order to enable the Ok button
Click Ok and the Director will submit two jobs, one for each engine
The preview for the Source Engine will fail, if the Source Engine was not deployed in the previous step. In this case you may see an error dialog like this:
If you experience this error, please go back to the previous step and ensure you have successfully deployed the Source engine. If not, you must deploy the Source Engine and restart the Track before trying to run the Setup of the Source Engine again.
In the Director job list you can follow the execution of the 2 jobs and check that they completed successfully
- In the Director menu, select Execution/Jobs
- The 2 newest jobs are at the top of the list
- In the 2 panels to the right of the job list, you can see
- The parameters for the job
- The results of the job execution
- Click the Instances button to see the job log. If a job fails, this is the place to look for an explanation
- The job list does not refresh automatically. You must click the Refresh button
What happened here?
You have built and deployed the Source- and Target engines to the Director runtime environment. By restarting the track, you cause the track to load the new engines and finally by running the 2 setup jobs you have synchronized the engines and the runtime so the latter now knows about the new the new items you have added in Studio
If you look at the Business Objects to Export (select Source/Objects in the Director menu and click the Refresh button, you will se that the new Card Business Object is now present, but that nothing has been exported yet.
Card is marked red, because it is depending on data from the Source System for Src.DebitCard and also the view CardStatus, both of which have not been loaded yet. So it would not make any sense to export the Cards before loading these.
Luckily that's exactly what you are going to do in the next exercise.