# Strategic Roadmap

## Purpose

Our lowcodera strategic roadmap component brings stunning roadmapping capability directly into your Power Apps. The component is 100% interactive allowing you to present and make changes for your audience in real-time.

## Variations

![Yearly Strategic Roadmap](https://3753622978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6h6_qso0k3_0dNo1k%2Fuploads%2FcC3HgqhEYRdujkX1kRJ3%2Fimage.png?alt=media\&token=6abe35a6-7ada-4223-9217-ed08e60eb4f3)

![QTY Strategic Roadmap](https://3753622978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6h6_qso0k3_0dNo1k%2Fuploads%2F1UanLFoqJQkIKQrg9ns4%2Fimage.png?alt=media\&token=93d52d82-66d8-4828-a38c-c8b8ba1bf71a)

There are several variations of Strategic Roadmap component which are supported through the configuration of data and component properties.

## Working with Data

‌You can bind your component's **`items`** property to a Power Apps collection which includes either static data or dynamic data e.g. SharePoint. &#x20;

{% tabs %}
{% tab title="Dynamic Collection Example" %}
The below example SharePoint list's data in a dynamic manner. The SharePoint list structure looks like below:

![](https://3753622978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6h6_qso0k3_0dNo1k%2Fuploads%2FNI0kFK7Nx8Cf57PHR8rG%2Fimage.png?alt=media\&token=15c47b20-d2ae-4be8-910a-e6ec1a772106)

The below code snippet will generate a dynamic collection to be consumed by the component.

```
ClearCollect(
    colRoadmapData,
    StrategicRoadmap2 // List name of SharePoint
);

```

This will generate the following component!

![](https://3753622978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6h6_qso0k3_0dNo1k%2Fuploads%2FrEq8PADpow4j9vRXIU1I%2Fimage.png?alt=media\&token=4b9c1d6f-6711-42a8-a90a-af4cf38ad737)
{% endtab %}

{% tab title="Property Configuration" %}

* [x] `Items` property is set to **colRoadmapData**
* [x] `TimeScale` property is set to **Year**
* [x] `Draggable` property is set to **true**

For every Roadmap component, we need to configure the following properties

| Property          | Description                                            | Value                   |
| ----------------- | ------------------------------------------------------ | ----------------------- |
| ID                | Provide `ID` Column of your data source                | e.g.  ID                |
| Title             | Provide `Title` Column of your data source             | e.g  Title              |
| StartDate         | Provide `StartDate` Column of your data source         | e.g  StartDate          |
| EndDate           | Provide `EndDate` Column of your data source           | e.g. EndDate            |
| IconType          | Provide `IconType` Column of your data source          | e.g. IconType           |
| MainCategory      | Provide `MainCategory` Column of your data source      | e.g. MainCategory       |
| MainCategoryColor | Provide `MainCategoryColor` Column of your data source | e.g. MainCategoryColour |
| Subcategory       | Provide `Subcategory` Column of your data source       | e.g. Subcategory        |
| SubCategoryColor  | Provide `SubCategoryColor` Column of your data source  | e.g. SubCategoryColour  |

* [x] All **`other`** control properties can be left as **default**

{% endtab %}

{% tab title="Output Properties" %}
We can get the following properties as Output Properties when we drag the roadmap bar.

| Property Name       | Description                                    | Syntax                                 |
| ------------------- | ---------------------------------------------- | -------------------------------------- |
| CurrentID           | Return selected ID for the Roadmap             | `StrategicRoadmap.CurrentID`           |
| CurrentStartDate    | Return selected start date for the Roadmap     | `StrategicRoadmap.CurrentStartDate`    |
| CurrentEndDate      | Return selected end date for the Roadmap       | `StrategicRoadmap.CurrentEndDate`      |
| CurrentMainCategory | Return selected main category for the Roadmap  | `StrategicRoadmap.CurrentMainCategory` |
| CurrentSubCategory  | Return selected sub category for the Roadmap   | `StrategicRoadmap.CurrentSubCategory`  |
| CurrentColor        | Return selected category color for the Roadmap | `StrategicRoadmap.CurrentColor`        |
| {% endtab %}        |                                                |                                        |

{% tab title="Event Configuration" %}
We can save or update collection or data source while dragging the roadmap.

We need to configure the `onchange` property`.`

```
UpdateIf(
    colRoadmapData,
    ID = Value(StrategicRoadmap3.CurrentID),
    {
        StartDate: DateValue(StrategicRoadmap.CurrentStartDate),
        EndDate: DateValue(StrategicRoadmap.CurrentEndDate),
        MainCategory: StrategicRoadmap.CurrentMainCategory,
        SubCategory: StrategicRoadmap.CurrentSubCategory,
        SubcatColour: StrategicRoadmap.CurrentColor
    }
);

//refresh grid
UpdateContext({refreshgrid: refreshgrid + 1})


```

{% endtab %}
{% endtabs %}

## Properties

The properties below are the main ones which change this components appearance and behaviours.

<table data-header-hidden><thead><tr><th>Control Property</th><th>Description</th><th>Accepted Values</th><th width="150">Required</th></tr></thead><tbody><tr><td>Control Property</td><td>Description</td><td>Accepted Values</td><td>Required</td></tr><tr><td>Items</td><td>Property to set data source for Roadmap component</td><td>Collection/DataSource</td><td>Yes</td></tr><tr><td>TimeScale</td><td>Property to configure time scale for our Roadmap component</td><td><p>Month</p><p>Quarter</p><p>Year<br>Day<br>Hour</p></td><td>Yes</td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td>Draggable</td><td>Property to configure if you want to allow dragging tasks on your Roadmap component.</td><td>Boolean</td><td>X</td></tr><tr><td>Date Format</td><td>Property to configure the date format of dates on the roadmap</td><td>e.g. DD/MM/YYYY<br>MM/DD/YYYY</td><td>Yes</td></tr></tbody></table>

## Examples

### Yearly Strategic Roadmap&#x20;

{% tabs %}
{% tab title="Data Configuration" %}
We need to provide same collection defined in the [section](#working-with-data).

![](https://3753622978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6h6_qso0k3_0dNo1k%2Fuploads%2FeU6mBCweoaKabYaeQK4k%2Fimage.png?alt=media\&token=2b1aadfd-6f55-4981-99a4-8d134211a553)
{% endtab %}

{% tab title="Property Configuration" %}

* [x] `Timescale`property is set to **Year.**&#x20;
* [x] All other control properties can be same as [section](#working-with-data).
  {% endtab %}
  {% endtabs %}

### Quarterly Strategic Roadmap&#x20;

{% tabs %}
{% tab title="Data Configuration" %}
We need to provide same collection defined in the [section](#working-with-data).

![](https://3753622978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6h6_qso0k3_0dNo1k%2Fuploads%2F0NaF06JQJ3Fj4fdAkK8Z%2Fimage.png?alt=media\&token=bd62e66b-9376-4c5d-80ae-1598efae2ba7)
{% endtab %}

{% tab title="Property Configuration" %}

* [x] `Timescale`property is set to **Quarter.**&#x20;
* [x] All other control properties can be same as [section](#working-with-data).
  {% endtab %}
  {% endtabs %}
