# Recommendation on UDTs to Transaction Groups

**URL:** <https://forum.inductiveautomation.com/t/recommendation-on-udts-to-transaction-groups/112172>\
**Category:** Ignition\
**Created:** [November 13, 2025, 8:50pm UTC](https://forum.inductiveautomation.com/t/recommendation-on-udts-to-transaction-groups/112172 "2025-11-13T20:50:40Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Phillip\_Jackson](https://avatars.discourse-cdn.com/v4/letter/p/f04885/32.png) [@Phillip\_Jackson](https://forum.inductiveautomation.com/u/Phillip_Jackson)\
**Post date:** [November 13, 2025, 8:50pm UTC](https://forum.inductiveautomation.com/t/recommendation-on-udts-to-transaction-groups/112172/1 "2025-11-13T20:50:40Z")

</div>

I’m looking for a configuration recommendation.

I have a UDT definition that effectively represents a row in a SQL table for some telemetry. The udt has a ‘trigger/enabled’ bool, two identifiers, and a value tag.

Since I want the UDTs to trigger for recording at different times, is there a more efficient way to record the data for each UDT than a separate transaction group for each one? (Which could in theory be thousands?)  
Some UDTs will need to record on a continuous scan frequency while that UDTs trigger bit is enabled and others may only record by value change (while triggered).

One thought I had was to use block transaction groups and configure each udt as a ‘row’ in the block then record the data at some fixed frequency and let the database side figure out which rows have enabled = true (or enabled and value changed). The management of adding all the udt items to the block definition, and ensuring all the ‘row’ tags are properly lined up in the block is fairly clunky though… I suppose I could script modify and load XML.

---

<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:** [November 13, 2025, 8:53pm UTC](https://forum.inductiveautomation.com/t/recommendation-on-udts-to-transaction-groups/112172/2 "2025-11-13T20:53:29Z")

</div>

I wouldn't use transaction groups at all. Tag change event scripts for the triggers, and a single timer event that would read and process all the enabled UDTs in one bulk operation.

---

<div class="post-metadata">

**Author:** ![Phillip\_Jackson](https://avatars.discourse-cdn.com/v4/letter/p/f04885/32.png) [@Phillip\_Jackson](https://forum.inductiveautomation.com/u/Phillip_Jackson)\
**Post date:** [November 13, 2025, 9:20pm UTC](https://forum.inductiveautomation.com/t/recommendation-on-udts-to-transaction-groups/112172/3 "2025-11-13T21:20:32Z")

</div>

Hi Phil, Thanks for the speedy reply! So, I map all the pertinent UDTs into a single tag read script per timer? Any concern if (hypothetically) there are a few thousand enabled at any given time and scanning at say 500ms? Also, is the best ignition pathway to ingest that to the db since it wouldn’t be utilizing the sql bridge constructs just a system.db.runPrep?

---

<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:** [November 13, 2025, 10:02pm UTC](https://forum.inductiveautomation.com/t/recommendation-on-udts-to-transaction-groups/112172/4 "2025-11-13T22:02:48Z")

</div>

You probably want to **not** create tags for all of the process values, but use `system.opc.readValues()` to only create PLC traffic on demand. Thousands of values at a time is not a problem from Ignition, but might be for your PLC.

---

<div class="post-metadata">

**Author:** ![Phillip\_Jackson](https://avatars.discourse-cdn.com/v4/letter/p/f04885/32.png) [@Phillip\_Jackson](https://forum.inductiveautomation.com/u/Phillip_Jackson)\
**Post date:** [November 14, 2025, 2:40pm UTC](https://forum.inductiveautomation.com/t/recommendation-on-udts-to-transaction-groups/112172/5 "2025-11-14T14:40:26Z")

</div>

Thankfully not all the tags would be coming from one source. I will certainly consider dynamic traffic control though as I proceed.
