# Perspective script binding refresh interval

**URL:** <https://forum.inductiveautomation.com/t/perspective-script-binding-refresh-interval/110541>\
**Category:** Ignition\
**Tags:** perspective, ignition81\
**Created:** [September 11, 2025, 2:16pm UTC](https://forum.inductiveautomation.com/t/perspective-script-binding-refresh-interval/110541 "2025-09-11T14:16:18Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![malek](https://avatars.discourse-cdn.com/v4/letter/m/3ec8ea/32.png) [@malek](https://forum.inductiveautomation.com/u/malek)\
**Post date:** [September 11, 2025, 2:16pm UTC](https://forum.inductiveautomation.com/t/perspective-script-binding-refresh-interval/110541/1 "2025-09-11T14:16:18Z")

</div>

Hello,  
I'm trying to create a perspective table that lists all running SFCs. However, I haven’t found a good way to do this yet, so I’m posting here in the hope that someone can point me in a better direction.

As a workaround, I created a query binding for the table’s data property. The query itself is just a dummy one (`SELECT 1` works on my PostgreSQL). The reason I’m using a query binding is that it allows me to set a polling interval. Then I apply a script transformation, which returns the running SFCs using `system.sfc.getRunningCharts` function.

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

I don’t think there’s a better function than `system.sfc.getRunningCharts`, but it feels strange to use a query binding just to run a script at regular intervals. Is there a cleaner way to achieve this?

---

<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:** [September 11, 2025, 2:21pm UTC](https://forum.inductiveautomation.com/t/perspective-script-binding-refresh-interval/110541/2 "2025-09-11T14:21:40Z")

</div>

Try an expression binding:  
`now(3000)`

---

<div class="post-metadata">

**Author:** ![Ryan\_Deardorff](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_deardorff/32/63815_2.png) [@Ryan\_Deardorff](https://forum.inductiveautomation.com/u/Ryan_Deardorff)\
**Post date:** [September 11, 2025, 2:27pm UTC](https://forum.inductiveautomation.com/t/perspective-script-binding-refresh-interval/110541/3 "2025-09-11T14:27:38Z")

</div>

Or better yet, avoid a transform altogether and place the script into a library function you can call with an interval set in a `runScript` expression (the `pollRate` parameter).

---

<div class="post-metadata">

**Author:** ![malek](https://avatars.discourse-cdn.com/v4/letter/m/3ec8ea/32.png) [@malek](https://forum.inductiveautomation.com/u/malek)\
**Post date:** [September 11, 2025, 2:35pm UTC](https://forum.inductiveautomation.com/t/perspective-script-binding-refresh-interval/110541/4 "2025-09-11T14:35:34Z")

</div>

Thank you both, I totally missed these expression functions.

`runScript("system.sfc.getRunningCharts", 3000)` works.

---

<div class="post-metadata">

**Author:** ![Ryan\_Deardorff](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_deardorff/32/63815_2.png) [@Ryan\_Deardorff](https://forum.inductiveautomation.com/u/Ryan_Deardorff)\
**Post date:** [September 11, 2025, 2:40pm UTC](https://forum.inductiveautomation.com/t/perspective-script-binding-refresh-interval/110541/5 "2025-09-11T14:40:15Z")

</div>

And thank you, I didn’t realize `runScript` could directly invoke `system` functions, but I guess it makes sense.

I always try to avoid script transforms in favor of `runScript` ever since I learned that they actually execute faster.
