---
schema_version: "1"
id: 67bf23e32085ee1d24a96d4491ca6f9fd09b9478adb64d40536bc4e9fc28a210
title: Variable Mapping in Lookup Tables
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/bre_resource_mapping_in_lookup_tables.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.bre_resource_mapping_in_lookup_tables.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: d40e5c10c9c181885c53b3b676db5daa58ef81e6c9e572b418d8ea44431c4349
description: When you add a lookup table element step in an expression set version, the input and output variables in the table are imported into the version. You can then map the table’s variables to the resources from the expression set version. When you map the lookup table’s resources to the resources from the expression set version that the table is used in, a clear alignment between the two types of resources is established. This alignment simplifies the process of building an expression set. For example, you can map the output variable of a step that precedes a lookup table step to the input variable in the lookup table. With this mapping, the output of the previous step is automatically passed to the subsequent lookup table as the input.
products:
  - Industry Solutions
  - Cross Cloud
release: "264"
---
# Variable Mapping in Lookup Tables

When you add a lookup table element step in an expression set version, the input and output variables in the table are imported into the version. You can then map the table’s variables to the resources from the expression set version. When you map the lookup table’s resources to the resources from the expression set version that the table is used in, a clear alignment between the two types of resources is established. This alignment simplifies the process of building an expression set. For example, you can map the output variable of a step that precedes a lookup table step to the input variable in the lookup table. With this mapping, the output of the previous step is automatically passed to the subsequent lookup table as the input.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: Lightning Experience</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Enterprise</strong>, <strong>Unlimited</strong>, and <strong>Developer</strong> Editions for clouds that have Business Rules Engine enabled</td></tr></tbody></table>

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-business_rules_engine-264-0-0-production-enus/b2d6dd5c-c231-428b-abbf-3dd2cd51a11f/images/icon_note.png)

Note An expression set can read only one result even if an object-based decision table provides multiple results. So, if you plan to use the decision table in an expression set, while creating the decision table, set Filter Result By to **First Match** or **Any Value**, which are both specific to single values.

To handle multiple outcomes from a decision table in an expression set, select **Process Multiple Decision Table Outputs**. See [Process Multiple Decision Table Outputs Without a Context Definition](https://help.salesforce.com/s/articleView?id=ind.bre_process_multiple_dt_outputs_without_context.htm&release=264.0.0&type=5 "Use a decision table that returns multiple outputs for a single set of input values in any expression set, even if the expression set isn't associated with a context definition. When you turn on Process Multiple Decision Table Outputs while mapping a Lookup Table step's variables, Expression Set Builder automatically creates and maps the local list variables you need to use every matching result in later calculation or logic steps.").

After you select a lookup table in an expression set version, and the table’s variables are imported into the version, here’s how the mapping works:

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
      <colgroup>
        <col style="width:50%">
        <col style="width:50%">
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d32673e91">Scenario</th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d32673e94">Mapping Behavior</th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="Scenario" class="slds-cell-wrap" style="vertical-align:top;" headers="d32673e91 ">A lookup table is used in one lookup table step in the expression set version and
            one or more table variables are mapped to the version resources</td>

          <td data-label="Mapping Behavior" class="slds-cell-wrap" style="vertical-align:top;" headers="d32673e94 ">
            <p>The table variables that are mapped to the version resources are removed from the
              resources list.</p>
            <p style="margin-bottom:0;">If the mapping is removed, the imported variables reappear in the
              resources list.</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="Scenario" class="slds-cell-wrap" style="vertical-align:top;" headers="d32673e91 ">A lookup table is used in more than one lookup table step in the expression set
            version, but the table variables are mapped to the version resources in only one of
            the steps</td>

          <td data-label="Mapping Behavior" class="slds-cell-wrap" style="vertical-align:top;" headers="d32673e94 ">The resource list shows both the imported variables and the expression set
            version resources that the variables are mapped to.</td>

        </tr>
      </tbody>
    </table>

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-business_rules_engine-264-0-0-production-enus/b2d6dd5c-c231-428b-abbf-3dd2cd51a11f/images/icon_example.png)

Example Anne, a rule designer, creates an expression set version to determine the eligibility of citizens for a discount on the base fare for public transport, based on their age and family income level. She defines Citizen\_Birthdate and Citizen\_Age as the local resources in the version. Anne uses a calculation step element to get the citizen’s age from their birth date. She then uses a lookup table step to determine a citizen’s discount eligibility based on certain parameters. Here’s how she configured the decision matrix that she uses in the lookup table step.

  
| Column Name | Column Type | Data Type |
| --- | --- | --- |
| Age | Input | Number range |
| Family\_Income\_Level | Input | Text |
| Eligible\_For\_Discount | Output | Boolean |

![Resource list before mapping lookup table variables](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-business_rules_engine-264-0-0-production-enus/b2d6dd5c-c231-428b-abbf-3dd2cd51a11f/business_rules_engine/images/variable_mapping_example.png)

In this example, the table’s input variables Age and Family\_Income\_Level, and the output variable Base\_Fare\_Eligible\_For\_Discount are imported in the version and appear as local resources in Resource Manager. To pass the value of the Citizen\_Age variable from the calculation step to the Age column in the lookup table, Anne clicks **Map Variables** in the lookup table step. She then maps the imported input variable Age to Citizen\_Age.

![Variable mapping window](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-business_rules_engine-264-0-0-production-enus/b2d6dd5c-c231-428b-abbf-3dd2cd51a11f/business_rules_engine/images/variable_mapping_example1.png)

Because of the mapping, the imported lookup table variable Age is removed from the resource list, and the lookup table step replaces the table’s input variable Age with the mapped resource Citizen\_Age.

![Resource list after variable mapping](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-business_rules_engine-264-0-0-production-enus/b2d6dd5c-c231-428b-abbf-3dd2cd51a11f/business_rules_engine/images/variable_mapping_example2.png)

## Considerations for decision tables that return multiple outputs

When configuring an expression set to handle multiple outcomes from a decision table, ensure your variable mapping adheres to these architectural requirements to avoid errors during activation or execution:

- Map at least one input parameter to a context tag.
- Input parameters must be mapped to attributes at the same hierarchical level or different levels within the same node.
- If any input parameter is mapped to a context tag, then all output parameters must also be mapped to context tags.

If the lookup step is placed inside a List Filter, additional rules apply:

- At least one input must be mapped to a tag at the same level as the List Filter's current level.
- All outputs must be mapped to local list variables from the immediate child node of the List Filter's level, and all selected output tags must belong to that same node.

Output Parameter Validations

- Output parameters must be mapped to tags that are immediate children of the node used for the lowest-level input tag.
- All mapped output parameters must belong to the same hierarchical level and the same record type to ensure data integrity across the multiple outcomes.