# Unshelve Multiple Alarms from Table

**URL:** <https://forum.inductiveautomation.com/t/unshelve-multiple-alarms-from-table/113325>\
**Category:** Ignition\
**Tags:** vision, ignition81\
**Created:** [January 15, 2026, 5:33pm UTC](https://forum.inductiveautomation.com/t/unshelve-multiple-alarms-from-table/113325 "2026-01-15T17:33:16Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [January 15, 2026, 5:33pm UTC](https://forum.inductiveautomation.com/t/unshelve-multiple-alarms-from-table/113325/1 "2026-01-15T17:33:16Z")

</div>

I have a table that is generated from shelved alarm data. I have the `Shelved Path` as a column in the table. Currently, I have a button that will grab the (single) selected row’s `Shelved Path` property from the table and unshelve it using `system.alarm.unshelve()`. However, this function does take a list of paths and I would like to update it to take a list from a multi-selection on the table. How do I get the multi-selected list from the dataset? I don’t see any of the properties change when I ctrl+select multiple rows in the table.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 15, 2026, 5:41pm UTC](https://forum.inductiveautomation.com/t/unshelve-multiple-alarms-from-table/113325/2 "2026-01-15T17:41:00Z")

</div>

In Vision, the multi-selection can be retrieved with `.getSelectedRows()` (or `.selectedRows`), which will be the list of row indices. You have to loop through that, retrieving the corresponding data from the dataset.

Unfortunately, this is not a bindable property.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [January 15, 2026, 7:06pm UTC](https://forum.inductiveautomation.com/t/unshelve-multiple-alarms-from-table/113325/3 "2026-01-15T19:06:43Z")

</div>

Dang, yep. I was using a binding. Guess I’ll have to transition _another_ binding to a script

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [January 22, 2026, 6:41pm UTC](https://forum.inductiveautomation.com/t/unshelve-multiple-alarms-from-table/113325/4 "2026-01-22T18:41:27Z")

</div>

Trying to do this on a tree view, I get

```python
Traceback (most recent call last):
  File "<event:actionPerformed>", line 1, in <module>
AttributeError: 'com.inductiveautomation.factorypmi.application.com' object has no attribute 'getSelectedRows'

```

and same for property `.selectedRows`

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 22, 2026, 6:42pm UTC](https://forum.inductiveautomation.com/t/unshelve-multiple-alarms-from-table/113325/5 "2026-01-22T18:42:36Z")

</div>

That method is only for tables.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [January 22, 2026, 6:43pm UTC](https://forum.inductiveautomation.com/t/unshelve-multiple-alarms-from-table/113325/6 "2026-01-22T18:43:22Z")

</div>

turns out `.selectedItems` works but I get this weird array

```python
array('i', [791, 340, 346])

```

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 22, 2026, 6:44pm UTC](https://forum.inductiveautomation.com/t/unshelve-multiple-alarms-from-table/113325/7 "2026-01-22T18:44:27Z")

</div>

Java arrays can be iterated just like python lists.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [January 22, 2026, 8:52pm UTC](https://forum.inductiveautomation.com/t/unshelve-multiple-alarms-from-table/113325/9 "2026-01-22T20:52:53Z")

</div>

Would `system.alarm.unshelve(“/*”)` unshelve all alarms?
