# Qualified Value in Change Script Perspective

**URL:** <https://forum.inductiveautomation.com/t/qualified-value-in-change-script-perspective/48151>\
**Category:** Ignition\
**Created:** [June 24, 2021, 11:33am UTC](https://forum.inductiveautomation.com/t/qualified-value-in-change-script-perspective/48151 "2021-06-24T11:33:17Z")\
**Posts on this page:** 7\
**Page:** 2

<div class="post-metadata">

**Author:** ![User45199](https://avatars.discourse-cdn.com/v4/letter/u/41988e/32.png) [@User45199](https://forum.inductiveautomation.com/u/User45199)\
**Post date:** [June 24, 2021, 1:58pm UTC](https://forum.inductiveautomation.com/t/qualified-value-in-change-script-perspective/48151/21 "2021-06-24T13:58:55Z")

</div>

Well, none of them worked x)  
For the first two, here is theit types : class org.python.core.PyBuiltinCallable  
For system.util.jsonDecode(test[0].toString()).items, I can even get his type

---

<div class="post-metadata">

**Author:** ![victordcq](https://avatars.discourse-cdn.com/v4/letter/v/f6c823/32.png) [@victordcq](https://forum.inductiveautomation.com/u/victordcq)\
**Post date:** [June 24, 2021, 2:09pm UTC](https://forum.inductiveautomation.com/t/qualified-value-in-change-script-perspective/48151/22 "2021-06-24T14:09:24Z")

</div>

> [@User45199](#):
>
> org.python.core.PyBuiltinCallable

No idea then... guess you'll just have to use an custom prop inbetween and let ignition handle the conversion i guess xd there surely is a way but idk it, and if its this hard to figure out just a prop is easier XD

---

<div class="post-metadata">

**Author:** ![User45199](https://avatars.discourse-cdn.com/v4/letter/u/41988e/32.png) [@User45199](https://forum.inductiveautomation.com/u/User45199)\
**Post date:** [June 24, 2021, 2:13pm UTC](https://forum.inductiveautomation.com/t/qualified-value-in-change-script-perspective/48151/23 "2021-06-24T14:13:13Z")

</div>

Yep, I think I will just do that, even anyone has a way to handle this, I would gladly hear it !  
Anyway, thank you again for your help !

---

<div class="post-metadata">

**Author:** ![dvaughn](https://avatars.discourse-cdn.com/v4/letter/d/c6cbf5/32.png) [@dvaughn](https://forum.inductiveautomation.com/u/dvaughn)\
**Post date:** [June 25, 2021, 7:20pm UTC](https://forum.inductiveautomation.com/t/qualified-value-in-change-script-perspective/48151/24 "2021-06-25T19:20:41Z")

</div>

We were struggling with a similar issue today. Our data structure is a bit different:

```auto
currentValue = [
    {
        "group_name": "group1",
        "group_id": 1
    },
    ...
]

```

Here’s the hack we used to solve it:

```auto
data = system.util.jsonDecode(system.util.jsonEncode(currentValue.value))

for i in range(len(currentValue.value)):
    newName = data[i]["value"]["group_name"]["value"]
    ...

```

Turning it into a json string and then back into a list added a ton of extra properties which is why we have to go value → group\_name → value. I’d suggest doing the transform and printing it out to a text field to see the data structure you get back, then you should be able to figure out your properties you need to look up.

I hope there is a better way to do this, but we had a guy trying to figure this out for a couple days and this was the first solution that worked. So if you have another better way to do this, I’d love to see it. Otherwise, this is the solution we are moving forward with.

---

<div class="post-metadata">

**Author:** ![User45199](https://avatars.discourse-cdn.com/v4/letter/u/41988e/32.png) [@User45199](https://forum.inductiveautomation.com/u/User45199)\
**Post date:** [July 1, 2021, 4:51pm UTC](https://forum.inductiveautomation.com/t/qualified-value-in-change-script-perspective/48151/25 "2021-07-01T16:51:26Z")

</div>

Thank you dvaughn for your reply.  
I think it would help some people out there. On my end, I haven’t found any better solution for now, so I’ll keep this one until we come up with something better.

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [July 29, 2026, 7:11am UTC](https://forum.inductiveautomation.com/t/qualified-value-in-change-script-perspective/48151/26 "2026-07-29T07:11:52Z")

</div>

I've had some similar weirdness yesterday (on 8.3.7):

I put a change script on a dropdown's `value` property. That value is an object.

```python
type(currentValue.value[key])
# -> BasicQualifiedValue

currentValue.value[key].value
# -> Error: No `value` property

val = currentValue.value[key]
val.value
# -> works fine

```

I'm... confused. I wan't even expecting to be dealing with qualified values in the first place to be honest.  
I Also couldn't call `.items()` directly on `currentValue.value`,  
I had to convert it to a dict, then loop through that dict to call `.value`

Also note that I don't have this issue doing the exact same thing in the `onAction` event instead of the change script.

---

<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:** [July 29, 2026, 11:03am UTC](https://forum.inductiveautomation.com/t/qualified-value-in-change-script-perspective/48151/27 "2026-07-29T11:03:08Z")

</div>

Jython adapters. Perspective's wrappers aren't terribly compatible with duck-typing. You should open a ticket. Or use my toolkit's unQualify() functions.

[Previous page](https://forum.inductiveautomation.com/t/qualified-value-in-change-script-perspective/48151.md?page=1)
