# Perspective PopUP Parameters

**URL:** <https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301>\
**Category:** Ignition\
**Tags:** perspective, ignition80\
**Created:** [November 28, 2019, 1:52pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301 "2019-11-28T13:52:41Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![andrea.parola](https://avatars.discourse-cdn.com/v4/letter/a/b9e5f3/32.png) [@andrea.parola](https://forum.inductiveautomation.com/u/andrea.parola)\
**Post date:** [November 28, 2019, 1:52pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/1 "2019-11-28T13:52:41Z")

</div>

Hello,

I just created a view to be used as a popup in Perspective.  
I can open the popup after a button in pressed, now I need to pass two parameters to the popup, so here is what I did on the button part:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/2X/4/4eadf3c1a7d283d0b7e0fc39b8254132b0d0e2f7.png)

Teh point is that I do not know how to retrieve those params in my popup.  
I tried to add them as custom params at view or root level, but with no result, how can I get the parameters I passed in my popup?

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/2X/9/96affd4d99a517385054c02d0533a79cff6c1df5.png)

Many thanks  
Andrea

---

<div class="post-metadata">

**Author:** ![chi](https://avatars.discourse-cdn.com/v4/letter/c/0ea827/32.png) [@chi](https://forum.inductiveautomation.com/u/chi)\
**Post date:** [November 28, 2019, 7:15pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/2 "2019-11-28T19:15:37Z")

</div>

Did you try adding your view params as view parameter?  
 ![Config](https://us1.discourse-cdn.com/inductiveautomation/original/2X/f/fe01b25ea8745cf06909748a1397af5bc117d2f6.png)

---

<div class="post-metadata">

**Author:** ![cmallonee](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmallonee/32/6416_2.png) [@cmallonee](https://forum.inductiveautomation.com/u/cmallonee)\
**Post date:** [December 2, 2019, 3:19pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/3 "2019-12-02T15:19:21Z")

</div>

To clarify and expand on Chi’s answer, you want to make sure that you have both case-sensitive `Result` and `Message` as properties at `View.params`.

Some other notes from your screenshots:

1. it looks like you _might_ have a typo in your path to your Popup View -\> “PopUs/DisplayPopUp”; that might be correct, but just thought I’d point it out.
2. I noticed you had Script Actions surrounding your Popup Action. While you can queue multiple Actions for a single Event, there is no guarantee as to when the Actions will complete as they are run, so if you have any logic within the scripts which could affect your Popup, the data might not be in place when it is opened. You should consider moving your Script Actions and your Popup Action into one Script Action so that you can better control the flow.

---

<div class="post-metadata">

**Author:** ![basilcreeker](https://avatars.discourse-cdn.com/v4/letter/b/90db22/32.png) [@basilcreeker](https://forum.inductiveautomation.com/u/basilcreeker)\
**Post date:** [April 24, 2025, 9:11pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/4 "2025-04-24T21:11:44Z")

</div>

Waiting for a real answer/solution on this one

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [April 24, 2025, 10:17pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/5 "2025-04-24T22:17:23Z")

</div>

Posts #2 and #3 explain the solution.  
Where are you stuck?

---

<div class="post-metadata">

**Author:** ![basilcreeker](https://avatars.discourse-cdn.com/v4/letter/b/90db22/32.png) [@basilcreeker](https://forum.inductiveautomation.com/u/basilcreeker)\
**Post date:** [April 24, 2025, 10:30pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/6 "2025-04-24T22:30:57Z")

</div>

The button that prompts the popup does not pass the parameters to my popup even though I set it up with a path under my popup parameters- I am trying to parameterize my popup to follow the path that I pass to the button

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [April 24, 2025, 10:55pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/7 "2025-04-24T22:55:54Z")

</div>

You'd need to show us,

1. How you pass the path to the button.
2. How the button uses the path.
3. How your Popup Action is configured.
4. How the parameters are configured on your popup view.
5. How the parameters are used in your popup view.

Otherwise we're all just guessing!

If you're posting screenshots of code then please post the formatted code as well to save us having to type it out. Please see [Wiki - how to post code on this forum](https://forum.inductiveautomation.com/t/wiki-how-to-post-code-on-this-forum/77831).

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [April 24, 2025, 11:35pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/8 "2025-04-24T23:35:28Z")

</div>

You should look at the [Inductive University](https://inductiveuniversity.com/). This is a basic concept covered by the training content (although you should ignore anything to do with passing UDTType property types to Templates/Popups in Vision)

---

<div class="post-metadata">

**Author:** ![basilcreeker](https://avatars.discourse-cdn.com/v4/letter/b/90db22/32.png) [@basilcreeker](https://forum.inductiveautomation.com/u/basilcreeker)\
**Post date:** [April 24, 2025, 11:40pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/9 "2025-04-24T23:40:41Z")

</div>

This is how I have it set up so far, very open to changing my thought process/logic behind how this is set up. My original post is [Help With Paramaterization to Write to Tags](https://forum.inductiveautomation.com/t/help-with-paramaterization-to-write-to-tags/105489) but I have found that my issue is with passing the parameter from the Initial Button to the PopUp Window:

Image 1: Event Configuration for Initial Button (that brings up popup)

 ![Screenshot 2025-04-24 at 4.33.20 PM](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/1/5177c946e5c0b8782059d00b6c110b6eeba7e104.png)

Image 2: Parameters for Initial Button (that brings up popup) (This is the parameter path that I want passed to my popup)

 ![image 2](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/b/4bbc304cf6027a88ba9c4295cd66fab5f9d61b09.png)

Image 3: Popup Window with respective parameters and path. This path I want passed in from my initial button

 ![image 3](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/2/420e54195057779d1ee3996c5a23c5b875391657.png)

Image 4: How my Start Button is linked to the Popup parameter path. This works as intended, but it is not parameterized to the path from my Initial Button. Even if I change my Initial Button parameter, this seems to be hardcoded to the Popup Window parameter path

 ![image 4](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/d/cdb73f11ddb6b42f17992d2123032332a34a79a1.png)

---

<div class="post-metadata">

**Author:** ![basilcreeker](https://avatars.discourse-cdn.com/v4/letter/b/90db22/32.png) [@basilcreeker](https://forum.inductiveautomation.com/u/basilcreeker)\
**Post date:** [April 24, 2025, 11:42pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/10 "2025-04-24T23:42:03Z")

</div>

nminchin, I cannot find anything that follows the same process that I am following. I saw some for passing parameterized parameters to popups but it is not the same as what I am trying to accomplish

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [April 24, 2025, 11:46pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/11 "2025-04-24T23:46:28Z")

</div>

I would be adding a label bound to your {view.params.path} value to see what its value is, or in your button action add `system.perspective.print(self.view.params.path)` and it will show in the browser's console

---

<div class="post-metadata">

**Author:** ![basilcreeker](https://avatars.discourse-cdn.com/v4/letter/b/90db22/32.png) [@basilcreeker](https://forum.inductiveautomation.com/u/basilcreeker)\
**Post date:** [April 24, 2025, 11:51pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/12 "2025-04-24T23:51:03Z")

</div>

My value is correct as I was able to verify in the console. My issue is that if I change which tank tag I link to my initial button, it does not pass to my popup window. My popup window remains that same tag displayed in Image 3. I'm not sure how to further parameterize it so it receives the path from the initial button. Otherwise, I will need to make a new object for various tanks. I am trying to make a template object where I can link my tag to the path in the initial button which will pass to the popup window.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [April 24, 2025, 11:54pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/13 "2025-04-24T23:54:48Z")

</div>

I think at this stage we need a copy of the json of your components, or an export. Can you export the button and the popup?

---

<div class="post-metadata">

**Author:** ![basilcreeker](https://avatars.discourse-cdn.com/v4/letter/b/90db22/32.png) [@basilcreeker](https://forum.inductiveautomation.com/u/basilcreeker)\
**Post date:** [April 24, 2025, 11:58pm UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/14 "2025-04-24T23:58:57Z")

</div>

**Json for Initial Button:**  
**-----------------------------**

```python
{
  "custom": {},
  "params": {
    "description": "Device Description",
    "name": "TK2106Recirc",
    "path": "[default]Recirc/TK2106Recirc"
  },
  "propConfig": {
    "params.description": {
      "paramDirection": "input",
      "persistent": true
    },
    "params.name": {
      "binding": {
        "config": {
          "path": "view.params.path"
        },
        "transforms": [
          {
            "code": "\tplcTagAddress \u003d str(value)\n\tif \"/\" in plcTagAddress:\n\t\ttext \u003d plcTagAddress.split(\"/\")[-1]\n\t\ttext \u003d text.replace(\"_\", \"-\")\n\telse:\n\t\ttext \u003d \"Invalid tag path\"\n\treturn text",
            "type": "script"
          }
        ],
        "type": "property"
      },
      "paramDirection": "inout",
      "persistent": true
    },
    "params.path": {
      "paramDirection": "inout",
      "persistent": true
    }
  },
  "props": {
    "defaultSize": {
      "height": 23,
      "width": 56
    }
  },
  "root": {
    "children": [
      {
        "meta": {
          "name": "Label_0"
        },
        "position": {
          "height": 23,
          "width": 56
        },
        "props": {
          "style": {
            "backgroundColor": "#C3C3C3",
            "borderStyle": "outset"
          },
          "text": "RECIRC",
          "textStyle": {
            "alignSelf": "center",
            "fontSize": 12,
            "fontWeight": "bold"
          }
        },
        "type": "ia.display.label"
      },
      {
        "events": {
          "dom": {
            "onMouseDown": {
              "config": {
                "draggable": true,
                "id": "{view.params.plcTagAddress}",
                "modal": false,
                "overlayDismiss": true,
                "position": {
                  "relativeLocation": "center"
                },
                "positionType": "relative",
                "resizable": true,
                "showCloseIcon": true,
                "type": "open",
                "viewParams": {
                  "description": "{view.params.description}",
                  "name": "{view.params.name}",
                  "path": "{view.params.path}"
                },
                "viewPath": "Templates/Device Pop-ups/Recirc",
                "viewportBound": false
              },
              "scope": "C",
              "type": "popup"
            }
          }
        },
        "meta": {
          "name": "Popup_PB"
        },
        "position": {
          "height": 20,
          "width": 54,
          "x": 2,
          "y": 2
        },
        "props": {
          "style": {
            "cursor": "pointer"
          }
        },
        "type": "ia.display.icon"
      }
    ],
    "custom": {
      "key": "value"
    },
    "meta": {
      "name": "root"
    },
    "position": {
      "x": 0,
      "y": 1
    },
    "props": {
      "style": {
        "overflow": "hidden"
      }
    },
    "type": "ia.container.coord"
  }
}

```

**Json for Popup:**  
**---------------------**

```python
{
  "custom": {},
  "params": {
    "description": "TK2106 Recirc",
    "name": "TK2106",
    "path": "[default]Recirc/TK2106Recirc"
  },
  "propConfig": {
    "params.description": {
      "paramDirection": "input",
      "persistent": true
    },
    "params.faulted": {
      "paramDirection": "input",
      "persistent": true
    },
    "params.name": {
      "paramDirection": "input"
    },
    "params.path": {
      "paramDirection": "input",
      "persistent": true
    },
    "params.path.name": {
      "paramDirection": "input",
      "persistent": true
    },
    "params.path.num": {
      "paramDirection": "input",
      "persistent": true
    },
    "params.path.tag": {
      "paramDirection": "input",
      "persistent": true
    }
  },
  "props": {
    "defaultSize": {
      "height": 253,
      "width": 308
    }
  },
  "root": {
    "children": [
      {
        "children": [
          {
            "meta": {
              "name": "Label"
            },
            "position": {
              "breakpoints": [
                {
                  "colIndex": -1,
                  "name": "sm",
                  "order": 0,
                  "rowIndex": 0,
                  "span": 12
                },
                {
                  "colIndex": 0,
                  "name": "md",
                  "order": 1,
                  "rowIndex": 0,
                  "span": 12
                },
                {
                  "colIndex": 3,
                  "name": "lg",
                  "order": 1,
                  "rowIndex": 0,
                  "span": 1
                }
              ],
              "height": 36
            },
            "propConfig": {
              "props.text": {
                "binding": {
                  "config": {
                    "expression": "{view.params.name}"
                  },
                  "type": "expr"
                }
              }
            },
            "props": {
              "style": {
                "backgroundColor": "#0c7bb3",
                "color": "#FFFFFF",
                "fontSize": 24,
                "fontWeight": "bolder",
                "textAlign": "center"
              }
            },
            "type": "ia.display.label"
          },
          {
            "meta": {
              "name": "Label_0"
            },
            "position": {
              "breakpoints": [
                {
                  "colIndex": -1,
                  "name": "sm",
                  "order": 0,
                  "rowIndex": 1,
                  "span": 12
                },
                {
                  "colIndex": 7,
                  "name": "md",
                  "order": 4,
                  "rowIndex": 1,
                  "span": 12
                },
                {
                  "colIndex": 7,
                  "name": "lg",
                  "order": 4,
                  "rowIndex": 1,
                  "span": 1
                }
              ],
              "height": 60
            },
            "propConfig": {
              "props.text": {
                "binding": {
                  "config": {
                    "expression": "{view.params.name} + \" Recirculation\""
                  },
                  "type": "expr"
                }
              }
            },
            "props": {
              "style": {
                "classes": "XXX_Background/Primary/Grey",
                "color": "#FFFFFF",
                "fontSize": "12pt",
                "fontWeight": "bolder",
                "textAlign": "center"
              }
            },
            "type": "ia.display.label"
          },
          {
            "events": {
              "dom": {
                "onClick": {
                  "config": {
                    "script": "\tsystem.tag.writeBlocking(self.view.params.path + \"/Startbutton\", 1)"
                  },
                  "scope": "G",
                  "type": "script"
                }
              }
            },
            "meta": {
              "name": "Button"
            },
            "position": {
              "breakpoints": [
                {
                  "colIndex": 2,
                  "name": "sm",
                  "order": 0,
                  "rowIndex": 2,
                  "span": 8
                },
                {
                  "colIndex": 5,
                  "name": "md",
                  "order": 0,
                  "rowIndex": 3,
                  "span": 1
                },
                {
                  "colIndex": 5,
                  "name": "lg",
                  "order": 0,
                  "rowIndex": 3,
                  "span": 1
                }
              ],
              "height": 58
            },
            "propConfig": {
              "props.enabled": {
                "binding": {
                  "config": {
                    "fallbackDelay": 2.5,
                    "mode": "direct",
                    "tagPath": "[default]Recirc/TK2106Recirc/StartButtonAvailable"
                  },
                  "type": "tag"
                }
              },
              "props.style.backgroundColor": {
                "binding": {
                  "config": {
                    "expression": "if ({[default]Recirc/TK2106Recirc/Start},\u0027#00FF00\u0027, \"#CCCCCC\")"
                  },
                  "type": "expr"
                }
              }
            },
            "props": {
              "image": {
                "style": {
                  "borderStyle": "solid",
                  "color": "#000000"
                }
              },
              "style": {
                "borderColor": "#000000",
                "borderStyle": "solid",
                "borderWidth": 2
              },
              "text": "Start",
              "textStyle": {
                "color": "black"
              }
            },
            "type": "ia.input.button"
          },
          {
            "events": {
              "dom": {
                "onMouseDown": {
                  "config": {
                    "script": "\tsystem.tag.writeBlocking(self.view.params.path + \"/AbortButton\",1)"
                  },
                  "scope": "G",
                  "type": "script"
                }
              }
            },
            "meta": {
              "name": "Button_0"
            },
            "position": {
              "breakpoints": [
                {
                  "colIndex": 2,
                  "name": "sm",
                  "order": 0,
                  "rowIndex": 3,
                  "span": 8
                },
                {
                  "colIndex": 5,
                  "name": "md",
                  "order": 0,
                  "rowIndex": 3,
                  "span": 1
                },
                {
                  "colIndex": 5,
                  "name": "lg",
                  "order": 0,
                  "rowIndex": 3,
                  "span": 1
                }
              ],
              "height": 58
            },
            "propConfig": {
              "props.enabled": {
                "binding": {
                  "config": {
                    "fallbackDelay": 2.5,
                    "mode": "direct",
                    "tagPath": "[default]Recirc/TK2106Recirc/AbortButtonAvailable"
                  },
                  "type": "tag"
                }
              },
              "props.style.backgroundColor": {
                "binding": {
                  "config": {
                    "expression": "if ({[default]Recirc/TK2106Recirc/Abort},\u0027#00FF00\u0027, \"#CCCCCC\")"
                  },
                  "type": "expr"
                }
              },
              "props.style.color": {
                "binding": {
                  "config": {
                    "expression": "if ({[default]Recirc/TK2106Recirc/Abort},\u0027#00FF00\u0027, \"#CCCCCC\")"
                  },
                  "type": "expr"
                }
              }
            },
            "props": {
              "style": {
                "borderColor": "#000000",
                "borderStyle": "solid",
                "borderWidth": 2
              },
              "text": "Stop",
              "textStyle": {
                "color": "black"
              }
            },
            "type": "ia.input.button"
          }
        ],
        "meta": {
          "contextMenu": {
            "style": {
              "overflow": "hidden"
            }
          },
          "name": "ColumnContainer",
          "tooltip": {
            "style": {
              "overflow": "hidden"
            }
          }
        },
        "position": {
          "basis": "316px"
        },
        "props": {
          "breakpoints": [
            {
              "minWidth": 0,
              "name": "sm"
            },
            {
              "minWidth": 423,
              "name": "md"
            },
            {
              "minWidth": 996,
              "name": "lg"
            }
          ],
          "style": {
            "backgroundColor": "#c5c5c5",
            "borderWidth": 4,
            "overflow": "hidden"
          }
        },
        "type": "ia.container.column"
      }
    ],
    "meta": {
      "contextMenu": {
        "style": {
          "overflow": "hidden"
        }
      },
      "name": "root"
    },
    "props": {
      "style": {
        "overflow": "visible"
      }
    },
    "type": "ia.container.flex"
  }
}

```

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [April 25, 2025, 12:12am UTC](https://forum.inductiveautomation.com/t/perspective-popup-parameters/30301/15 "2025-04-25T00:12:11Z")

</div>

[Test Popup Tag Write.zip](https://forum.inductiveautomation.com/uploads/short-url/uoJQ4NreIZlUrbBpyh97ZV3br2G.zip) (13.9 KB)

This works for me. I didn't really change anything (although there are a few issues I see with a few things e.g. the button doesn't resize properly and is using old raised-bevel styling, I wouldn't be using a column container for the popup, i'd just use a flex, there's no need for the name and path params on the button to be input/outputs, they should just be inputs, also you're fixed the binding to a specific tag for the button background colour in the popup as well as a lot of the other props too)

And this is my tag structure:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/1/e183b02214c0e808691cd59a2df2dcfbe92a1414.png)

I probably also need a copy of the embedded view instance of your button to see how you're passing in the "path" param, and a screenshot of the structure of your tags within that tagpath
