Unmapped Activities

Updated by Luka Koczorowski

There are some scenarios where Blueprint cannot determine if an action is a custom action, unmapped, or unsupported. In those scenarios we have a Rule call "unmapped actions" which is described below.

Ensure you have the correct scope and source RPA tool selected, and that you have generate Rules. See Using Rules for details instructions

Using Rules Dashboard

Automation Anywhere

Under the "Custom Actions" you will see any unmapped actions have been detected by the Rule opportunity generator

There are several mapping options a user has when working with unmapped actions

Map to New Flow

For Automation Anywhere the business logic behind unmapped actions cannot be extracted and imported into Blueprint. Therefore, when choosing to create a new flow the flow will not contain any code, it will be an empty flow that the user will need to fill in later. After the first export, the new flow's ID and Name will be populated in the Rules table so that for every subsequent export, Rules will map to this newly created Flow.

Map to Existing Flow

To map to an existing flow, the ID and Name of the flow are required. If Rules generated these in a previous export then no action is required and they should already be populated. If they are not populated reference the following article on how to find an existing flow's Name and ID: How to Find Target Names and IDs in PAD

Map to Script

When mapping to a script the user is replacing the unmapped activity with new logic that is written in any of the available scripting languages. The most common is mapping directly to Robin Script, which is the underlining scripting language behind Power Automate Desktop. See Script Mapping for more detail.

Map to Subflow

Because unmapped actions have no business logic Blueprint is unable to migrate these as subflows.

Blueprism

Under the "Custom Actions" tab you will see any unmapped actions have been detected by the Rule opportunity generator. Unmapped actions in Blueprism should be uncommon because most bprelease's contain all necessary VBOs and Processes to complete an automation.

There are several mapping options a user has when working with unmapped actions

Map to New Flow

When choosing to create a new flow the flow will not contain any code, it will be an empty flow that the user will need to fill in later. After the first export, the new flow's ID and Name will be populated in the Rules table so that for every subsequent export, Rules will map to this newly created Flow.

Map to Existing Flow

To map to an existing flow, the ID and Name of the flow are required. If Rules generated these in a previous export then no action is required and they should already be populated. If they are not populated reference the following article on how to find an existing flow's Name and ID: How to Find Target Names and IDs in PAD

Map to Script

When mapping to a script the user is replacing the unmapped activity with new logic that is written in any of the available scripting languages. The most common is mapping directly to Robin Script, which is the underlining scripting language behind Power Automate Desktop. See Script Mapping for more detail.

Map to Subflow

Because unmapped actions have no business logic Blueprint is unable to migrate these as subflows.

Advanced: Use Checksum to Map to Existing Process as External Flow or Subflow

In situations where VBOs were imported into Blueprint in separate imports, VBO's and Processes can be mapped to using Rules.

The first step is finding the desired process to map's checksum, this can be found in the description of the artifact in Blueprint

The following columns will be auto-populated by Blueprint's Rule Generator:

  • Column A ("ScopeId") = Scope for Rule. Blank implies Instance level
  • Column B ("SourceActionType") = UNMAPPED_ACTION
  • Column C ("TargetActionType") = EXTERNAL_FLOW of SUB_FLOW
  • Column E ("SourceObjectName")  = Unmapped action Namespace
  • Column G ("SourceActionName")= Unmapped action Method Name
  • Column N ("SourceParameterName") = Name of Parameter
  • Column R ("TargetParameterName") = Same as SourceParameterName
  • Column Y ("IsActive") = FALSE

Enter the following information to complete the mapping

  • Column F ("SourceActionId")  = Checksum
  • Column G ("SourceActionName")= Method Name
  • Column O ("SourceParameterType") = Input or Output
  • Column Y ("IsActive") = Set to TRUE to enable Rule

Using CSV

The following columns will be auto-populated by Blueprint's Rule Generator:

  • Column A ("ScopeId") = Scope for Rule. Blank implies Instance level
  • Column B ("SourceActionType") = UNMAPPED_ACTION
  • Column C ("TargetActionType") = EXTERNAL_FLOW
  • Column E ("SourceObjectName")  = Unmapped action Namespace
  • Column G ("SourceActionName")= Unmapped action Method Name
  • Column N ("SourceParameterName") = Name of Parameter
  • Column R ("TargetParameterName") = Same as SourceParameterName
  • Column Y ("IsActive") = FALSE
A row will exist for every parameter. For example, a call to UnmappedActivity.Add(NumOne, NumTwo) will create two rows, one for parameter NumOne, and another for parameter NumTwo
Scenario 1) Map to New Flow

When mapping to a new flow, the only column that needs to be filled in by the user is O ("SourceParameterType") which can have one of two values: Input or Output. In some scenarios where a parameter is both an Input and Output, the row needs to be duplicated with one defined as the Input and the other as the Output. Finally, set Column Y ("IsActive") to TRUE to enable the Rule

Scenario 2) Map to Existing Flow

To map to an existing flow, the following columns must be defined by the user

  • Column O ("SourceParameterType") = Input or Output
  • Column K ("TargetActionId")= GUID of existing flow. Read How to find Flow GUID
  • Column L ("TargetActionName") = Name of flow
  • Column R ("TargetParameterName") = Typically matches Column N ("SourceParameterName")
  • Column Y ("IsActive") = Set to TRUE to enable Rule
Scenario 3) Map to PAD actions or Scripts

Read: Map Custom Actions or DLL calls to Inline Script


How did we do?