# Dynamic UDT path in script

**URL:** <https://forum.inductiveautomation.com/t/dynamic-udt-path-in-script/53691>\
**Category:** Ignition\
**Created:** [December 2, 2021, 5:39pm UTC](https://forum.inductiveautomation.com/t/dynamic-udt-path-in-script/53691 "2021-12-02T17:39:19Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![pkhoshroo](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pkhoshroo/32/26801_2.png) [@pkhoshroo](https://forum.inductiveautomation.com/u/pkhoshroo)\
**Post date:** [December 2, 2021, 5:39pm UTC](https://forum.inductiveautomation.com/t/dynamic-udt-path-in-script/53691/1 "2021-12-02T17:39:19Z")

</div>

Hello all,

I have UDT called order and it includes an orderNo and state value.  
The orderNo value is coming from a named query and the return mode is set to JSON, I have a transform script to return the state value of each orderNo but it does not work. It returns null instead of the value:

```auto
	list = []
	for i in range(value):
		dict = {
            "id" : i+1,
			"state": system.tag.read("[default]Order/Order"+"id"+"/State"")
			)
		}
		list.append(dict)
	return list

```

---

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [December 2, 2021, 6:34pm UTC](https://forum.inductiveautomation.com/t/dynamic-udt-path-in-script/53691/2 "2021-12-02T18:34:58Z")

</div>

You have quotes around what I presume is intended to be code. Try:

```python
	list = []
	for i in range(value):
		dict = {
			"state": system.tag.read("[default]Order/Order"+self.custom.orderNo[i].order_number+"/State")
			)
		}
		list.append(dict)
	return list

```

---

<div class="post-metadata">

**Author:** ![pkhoshroo](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pkhoshroo/32/26801_2.png) [@pkhoshroo](https://forum.inductiveautomation.com/u/pkhoshroo)\
**Post date:** [December 2, 2021, 6:37pm UTC](https://forum.inductiveautomation.com/t/dynamic-udt-path-in-script/53691/3 "2021-12-02T18:37:33Z")

</div>

That does not work it says cannot concatenate int and str.

I changed my code to:  
still does not work

```auto
	list = []
	for i in range(value):
		dict = {
            "id" : i+1,
			"state": system.tag.read("[default]Order/Order"+"id"+"/State"")
		}
		list.append(dict)
	return list

```

---

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [December 2, 2021, 6:39pm UTC](https://forum.inductiveautomation.com/t/dynamic-udt-path-in-script/53691/4 "2021-12-02T18:39:29Z")

</div>

self.custom.orderNo[i].order\_number is an integer so you must convert it to a string.

```auto
	list = []
	for i in range(value):
		dict = {
			"state": system.tag.read("[default]Order/Order" + str(self.custom.orderNo[i].order_number) + "/State")
			)
		}
		list.append(dict)
	return list

```

---

<div class="post-metadata">

**Author:** ![pkhoshroo](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pkhoshroo/32/26801_2.png) [@pkhoshroo](https://forum.inductiveautomation.com/u/pkhoshroo)\
**Post date:** [December 2, 2021, 6:40pm UTC](https://forum.inductiveautomation.com/t/dynamic-udt-path-in-script/53691/5 "2021-12-02T18:40:19Z")

</div>

That worked! Totally forgot about that!!! Thank you so much!!!
