---
title: "Installed Product Hierarchy Setup"
canonical: "https://help.fieldbuddy.com/space/FBDOCS/6085509133/Installed%20Product%20Hierarchy%20Setup"
format: markdown
---
Hierarchical installed products are defined as installed products that have a parent installed product. This simple fact allows them to be displayed in an hierarchical manner.

This is a feature available from FieldBuddy Swift version 3.500.3.x and FieldBuddy Package version 1.150 or above. The package can be installed from [https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/6155960337](https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/6155960337) 

> ℹ️ This feature requires FieldBuddy Enterprise.

Read the user guide [here](https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/6130073601).

## Setup Steps

### Essential Steps

> ℹ️ The following steps are essential for hierarchical installed products to work correctly. Make sure to not skip any step.

- Make sure `Enable Installed Product Hierarchy` is enabled in [https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/5365268532](https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/5365268532)  →  Setup FieldBuddy Swift([https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/5539692561](https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/5539692561) ).
  - This will ensure that briefcase will automatically include fields that are necessary for Hierarchical Installed Products to work correctly.

![12a1d682-a298-46df-a036-a45fcf79de23.png](media://20e3abdf-cf36-4a9b-9785-aa3376e17796)

- If you are using Service Request based Work Orders, installed products tab may have been previously configured to be hidden in config. But this is no longer needed with hierarchical installed products. So, remove this condition if it exists at this path:

`apps[name=WorkOrders].screens[name=WorkOrderDetails].config.tabsLayout.config[header.title="${Label.InstalledProducts}"]`

```json
// Remove this condition
"condition": [
    {
      "executor": "jsonQuery",
      "type": "filter",
      "source": "${DATA}",
      "formula": "FIELDBUDDY__Work_Order__c[Id=${CURRENT_WORK_ORDER}]:isLocationBased"
    }
  ]
```

### Recommended Steps

The steps below are optional, but highly recommended. They will make sure the user can utilize hierarchical installed products to their fullest extent.

---

---

```
{
  "body": {
    "config": {
      "events": [
        {
          "dataBinding": [
            {
              "field": "Name",
              "table": "FIELDBUDDY__Installed_Product__c",
              "var": "NAME"
            },
            {
              "field": "Id",
              "table": "FIELDBUDDY__Installed_Product__c",
              "var": "IP"
            }
          ],
          "eventName": "onGoDetails",
          "target": "MultiItems",
          "triggeredEvent": "navigate",
          "screenTitle": "${Label.Unknown}"
        }
      ],
      "item": {
        "config": {
          "events": [
            {
              "dataBinding": [
                {
                  "field": "Name",
                  "table": "FIELDBUDDY__Installed_Product__c",
                  "var": "NAME"
                },
                {
                  "field": "Id",
                  "table": "FIELDBUDDY__Installed_Product__c",
                  "var": "IP"
                }
              ],
              "eventName": "onGoDetails",
              "target": "MultiItems",
              "triggeredEvent": "navigate",
              "screenTitle": "${Label.Unknown}"
            }
          ],
          "dataBinding": [
            {
              "label": "${Label.Number}",
              "field": "FIELDBUDDY__Installed_Product_Number__c",
              "table": "FIELDBUDDY__Installed_Product__c",
              "var": "_IP_"
            },
            {
              "label": "Name",
              "field": "Name",
              "table": "FIELDBUDDY__Installed_Product__c",
              "var": "_NAME_"
            },
            {
              "field": "FIELDBUDDY__Status__c",
              "table": "FIELDBUDDY__Installed_Product__c",
              "var": "_STATUS_"
            },
            {
              "path": "FIELDBUDDY__Installed_Product__c.FIELDBUDDY__Sub_location__c",
              "label": "${Label.Location}",
              "field": "FIELDBUDDY__Description__c",
              "table": "FIELDBUDDY__Location__c",
              "var": "_DESC_"
            },
            {
              "field": "Id",
              "table": "FIELDBUDDY__Work_Order__c"
            },
            {
              "field": "Name",
              "table": "FIELDBUDDY__Work_Order__c"
            }
          ],
          "dataText": ["_NAME_", "_IP_", "_STATUS_", "_DESC_"],
          "searchText": ["_IP_", "_NAME_"]
        },
        "type": "FInstalledProduct"
      },
      "params": {
        "parentTableName": "FIELDBUDDY__Installed_Product__c",
        "title": "${Label.InstalledProducts}"
      }
    },
    "type": "FInstalledProducts"
  },
  "header": {
    "title": "${Label.InstalledProducts}"
  }
}
```

---

The installed product count for location based work orders, which is usually displayed by [https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/5690589185/FListItem#FListItemTemplateHeadline](https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/5690589185/FListItem#FListItemTemplateHeadline) may be insufficient for users, since it doesn’t consider the hierarchical relationships between the installed products when calculating the count.

It is recommended that you use [https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/5690589185/FListItem#FListItemCounts](https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/5690589185/FListItem#FListItemCounts) on top, which will reflect the work needed to be complete by the user more accurately by displaying the items linked to a work order instead.