Reason

Using EzScript commands, a Catalyst user can automate tasks such as Creating a TTK projects, Leveraging translations and Extracting translated files any number of times for all the languages supported in his/her Localisation project.

Those ezScript commands are integrated within an automation script one after the other until all steps for all languages are completed.

Separating and grouping the ezScript commands for each language to run in parallel becomes the next logical step to improve the automation time.

However, running several ezScript processes in parallel can lead to potential problems when loading different User profile settings for each language. This is because each iteration of an ezScript command will run an instance of Catalyst on the machine sharing the same registry entry (which holds the User profile settings).

So for example, while running a Japanese Pseudo Translate command using ezScript, another command is issued in parallel to load a user profile setup for French pseudo translations. The result will be that French Pseudo translations will be applied to the Japanese project because the settings have been overwritten.

 

Solution

Using JobID, you can setup individual language flows initiated from a master batch or script. Each flow using a unique JobID uses separate settings held in registry.

 Running ezScript in parallel will require several Catalyst licenses to be available. One license per instance of Catalyst ran in parallel. This is possible with using ANLM (Alchemy Network License Manager) which can distribute multiple licenses across your network.

 

The diagram at top right represents an automation script in which the master process triggers 3 sub processes in parallel, using 3 Catalyst licenses. Each sub process manages one language. It loads a separate User profile, creates a TTK project, Leverage from a TM and extracts the translated files.
With using JobIDs, although the 3 ezScript flows are run in parallel (i.e. simultaneously) there is no interference with each other. Each profile settings are kept independent.

If for example the JobIDs 171, 172 and 173 were used, the registry would look like this once the JobIDs are started (see right).

The registry entries are then discarded once the JobID is ended. Leaving the default settings (in light blue) untouched.

 

Log files and exit codes

Monitoring the output of any automation is paramount. Because, by default, ezScript commands write all logs to ezScriptBatchLog.txt located in "C:\Users\Public\Alchemy Software\Catalyst XX", running several instances of CATALYST in parallel will potentially try to access the same file at the same time.

It is thus necessary, imperative even, that separate log files be used for each JobID. In our example using JobID 171, 172 and 173, we run the Load profile command with the ezLogFile: switch to define a unique log file.

"%CatalystEXE%" /C "C:\French\BuildOpts.ini" /load /JobID:171 ezLogFile:"C:\Logs\french_log_ID171.txt" /WRITE

 

ezScript errors

EzScript commands complete outputting an exit code to the log file:

 Catalyst has exited with code 0

 

Review the exit code on this page: ezScript Return codes

Note, if Catalyst returns a large negative value as the exit code, it usually means it crashed. Try replicating the steps in the interface to troubleshoot the problem.

 

 

Products or Versions Affected

  • Alchemy CATALYST 12.0  and greater

  • Alchemy Network License Manager 3.0 and greater