# Ignition 7.9 to 8.0 : editTags/browse/getTag and queryHistory

**URL:** <https://forum.inductiveautomation.com/t/ignition-7-9-to-8-0-edittags-browse-gettag-and-queryhistory/24839>\
**Category:** Module Development\
**Tags:** ignition80\
**Created:** [May 9, 2019, 3:30pm UTC](https://forum.inductiveautomation.com/t/ignition-7-9-to-8-0-edittags-browse-gettag-and-queryhistory/24839 "2019-05-09T15:30:17Z")\
**Posts on this page:** 6\
**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 9, 2019, 3:30pm UTC](https://forum.inductiveautomation.com/t/ignition-7-9-to-8-0-edittags-browse-gettag-and-queryhistory/24839/1 "2019-05-09T15:30:17Z")

</div>

In a module for 7.9 I use :

```auto
gatewayContext.getTagManager().editTags
gatewayContext.getTagManager().browse
gatewayContext.getTagManager().getTag
gatewayContext.getTagManager().queryHistory

```

Where are the new function in Ignition 8.0 ???

---

<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 9, 2019, 3:35pm UTC](https://forum.inductiveautomation.com/t/ignition-7-9-to-8-0-edittags-browse-gettag-and-queryhistory/24839/2 "2019-05-09T15:35:51Z")

</div>

```java
context.getTagManager().getTagProvider(<name>).saveTagConfigsAsync(edits, policy)
context.getTagManager().getTagProvider(<name>).browseAsync(path, filter)
context.getTagManager().getTagProvider(<name>).getTagConfigsAsync(paths, recursive, localPropsOnly)
context.getTagHistoryManager().getTagHistoryProvider(<name>).createQuery(paths, controller)

```

---

<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, 10:25am UTC](https://forum.inductiveautomation.com/t/ignition-7-9-to-8-0-edittags-browse-gettag-and-queryhistory/24839/3 "2019-05-10T10:25:05Z")

</div>

Thanks @paul-griffith

For the browseAsync function, with a browseFilter.setRecursive( **true** ), I can collect all the node, but the **NodeDescription::getName** doesn’t contain the full path of the tag ?

Does it mean it’s better to do some recursive call to browseAsync in order to be able to obtain the fullTagPath of each tag or is there another way ?

---

<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, 12:56pm UTC](https://forum.inductiveautomation.com/t/ignition-7-9-to-8-0-edittags-browse-gettag-and-queryhistory/24839/4 "2019-05-10T12:56:32Z")

</div>

@paul-griffith,  
I use in 7.9 gatewayContext.getTagManager().editTags to configure some TagProp (FormatString,EngUnit,EngLow,EngHigh,Tooltip,Documentation) on tags from a **SimpleTagProvider**.

I try to achieve the same with the tags from a **ManagedTagProvider**.

Instead of `saveTagConfigsAsync`, is it possible to use `configureTag(java.lang.String path, [BoundPropertySet])` rather than `configureTag(java.lang.String path, DataType dataType)` ?

7.9 flavor was

```auto
private void CopyTagProperties(Tag tagSource, String tagPathDest){
	TagPath tagPathSourceDest = TagPathParser.parseSafe("myProv",tagPathDest);
	List<TagPath> listTagsDest = new ArrayList<TagPath>();
	listTagsDest.add(tagPathSourceDest);

	tagDiff.set(TagProp.FormatString,tagSource.getAttribute(TagProp.FormatString).getValue());
	tagDiff.set(TagProp.EngUnit,tagSource.getAttribute(TagProp.EngUnit).getValue());
	tagDiff.set(TagProp.EngLow,tagSource.getAttribute(TagProp.EngLow).getValue());
	tagDiff.set(TagProp.EngHigh,tagSource.getAttribute(TagProp.EngHigh).getValue());
	tagDiff.set(TagProp.Tooltip,tagSource.getAttribute(TagProp.Tooltip).getValue());
	tagDiff.set(TagProp.Documentation,tagSource.getAttribute(TagProp.Documentation).getValue());

	this.gatewayContext.getTagManager().editTags(listTagsDest,tagDiff);
}

```

… seem to be simplest with a readAsync and writeAsync… 🙂

---

<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, 2:24pm UTC](https://forum.inductiveautomation.com/t/ignition-7-9-to-8-0-edittags-browse-gettag-and-queryhistory/24839/5 "2019-05-10T14:24:11Z")

</div>

@paul-griffith,  
For the conversion of :

```auto
gatewayContext.getTagManager().queryHistory

```

with BasicTagHistoryQueryParams and BasicStreamingDataset

could you please provide an example for :

```auto
context.getTagHistoryManager().getTagHistoryProvider(<name>).createQuery(paths, controller)

```

I don’t understand how to achieve an historical query from gateway scope in Ignition 8

HistoryQueryExecutor javadoc indicate that the result rows are writed to the streaming dataset, if possible but where can we provide a streaming dataset ?

---

<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 13, 2019, 6:45am UTC](https://forum.inductiveautomation.com/t/ignition-7-9-to-8-0-edittags-browse-gettag-and-queryhistory/24839/6 "2019-05-13T06:45:33Z")

</div>

> [@Ignition 7.9 to 8.0 : queryHistory?](http://forum.inductiveautomation.com/t/ignition-7-9-to-8-0-queryhistory/24903):
>
> @PGriffith, For the conversion from Ignition 7.9.10 of : gatewayContext.getTagManager().queryHistory with BasicTagHistoryQueryParams and BasicStreamingDataset could you please provide an example for : context.getTagHistoryManager().getTagHistoryProvider(\<name\>).createQuery(paths, controller) I don’t understand how to achieve an historical query from gateway scope in Ignition 8 sos HistoryQueryExecutor javadoc indicate that the result rows are writed to the streaming dataset, if possible…
