How MetaBots are migrated
- Updated: 2022/12/04
When you migrate a MetaBot to Automation 360, equivalent bots are created for the various logic available in the MetaBot, except for application screens. After successful migration, each logic in a .mbot file is converted to a Task Bot file.
A MetaBot contains assets and logic. Assets are the application screens or DLLs that are used to automate a task on an application. Logic is a set of commands to perform an operation and interact with other logic and bots.
- Before you migrate .atmx or .mbot using the Bot Migration Wizard, ensure that all the
Logics, dlls, .mbots, .atmx files and other dependencies related to the
MetaBots or Task Bots that were
previously migrated are not in the Checked-out
state. Otherwise, the following error occurs during re-migration:
Bot is not ready for migration.
- If the bot that you are migrating has been checked out or has been migrated previously, ensure that the bot to be migrated is in the Checked-in state. Also, to reuse the migrated bot, in the Bot Migration Wizard, select the Overwrite if a bot with same name exists option. To use an updated bot, disable the Overwrite if a bot with same name exists option.
- Converts MetaBot logic to corresponding Task Bots.
- Maintains the folder structure of the MetaBots after it is migrated. The new folders created in Automation 360 contain the Task Bots for each logic migrated to Automation 360.
- Updates the Task Bots that use MetaBot logic to
refer to the new Task Bots that are created for the migrated
MetaBot logic.
You do not have to update the Task Bots manually.
Features such as use of DLLs, input and output variables, and Execute permission which were available only for MetaBots are now available for all Task Bots.
- MetaBot name: MetaTask
- Assets:
- Login screen
- General.dll
- DLL\Binary.dll
- Logic:
- Common
- Process1\Connect
- Process1\Disconnect
- Process1\Operations\Numeric
Benefits of reusable Task Bots in Automation 360
MetaBot migration process
The system creates a folder with the same name as the MetaBot within the My MetaBots folder available in the Bots folder, and the same folder structure as Enterprise 11 is retained. For example, if the folder structure in Enterprise 11 is Accounts/Tax/MetaTask.mbot, the system retains the folder structure as Accounts/Tax/MetaTask.mbot. All the components of a MetaBot are stored in the folder created for that MetaBot. In this example, the system creates the MetaTask folder in the Bots\My MetaBots folder and stores all the components the MetaBot in that folder.
Enterprise 10 bots that directly call DLLs and screens in a MetaBot without using MetaBot logic are migrated to the equivalent Task Bots and actions in Automation 360. In Enterprise 10, if a DLL that returns a list or array type parameters and the output of that DLL is mapped with a value type parameter, an extra space is added at the start of the output value. The extra space is not added to the output value after the bot is migrated.
Migration of DLLs
The system does not maintain the folder structure for assets in order to maintain the references between the DLLs. For the above example, General.dll and Binary.dll are stored in the MetaTask folder although the Binaary.dll is stored in the DLL subfolder.
See the following video for information on migrating MetaBots with DLLs to Automation 360:
MetaBot migration process overview
- Concept of DLL session in the migrated bot
-
The following DLL changes are observed in the migrated bot:
- When you
migrate a Task Bot with multiple MetaBots that contain DLLs with the same name, a
session name using the name of the first DLL is created. When
the subsequent DLL with the same name from another MetaBot is migrated, the ID of the folder in
which the DLL resides is used as a session name.
For example:
M_DLL_Session-<MetabotFolderId>_<DLLName>.
- When the Execute DLL command in Enterprise 11 is migrated to Automation 360, the command is converted to the Open and Run function actions and the Dll Session does not exist If condition.
- The DLL session name is created by appending the DLL name to the "M-DLL-Session-" token. For example, if the DLL name is Sample.dll, after migration, the DLL session name will be M-DLL-Session-Sample.
- The DLL session represents the DLL it is using to run the DLL functions.
- To run multiple functions from the same DLL, the same DLL session name must be provided in the Session name field.
- When you
migrate a Task Bot with multiple MetaBots that contain DLLs with the same name, a
session name using the name of the first DLL is created. When
the subsequent DLL with the same name from another MetaBot is migrated, the ID of the folder in
which the DLL resides is used as a session name.
- Condition to check for the existence of a DLL session in a migrated bot
-
After migration, when the same DLL is used across multiple logics of the same MetaBot, a condition to check if a DLL session is already open is added for every DLL to ensure that the DLL session is opened only once. Some DLLs that are used in MetaBot share sessions or global variables across multiple DLL functions. If such DLL functions are called from different logics, sharing of such sessions and variables is possible only if the DLL session is opened only once and a condition is added to check if a DLL session is already available. If a DLL session is missing, Automation 360 creates a DLL session of type Global.
- What happens to a migrated Task Bot that has reference to two DLL functions from same or different logics of a MetaBot?
-
In Enterprise 11, if a Task Bot was referencing to a logic that called two functions using the Run Logic command, in Automation 360, a DLL session will be created in the Task Bot (logics are migrated as Task Bots) and will be used in the Run function action. Also, when a Task Bot refers multiple logics that calls multiple functions, the Task Bots will use the same DLL session name to execute the functions. The DLL session condition check will ensure that only one session is created across such logics.
For example, if a Task Bot is using MetaBot1 Logic and MetaBot2 Logic where MetaBot1 Logic and MetaBot2 Logic are calling multiple functions, when you run the Taskbot, a DLL session name is created to run MetaBot1 Logic. The DLL session name that was created to run MetaBot1 Logic will be used to run MetaBot2 Logic as well.
Migration of screens
Each screen in a MetaBot is converted to a windows variable and the actions performed on the screen are migrated to the equivalent actions in Automation 360.
Browser |
Internet Explorer
Google Chrome (for object play type only) |
Screen type | Standard |
Technology | Java, HTML, MSAA, .Net, UI Automation (for object play type only) |
Play type | Object, Image, Coordinate |
You can also migrate MetaBots with screens that are captured in the Citrix environment from applications that are based on Java, UI Automation, and MSAA technologies.
The linked objects on a MetaBot screen that are captured using the object play type are migrated to the Capture action of the Recorder package. The source object is displayed in the Main tab and the linked object is displayed in the Anchor tab of the Capture action.
Play type | Enterprise 11 Action | Automation 360 Action |
---|---|---|
Object | Get Property, Get Total Items, Get Selected Index, Get Selected Text, Select Item by Text, Select Item by Index, Click, Left Click, Right Click, Double Click, Set Text, Append Text, Get Property, Check, Uncheck, Toggle, Expand, Select, Get Status, | Migrated to the Capture
action of the Recorder
package. The GetAllChidrenName and GetAllChidrenValue commands in Enterprise 11/Enterprise 10 return string type variable values. In Automation 360, they return list values. The migration process joins the list values and stores them into a string variable to maintain consistent bot behaviors across releases. The Object Cloning command with the
Export to CSV action in Enterprise 11/Enterprise 10
is migrated to:
|
Play type | Enterprise 11 Action | Automation 360 Action |
---|---|---|
Image | Left Click | Migrated to the Find window in window action of the Image Recognition package with the Left Click selected from the Action list. |
Right Click | Migrated to the Find window in window action of the Image Recognition package with the Right Click selected from the Action list. | |
Double Click | Migrated to the Find window in window action of the Image Recognition package with the Double Click selected from the Action list. | |
Middle Click | Migrated to the Find window in window action of the Image Recognition package with the Left Click selected from the Action list. | |
Set Text | Migrated to:
|
|
Get Text | Migrated to the Capture area action of the OCR package. | |
GetVisibility | Migrated to IF action with condition Image Recognition:Find Window in window. The GetVisibility action returns a True or False value based on whether the object in an image is visible or not. Similarly, the condition within the IF action is evaluated based on whether the window is found in another window. The result is stored in a temporary variable. |
Play type | Enterprise 11 Action | Automation 360 Action |
---|---|---|
Coordinate | Click | Migrated to the Click action of the Mouse package with the Left Button and Click options selected. |
Left Click | Migrated to the Click action of the Mouse package with the Left Button and Click options selected. | |
Right Click | Migrated to the Click action of the Mouse package with the Right Button and Click options selected. | |
Middle Click | Migrated to the Click action of the Mouse package with the Middle Button and Click options selected. | |
Double Click | Migrated to the Click action of the Mouse package with the Left Button and Double click options selected. | |
Set text | Migrated to:
|
|
Get text | Migrated to:
|
Play type | Enterprise 11 action | Automation 360 action |
---|---|---|
Coordinate | Click | Migrated to the Click action of the Mouse package with the Left Button and Click options selected. |
Left Click | Migrated to the Click action of the Mouse package with the Left Button and Click options selected. | |
Middle Click | Migrated to the Click action of the Mouse package with the Middle Button and Click options selected. | |
Double Click | Migrated to the Click action of the Mouse package with the Left Button and Double click options selected. | |
Set text | Migrated to the following:
|
|
Get text | Migrated to the following:
|
Play type | Enterprise 11 action | Automation 360 action |
---|---|---|
Text | Click | Migrated to the Find window in window action of the Image Recognition package with Left Click selected from the Action list. |
Left Click | Migrated to the Find window in window action of the Image Recognition package with Left Click selected from the Action list. | |
Double Click | Migrated to the Find window in window action of the Image Recognition package with Double Click selected from the Action list. | |
Set text | Migrated to the following:
|
|
Get text | Migrated to the Capture area action of the OCR package. |
Migration of logic
Each logic in a MetaBot is converted to a Task Bot and each command used in a logic is converted to the equivalent action in Automation 360. The variable used in a logic is converted to an equivalent variable in Automation 360. Credential variables used in the logic are migrated to Automation 360 and used in the equivalent actions in the migrated bots. If the Parameter Type of a variable is input or output, the same is maintained after that variable is migrated to Automation 360. For example, if the Parameter Type of the variable ABC is set as Input, the variable ABC created in Automation 360 has the Use as input option selected after it is migrated. The system retains the internal folder structure of the logics. For the above example, all the migrated logics are stored as listed in the following table:
Play type | Enterprise 11 Action | Automation 360 Action |
---|---|---|
Object | Get Property, Get Total Items, Get Selected Index, Get Selected Text, Select Item by Text, Select Item by Index, Click, Left Click, Right Click, Double Click | Migrated to the Capture action of the Recorder package. |
Image | Left Click | Migrated to the Find window in window action of the Image Recognition package with the Left Click selected from the Action list. |
Right Click | Migrated to the Find window in window action of the Image Recognition package with the Right Click selected from the Action list. | |
Double Click | Migrated to the Find window in window action of the Image Recognition package with the Double Click selected from the Action list. | |
Middle Click | Migrated to the Find window in window action of the Image Recognition package with the Left Click selected from the Action list. | |
Set Text | Migrated to:
|
|
Coordinate | Click | Migrated to the Click action of the Mouse package with the Left Button and Click options selected. |
Left Click | Migrated to the Click action of the Mouse package with the Left Button and Click options selected. | |
Middle Click | Migrated to the Click action of the Mouse package with the Middle Button and Click options selected. | |
Double Click | Migrated to the Click action of the Mouse package with the Left Button and Double click options selected. | |
Set text | Migrated to:
|
Play type | Enterprise 11 Action | Automation 360 Action |
---|---|---|
Object | Get Property, Get Total Items, Get Selected Index, Get Selected Text, Select Item by Text, Select Item by Index, Click, Left Click, Right Click, Double Click | Migrated to the Capture action of the Recorder package. |
Image | Left Click | Migrated to the Find window in window action of the Image Recognition package with the Left Click selected from the Action list. |
Right Click | Migrated to the Find window in window action of the Image Recognition package with the Right Click selected from the Action list. | |
Double Click | Migrated to the Find window in window action of the Image Recognition package with the Double Click selected from the Action list. | |
Middle Click | Migrated to the Find window in window action of the Image Recognition package with the Left Click selected from the Action list. | |
Get Text | Migrated to the Capture area action of the OCR package. | |
Coordinate | Click | Migrated to the Click action of the Mouse package with the Left Button and Click options selected. |
Left Click | Migrated to the Click action of the Mouse package with the Left Button and Click options selected. | |
Middle Click | Migrated to the Click action of the Mouse package with the Middle Button and Click options selected. | |
Double Click | Migrated to the Click action of the Mouse package with the Left Button and Double click options selected. | |
Get text | Migrated to:
|
Migration of Run Logic command
The Run Logic command is used in a bot to run a specific logic from a MetaBot in Enterprise 11. When you migrate that bot, the Run Logic command is converted to the Run action of the Task Bot package.
The input variables are converted to equivalent variables in Automation 360 and the output variables are migrated to a dictionary variable. You use the key in the dictionary variable to use the associated value. The dictionary variable might contain other variable types, for example, list, value, integer, and array. You can map the variables available in the dictionary variable with other variable types. For example, you can map the list type variable available in the dictionary variable with the list, value, and array type variables.
Migration of Execute command
The DLLs in the MetaBots use the Execute command to run a function from that DLL. After migration to Automation 360, each Execute command is converted to Open, Run function, and Close actions of the DLL package. Information about which function to run from the DLL, which parameters to use, and other details in the Execute command is migrated to the Run action.
MetaBot variable type | DLL function return type |
---|---|
Value | Two-dimensional array, List, Byte in array (Byte[]), unsigned integers (UInt32, UInt64), signed integers, IDictionary, IList, and unsigned integers in array (UInt16[], UInt32[], UInt64[]), signed Byte |
Array | Two-dimensional array, List, unsigned integers (UInt16[], UInt32, UInt64), signed integers, IList, signed Byte and IDictionary |