System.tag.browse() "Error browsing tags through scripting." with relative path

Good afternoon.

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():
...
...

Best Regards.

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.

1 Like

Good morning. Thank you for the clarification.

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.

Best regards.

That's not a solution to the unbounded operation problem in tag events. You may need to delegate work to a self-managed queue, as described here:

You may also want to consider using the Bulk Script Tag Action from my Integration Toolkit.