# Show array of strings

**URL:** <https://forum.inductiveautomation.com/t/show-array-of-strings/103238>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [March 4, 2025, 8:15pm UTC](https://forum.inductiveautomation.com/t/show-array-of-strings/103238 "2025-03-04T20:15:06Z")\
**Posts on this page:** 1\
**Showing post:** 9

<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:** [March 12, 2025, 6:04pm UTC](https://forum.inductiveautomation.com/t/show-array-of-strings/103238/9 "2025-03-12T18:04:54Z")

</div>

Ignition doesn't have any native functionality to convert your structure to a table-compatible format. I created an [add-on module](https://forum.inductiveautomation.com/t/automation-professionals-integration-toolkit-module/74934) to help with cases like this, but what you are after isn't simple. (Natively, Ignition expressions cannot perform any iteration.)

I would use a custom property to construct a dataset of the tagpaths you need. Something like this:

```python
unionAll(
	asMap('tagpath', 'str'),
	flatten(
		forEach(
			100,
			forEach(
				asList('eSeverity', 'sMessage', 'sSource', 'sTimestamp'),
				asList( // unionAll needs lists of lists.
					stringFormat(
						'[someProvider]stEvents/stEvents_%d_/%s',
						idx(1),
						it()
					)
				)
			)
		)
	)
)

```

Then I'd use `tags()` to monitor the live values of all of those, and wrap it in grouping to yield four columns. Something like this:

```python
unionAll(
	asMap(
		'tagFolder', 'str',
		'eSeverity', 'I',
		'sMessage', 'str',
		'sSource', 'str',
		'sTimestamp', 'str'
	),
	forEach(
		groupBy( // extract the four leaf tags together as groups
			forceQuality(
				tags({Root Container.eventsTags}), // yields two-column dataset, path and value
				192
			),
			left( // trim off the last name of the path
				it()[0], // path column
				lastIndexOf(it()[0], '/')
			)
		),
		transform(
			lastIndexOf(it()[0], '/'), // grouping key output
			asMap( // unionAll can also take a map with keys==colName
				asPairs(
					asMap('tagFolder', left(it()[0], value())),
					forEach(
						it()[1], // Nested dataset
						substring(it()[0], value()+1), // path from row of nested DS
						it()[1] // value from row of nested DS
					)
				)
			)
		)
	)
)

```

Then you can use my `where()` and/or `orderBy()` functions for additional operations.

(Untested. Tweak to suit.)

---

_[View the full topic](https://forum.inductiveautomation.com/t/show-array-of-strings/103238)._
