I'm developing a value-change script for a specific UDT tag (Ignition 8.1.52).
It seems that the system.tag.browse() function isn't compatible with the format "[.]../Folder" (relative path).
An error occurs, logged as: "Error browsing tags through scripting." (By the way, the log information is very limited. It doesn't even provide information that would allow me to locate the script.)
It seems strange to me that the system.tag.browse() function isn't compatible with relative paths, since all the other functions are: getConfiguration(), exists(), readBlocking(), writeBlocking().
To solve this, I had to obtain the absolute (full) path using the system.tag.getConfiguration() function from the relative path:
tag_path = "[.]../Dispositivos"
tag_path = str(system.tag.getConfiguration(tag_path, False)[0]["path"])
results = system.tag.browse(tag_path, filter = {"name":"Cod_Estado_Elemento","recursive":True})
for x in results.getResults():
...
...
Tag browsing is a potentially unbounded operation that should never be used in a tag event. Use a gateway event (in a project), not a tag event (like valueChange). Unbounded operations in tag events can bring your entire tag scripting subsystem to a screeching halt.
I think that technical detail should be included in the documentation for system.tag.browse(). The error that occurs ("Error browsing tags through scripting") doesn't allow us to identify the source of the problem.
I can't directly apply the solution you proposed because it's not possible to specify a UDT Tag in a Gateway Event Script (Tag Change). An intermediate solution would be to call a function developed in the project library from within the UDT Tag Change.