What does this code return for you:

Class test.ts Extends %Persistent
{

Property ts As %TimeStamp(MINVAL = "0001-01-01 00:00:00.000");

/// do ##class(test.ts).Test()
ClassMethod Test()
{
	set obj = ..%New()
	set obj.ts = "1800-12-25T00:00:00"
	set sc = obj.%Save()
	
	if $$$ISERR(sc) {
		write $System.Status.GetErrorText(sc)
	} else {
		write "Save successful"
	}
}

Does your IRIS license include InterSystems BI (DeepSee)? In that case you can use that.

Depending on what exactly do you want to do, KNIME might be a solution (if you're ok with self-hosting HTML files  as KNIME server is a commercial product).

But most BI tools are proprietary. Any tool which support xDBC datasources can work with InterSystems IRIS.

You can replace:

Set tQuery = "GRANT EXECUTE ON %Library.RoutineMgr_StudioOpenDialog TO VSCODE"
Set tStatement = ##class(%SQL.Statement).%New()
Set tSC = tStatement.%Prepare(tQuery)
Set tResultSet = tStatement.%Execute()

with:

Set tSC = ##class(%SQL.Statement).%ExecDirect(, "GRANT EXECUTE ON %Library.RoutineMgr_StudioOpenDialog TO VSCODE")

Still, unfortunate there's no object way to do that, only relational. And %EnsembleMgr:addSQLPrivilege is private.