# Dataset tag execution from tag group triggers property binding

**URL:** <https://forum.inductiveautomation.com/t/dataset-tag-execution-from-tag-group-triggers-property-binding/67668>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [December 15, 2022, 12:34pm UTC](https://forum.inductiveautomation.com/t/dataset-tag-execution-from-tag-group-triggers-property-binding/67668 "2022-12-15T12:34:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mcarritt1](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mcarritt1/32/4262_2.png) [@mcarritt1](https://forum.inductiveautomation.com/u/mcarritt1)\
**Post date:** [December 15, 2022, 12:34pm UTC](https://forum.inductiveautomation.com/t/dataset-tag-execution-from-tag-group-triggers-property-binding/67668/1 "2022-12-15T12:34:03Z")

</div>

Hi,

Noticed today that on bindings that include a tag that is a query tag/dataset datetype, the (perspective) binding fires every time the tag group fires even if the value is the same. It was a bit of a surprise as this behavior doesnt happen on other datatypes (integer/ string/ etc.). I imagine this is because its easy to compare the value there to see if its changed, and more intensive to do so on a dataset.

Is it the expected behavioor that a query tag of dataset type should fire a binding every time that tag group runs, even if the value of the tag did not change?

---

<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:** [December 15, 2022, 12:58pm UTC](https://forum.inductiveautomation.com/t/dataset-tag-execution-from-tag-group-triggers-property-binding/67668/2 "2022-12-15T12:58:38Z")

</div>

Yes, because even though the **content** of the dataset is the same, it is a new dataset **object** , and that is the test for equality. This is true for the document datatype, too.

Use a memory tag instead of an expression tag. Construct/query your dataset in a timer script and check the contents **yourself** , skipping the write to the memory tag if equal. (Using **your** definition of equal.)

You might find certain helpful functions for this over here:

> [@Ignition Extensions - Convenience utilities for advanced users](https://forum.inductiveautomation.com/t/ignition-extensions-convenience-utilities-for-advanced-users/64615):
>
> Introducing a hopefully community-engaged effort to build a useful repository of scripting and other Ignition utilities for everyone to benefit from. Download the latest release from the [Releases](https://github.com/IgnitionModuleDevelopmentCommunity/ignition-extensions/releases) page and take advantage of the following functions: Scripting Functions system.util system.util.getContext(): Context A convenience function to retrieve the local "context" object, useful as an entrypoint to other advanced scripting. system.util.deepCopy(object): Object Converts a given Pyth…

---

<div class="post-metadata">

**Author:** ![mcarritt1](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mcarritt1/32/4262_2.png) [@mcarritt1](https://forum.inductiveautomation.com/u/mcarritt1)\
**Post date:** [December 15, 2022, 1:22pm UTC](https://forum.inductiveautomation.com/t/dataset-tag-execution-from-tag-group-triggers-property-binding/67668/3 "2022-12-15T13:22:45Z")

</div>

that makes sense, thanks!
