# getTagConfigsAsync - default properties are null?

**URL:** <https://forum.inductiveautomation.com/t/gettagconfigsasync-default-properties-are-null/24895>\
**Category:** Module Development\
**Tags:** ignition80\
**Created:** [May 10, 2019, 5:52pm UTC](https://forum.inductiveautomation.com/t/gettagconfigsasync-default-properties-are-null/24895 "2019-05-10T17:52:07Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [May 10, 2019, 5:52pm UTC](https://forum.inductiveautomation.com/t/gettagconfigsasync-default-properties-are-null/24895/1 "2019-05-10T17:52:07Z")

</div>

When I use getTagConfigsAsync, all **non-default** value of property are null for tag inside UDT

the flag `recursive` - set to true to return all TagEditModels under a TagPath. Useful for returning edit models for child tags under a UDT.  
has no effect ??

Did I miss anything ?  
**Or is there another way to read all resulting properties of a tag which is inside an UDT ???**

```auto
            CompletableFuture<List<TagConfigurationModel>> liste = gatewayContext.getTagManager().getTagProvider("default").getTagConfigsAsync(readTags1,true,false);

            List<TagConfigurationModel> tagConfigs = liste.get();

            for (TagConfigurationModel tagConfig : tagConfigs){

                logger.info("getName={}",tagConfig.getName());

                logger.info("Tooltip={}",tagConfig.get(WellKnownTagProps.Tooltip));
                logger.info("HistoryEnabled={}",tagConfig.get(WellKnownTagProps.HistoryEnabled));
                logger.info("EngUnit={}",tagConfig.get(WellKnownTagProps.EngUnit));
                logger.info("EngLow={}",tagConfig.get(WellKnownTagProps.EngLow));
                logger.info("EngHigh={}",tagConfig.get(WellKnownTagProps.EngHigh));
                if (tagConfig.get(WellKnownTagProps.Path) != null){
                    logger.info("toStringFull={}",tagConfig.get(WellKnownTagProps.Path).toStringFull());
                }
``
```

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [May 10, 2019, 7:30pm UTC](https://forum.inductiveautomation.com/t/gettagconfigsasync-default-properties-are-null/24895/2 "2019-05-10T19:30:16Z")

</div>

Use `getBoundOrDefault` or `getOrDefault` on each key from the property set.

---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [May 15, 2019, 8:07am UTC](https://forum.inductiveautomation.com/t/gettagconfigsasync-default-properties-are-null/24895/3 "2019-05-15T08:07:55Z")

</div>

@paul-griffith,@mgross

When a tag property (for example toolTip) is bound to a parameter (for example param1), **getBoundOrDefault(WellKnownTagProps.Tooltip)** return : {bindType=parameter, binding={param1}}  
**getOrDefault(WellKnownTagProps.Tooltip)** return : null  
**get(WellKnownTagProps.Tooltip)** return : null

I need to obtain the resulting value. Is it possible ?  
param1 value = “my param value”. I woulld like to get “my param value”

---

<div class="post-metadata">

**Author:** ![mgross](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mgross/32/3311_2.png) [@mgross](https://forum.inductiveautomation.com/u/mgross)\
**Post date:** [May 16, 2019, 1:44pm UTC](https://forum.inductiveautomation.com/t/gettagconfigsasync-default-properties-are-null/24895/4 "2019-05-16T13:44:48Z")

</div>

You have to do a readAsync call on the bound property. Like so:

```auto
TagPath path = TagPathParser.parse("[default]Basic UDT instances/BasicUDT_Instance0/MemberEventScriptTag.documentation");
List<QualifiedValue> qv = tagManager.readAsync(Arrays.asList(path)).get();
Object boundParamVal = qv.get(0).getValue();

```
